The many faces of blockchain development

Before we move on to the list of must-have blockchain skills, we need to address one issue, which is the meaning of the term "blockchain developer", because it's not as straightforward as you may think. It's perfectly plausible to have two blockchain developers with almost completely unconnected skillsets and experiences. Just like with web developers, to know what they really do, we need to go deeper and ask about the language they use, databases, environment, and more.

There are three main reasons why that is the case in blockchain as well.

What blockchain are we talking about?

Ethereum, Cosmos, Polkadot, Solana... there are dozens of blockchains, and new ones emerge almost every week. The problem is, each one has a specific ecosystem and tech stack, which means different programming languages for smart contracts or various deployment tools. For example, Ethereum uses Solidity, Polkadot uses Rust, and Flow has Cadence, which was a new language developed specifically for digital assets.

As you see, there are many options, and it's not easy to predict which blockchain will stand the test of time. For now, the most stable and widely utilized are Ethereum, Binance Smart Chain, Solana, Polkadot, Cosmos, and Polygon, but the situation might change rapidly over the next couple of years. As with most trailblazing technologies, nothing is certain, and we can't expect the situation to truly stabilize in the nearest future.

What exactly are you planning to do with blockchain technology?

Blockchain developers can be divided into two main groups:

  • Developers that co-create the actual blockchain architecture
  • Developers that write decentralized apps (DApps) within blockchains, such as DeFi platforms and metaverse games.

The first group needs to know the entire blockchain structure and the language that was used to build it (such as C++ for Ethereum). In addition to that, they need to be familiar with:

  • distributed systems
  • consensuses
  • virtual machines (the ones supposed to run code in a safe, separated environment like WASM, EVM)

The second group's skills list depends on the blockchain's smart contract language. So, for example, Ethereum DApps developers must know Solidity, but it's just a start. In order to create safe smart contracts, they need to deeply understand how the blockchain works, what to avoid, what are the potential risks, transactional costs, and much more. And there are many other options for different blockchains, including entirely new languages. Diem has Move, Flow has Cadence, ICP has Motoko, and the list goes on. The language that’s chosen most often in blockchains at the moment is Rust, which is used in Polkadot and Solana. However, there are probably still more projects in Solidity due to Ethereum’s popularity.

What's crucial, without sufficient knowledge about blockchain systems, developers can create faulty apps and potentially open the software to cyber attacks. We'll elaborate on the topic in the second part of the article.

How much of a blockchain developer are you really?

The last tricky aspect comes from the fact that not every developer who works on blockchain projects has to deal with blockchain technology per se. For example, during our blockchain project for Centi, only a fraction of all tasks required actual blockchain experience, while others were just regular front-end and back-end work. Of course, everyone in the project knew how blockchain works, but most team members didn't need to go that deep into the subject on a daily basis. They were essential to the project due to their other technical skills. It's not for us to say whether they can still be called "blockchain developers", but they're surely essential pieces of a functional blockchain development team.

Now, knowing all the meanings to the term "blockchain developer", let's finally move on to the list of essential skills.

10 essential skills for blockchain developers

Making a list of necessary skills that would be required in most blockchain jobs is close to impossible. There are too many variables, too many blockchains, and too many roles in blockchain development. However, if we promised, we have to deliver something. But, pay in mind, it's not a list of skills that every blockchain developer needs to have. It's more like a complete package for a true blockchain "swiss-army knife" software engineer.

1. Low-level programming language

This is one of the blockchain skills necessary for everyone who wants to build the actual blockchain architecture. The question of which language it will be depends entirely on the specific blockchain. As we mentioned before, there are many options, and the most widespread choice at this stage is:

  • C++ if you want to build blockchain as a clone for Ethereum, Bitcoin, BSC, or on top of Hyperledger
  • Rust if you want to build blockchain as Polkadot parachain (using Substrate framework)
  • GO if you gonna build a blockchain based on Cosmos SDK

2. Smart contract programming language

As we've mentioned before, decentralized apps (DApps) are programs that are built in the blockchain using programming language specific to that blockchain. They function thanks to smart contracts. Our blockchain developer Jakub Czachura elaborates more about that in the article What are smart contracts?.

So, if you're thinking about creating applications, games, or any other blockchain-based web apps, you need to learn a smart contract language. The most notable example is Solidity, which is a Turing-complete smart contract language for Ethereum. The second most popular is Rust, which is used e.g. for smart contracts for Polkadot and Solana. Less popular examples include JavaScript and custom languages like Cadence (Flow), Move (Diem), Mokoto (ICP), and Scrypto (Radix).

3. The ability to estimate computational complexity

Every process or transaction on blockchain uses computational resources of the virtual machine. Like electricity or any other fuel, that power has to be paid for in a so-called "gas fee". The prices of such transactions can go from a few cents to $50+, depending on the blockchain and current network load (you can also read about it in the same article by Jakub).

The more sophisticated the process is, the more expensive it will be. So, when writing blockchain apps, developers have to always consider its cost and put it in the business perspective. It's entirely possible that some blockchain platforms may turn out to be unprofitable since transactional fees will be too high compared to potential earnings. Therefore, it's necessary to estimate those costs precisely in the planning phase to verify if a product has a real chance to succeed. For a blockchain developer that has to verify the client's business model, this skill is essential.

4. Understanding virtual machines

In terms of blockchain, a virtual machine is an isolated environment that runs software, such as smart contracts in most scenarios. Just like Java Virtual Machine (JVM) that runs all Java apps (instead of operating systems), those in blockchain are running smart contracts. Of course, that applies only to blockchains that have smart contracts. Other ones, like Bitcoin, don’t have virtual machine, because they don’t need it, because they don’t have smart contracts. They can rely on simple scripts for transactions.

So, in blockchains, virtual machines are either developed from scratch like Ethereum's EVM or they use ready-to-go solution, such as WebAssembly (Wasm) in Polkadot. If you're aspiring to be a blockchain architecture developer, knowing your way around virtual machines would be an extremely valuable asset.

5. Staying up to date with everything blockchain-related

Security breaches, hacks, and data steals are still major problems for blockchain networks. Being a good blockchain developer means knowing methods to avoid them, learning about all new trends, and reading news from the industry. So, in order to become a blockchain developer (or at least a successful one), you should take a deep dive into the technology and its business environment.

Crucial soft skills for blockchain developers

For many years now, software engineers have been required to be much more than just skilled code monkeys. It's no different with blockchain. In order to become a sound blockchain engineer, you need to have a set of soft skills that allow you to communicate and see every project from a larger perspective.

6. Communication

Being a willing and efficient communicator gives you a head start to becoming a truly successful blockchain developer. Understanding blockchain principles, various data structures, public and private keys, and cryptographic hash functions is all great. However, knowing how to verbalize that knowledge is what often makes a good blockchain developer a phenomenal one. It'll make you a better team player, efficient problem-solver, and overall more valuable piece of the whole puzzle.

7. English

If you want to participate in blockchain projects, you can be almost sure that you will work in international teams. To be an active and efficient part of the group, you need to keep up on the language level. It may feel pretty obvious, but it's so important that it wouldn't feel right to leave it unmentioned.

On a second note, you're reading this article. In English. And most of the other knowledge bases, ebooks, and video tutorials are in English. Of course, you could translate some of them, but you might miss something this way, and you won't learn the terminology as quickly as you should.

8. Flexibility and the ability to adjust to rapidly-changing circumstances

Blockchain technologies and everything around them is changing as we speak, so developers need to be ready for anything. As a programmer working in an agency, you might have to switch from one project to another and learn new blockchain in a matter of weeks. And it's not only that. Projects that you'll be working on might also change significantly over time due to certain market or technological turmoil. So it's always good to learn multiple languages and frameworks. The more you know, the faster you'll learn new ones if that's suddenly required.

9. Understanding business aspects of software development

In addition to being a fluent communicator and an excellent blockchain developer, it's great to have an understanding of the business aspects of software development. In the end, most projects you're going to work will have one specific goal, which is to make money. Of course, it's entirely possible to succeed as a programmer without getting heavily invested in the business side, but it's undoubtedly one of those blockchain developer skills that can help you reach much higher as a professional. As a business-savvy programmer, you're able to see the bigger picture of what you're working on, ask the right questions, and potentially find better solutions for the tasks at hand.

10. Other non-blockchain-related skills

Besides soft skills and those specific to blockchain technology, there are some that always come in handy in any software development job. There are many detailed articles about the topic, so let's just quickly get through the most important skills, tools, and systems:

  • High-level programming language (Python, Java, Ruby)
  • Version control (Git)
  • Databases
  • Project management methodologies
  • Test automation frameworks
  • Containerization
  • Continuous integration/deployment systems (CI/CD)

WANTED: Blockchain software developers

In the last couple of years, blockchain has become one of the hottest things in the tech world and for all the right reasons. As a software house specializing in technology since 2013, we've seen it coming for a long time, and we know there are still loads of new fascinating applications to it. And being a team of experienced blockchain specialists (and fans), including one of the top Ethereum contributors, we're ready for more fascinating projects. And we're looking for more like-minded devs to join us on our venture. So if you want to be a part of the revolution, let's chat!