Blog | Software outsourcing information

How to Hire the Best Blockchain Developers

Written by Accelerance Research Team | Jan 24, 2019

While the future of cryptocurrencies is still being debated in corporate boardrooms, blockchain technology is undeniably gaining global attention.

Enthusiastic proponents depict blockchain as a digital disruptor to almost every industry: healthcare, manufacturing, finance, public service and even voting. In truth, after years of hype, blockchain technology has indeed started changing the face of the world. 

Most experts agree: blockchain is here to stay. Informed observers of blockchain’s recent progress expect that, in the near future, the “new normal” for business transactions will have blockchain technology at the epicenter.

There could be many reasons your company needs blockchain: a chance to outpace competition, enter new markets, etc. Regardless of your opportunity in blockchain, the question is: “Where can I find and hire a blockchain developer up to the task?”

Finding qualified blockchain developers is not easy. Blockchain technology is:

  • Complicated
  • Too new as a subject for the majority of IT schools and professionals
  • Too immature in terms of practical implementation
  • Generally - RISKY - when you consider the massive failures of many new blockchain projects all over the world

The good news is Accelerance has the blockchain teams you need. Our global network of vetted and verified software development companies continually invests in new talent and trains their existing staff for emerging technologies like blockchain. Accelerance Certified partners are “software development factories” that exist for the very purpose of bringing capacity and innovation to the marketplace for your company. We can help you evaluate and select the right outsourcing partners for your needs. You’ll gain:

  • Speed and innovation. You’ll have quick access to hard-to-find skills (like blockchain) which are critical to your needs.
  • Cost savings. Hourly rates for global software development are significantly lower than hiring programming staff..sometimes a FRACTION of what it costs to hire internally.
  • Rapid ramp up. Development teams are quickly assembled for your project - and then disbanded when work needs end… and expenses immediately end as well.
  • Scalability. “Throttle” your demand for programming expertise increasing and reducing production of software as situations fluctuate within your business.

 

Blockchain Skills to Look For

We reviewed technology stacks in current blockchain implementations and identified a number of languages that dominate the industry. When you’re recruiting highly-skilled blockchain developers, you want to look for specific programming language skills.

First in popularity is C++, an object-oriented younger brother of the C family and the “grandpa” of blockchain development. Bitcoin, Ethereum and their many early crypto predecessors were, at the core, written in C++.

Next, look for programming skills in Java, Node.js, and Python. Consider other languages including C/C#, Perl, JavaScript, and even Ruby. There are always several languages, with differing purposes, you will use in creating the building blocks you’ll need for blockchain development. For example:

  • Node.js for backend
  • React or Angular frameworks for frontend
  • Simplicity or Solidity for Smart Contracts
  • GoLang, or simply Go, for console clients and backend development, etc

Opinions differ on the top five languages for blockchain development and languages are ranked in varying positions of importance. But all agree that C++ is the critical skill to have in Blockchain development. DZone, one of the world’s largest online communities - publishers of software development technologies and best practices - ranks the best programming languages used in blockchain development as follows:

  • C++. One of the most renowned object-oriented languages. It wraps big data in the form of objects for the users to open it at their end. Since blockchain follows a similar pattern, C++ became the basic language for blockchain development.
  • Java. This language is simple to build links between data blocks and deliver data to the user. Java is popular among the programmers because it can run on almost any kind of computer with a tiny installation of Java Runtime Environment (JRE).
  • Python. One of the newest languages, which became very popular for website development and Blockchain. Python allows performing multiple tasks with a single command and makes packing and linking data blocks together an easy job.
  • Ruby. The object-oriented and rather versatile language that enables using a sophisticated mix of languages to create the blockchain system that is hardly possible for someone to hack. This language is very popular all over the world, and the users can easily customize Ruby software to fit their requirements.
  • Solidity. This is a contract-based language primarily employed for enhancing the use of Ethereum Virtual Machines (EVM). Many programmers find it most convenient for building blockchain because it can grab hold of any iteration on the go at the time of coding. Solidity is extremely fast in creating messages for sending across to other users.

The programming language choice is only important if you are going to use a specific base platform and its cryptocurrency for your plug-and-play functionality. There are several aspects to consider when planning to hire blockchain developers:

  • SCENARIO 1 - Building your own blockchain. If you are going to develop your own blockchain, you will need a C++ developer. You may also consider investing in open-source projects like Bitcoin or Ethereum instead of developing it from the scratch.
  • SCENARIO 2 - Developing distributed applications (dapp) or a smart contract on top of existing blockchain. Ethereum is the most popular platform and if you choose it, you will need a Solidity developer.
  • SCENARIO 3 - Building a “distributed ledger” on top of existing blockchain. Hyperledger Fabric is the most convenient platform for this purpose, and if chosen, you will need a GO or Java developer.

 

Not Necessarily “The Best” Coders

Oddly enough, when looking to hire good blockchain developers, don’t expect them to be “the best” coders. Instead, the RIGHT blockchain developers for your project should be multifaceted rather than senior-level and specialized in a certain language or technical skill. Quick-thinking, creative, and flexible are more important than the ability to pound out high quality code! Your ideal candidate should be a true blockchain aficionado: enthusiastic about the technology and with personal experience in crypto mining or, at least in crypto trading.

Because so much of blockchain technology came from the development of cryptocurrency, solutions like Bitcoin and Ether (and - Ethereum transactions), a developer who is experienced in cryptocurrency is highly desirable. Also, many blockchain solutions will be based on Ethereum or Bitcoin “templates”, versus coding from scratch.

The ideal blockchain developer has a good understanding of Distributed Ledgers.

Distributed Ledger Technology (DLT) is a means of sharing and synchronizing digital assets and transactions in a non-centralized way. Blockchain is a type (brand, flavor) of DLT. Therefore, a developer has to understand how DLTs work:

  • How do transactions flow in a Distributed Ledge.
  • How do companies (like yours) make money providing a DLT solution
  • What are the risks and national regulatory implications associated with the technology

 

Blockchain: Community Culture and Common Startup Practices

Why not just hire a top-notch C++ programmer? To answer that question, you have to understand blockchain community culture and typical blockchain startup practices.

In Blockchain - COMMUNITY is important. Blockchain developers are pioneers collaborating in a discipline still being defined. Yes, there are rules and some structure, but both of these are “work in process” inside the Blockchain Community.

  • No clear software development lifecycle (SDLC). When initial coding begins, coders use the most agile style, with very little analysis and planning. As a result, there is no clarity on how much time development phases may take.
  • “Hackathon” style. Initial development occurs with minimum or no testing before the first build is rolled out. Once initially coded, the software is promptly released to the community for testing and bugs are corrected in real-time. When the MVP looks ready to release, then typically another team performs the QA review prior to production release.
  • The blockchain coding part is small. Any blockchain project contains only about 10-15% of actual blockchain development. Ironically, in a software development project which features blockchain, the main concentration of skills and resources for actual blockchain technology development will fall in the initial “MVP” stage of your project. The remainder of your project will be small refinements (“tweaks”) to your blockchain code along with development of frontend, user interface elements.

Very often, a new blockchain initiative lacks a clear business idea, understanding of how to monetize it, and how much effort and time it will take. Other times, business goals may change - sometimes significantly. This change and uncertainty has 2 implications for the development team worth mentioning:

  • “Hurry up and wait”: The development team may be on a mad dash to write code for a solution, only to be asked to wait, while a new course is charted. Or, perhaps the goal for the first Agile Sprint is clear - but then time elapses until the next wave of requirements is clear enough to proceed with software development.
  • Additional financing: In startup situations - there may be cash flow concerns. Even if objective are clear - and a multi-month roadmap is in place, there may not be a consistent source of funding to allow for continuous work.

Companies cannot afford to pay for a dedicated team of programmers for an unknown amount of time, with starts-and-stops of activity...especially when there is no certainty about the financing source. That’s why outsourcing to qualified blockchain teams who can provide on demand support makes sense.

 

Blockchain Software Design: What are the MOST important aspects?

When hiring for blockchain, you want to ensure your developers understand important design considerations for building and maintaining a public blockchain.

  • Security. There is some belief that open source software, like blockchain, tends to have fewer inherent security holes because of the natural public scrutiny of open source software. Further, it’s true that by design blockchain transactions are more secure. Nonetheless, in a blockchain solution, any form of hack can be catastrophic. Therefore, the blockchain development life cycle can extend for long periods in order to thoroughly ensure security measure are in place.
  • Scalability. Scalability in public blockchain solutions can be very challenging. As the number of participants and transactions grow, the network load and processing time will grow thereby exhausting system resources. Developers must design a SCALABLE - solution capable of handling future growth scenarios.
  • Performance. Blockchain systems must be fast and responsive. To ensure performance goals, blockchain requires a versatile programming language capable of simultaneously providing parallel and non-parallel task processing. For example, verifications of digital signature can be performed in parallel, while transaction execution itself cannot. Some programming languages perform better in parallel operations while others excel in non-parallel operations.
  • Isolation. Blockchain solutions must have consistently deterministic behavior. This means A + B = C indefinitely. All transaction operations must behave one way - ALWAYS. For example: a smart contract must work the same way on different machines. The goal of deterministic behavior is partially achieved through the use of hash functions, but not completely. Blockchain development should provide for full isolation of transactions, smart contracts, etc. from non-deterministic elements.

 

Basic Points for Hiring a Blockchain Developer

As discussed earlier, many programming languages can be used in blockchain development. The specific programming language is not of top importance. What matters MORE is a developer’s experience in the field (e.g. in smart contract development). If a developer knows the basic concepts behind a specific blockchain system, they may use any language they prefer.

 

Don’t Forget About The REST of Your Solution

In a total system solution, Blockchain is just an underlying technology. You will ALSO need developers to build the frontend, which allows your users to interact with your system and apps. There are many computer programming languages to choose from, although we find that JavaScript is most often recommended.

 

Blockchain Developers Are Scarce… How Can I Find the PERFECT One for Me?

Presently, there is a huge scarcity in the market for blockchain and smart-contract developers. The demand for such specialists far outweighs the supply of talent. In our experience, a candidate - developer’s work experience, not just raw technical skills are important in evaluating talent. The combination of the RIGHT technical skills and the RIGHT experience will mean you will be searching for very hard-to-find developers.

The Accelerance Global network offers vetted and certified experienced blockchain developers. The Accelerance consulting team can connect you with the ideal development team to make your blockchain project successful.