Blockchain software is a hot topic right now. It’s disrupting the way we think about the economy, technology, and even social structures—so naturally, blockchain opportunities are everywhere. How do you know when you’ve found a good match for your blockchain project?
As an interviewer, you’re likely aware that an expert blockchain developer needs to have a deep understanding of blockchain technology. You know they should be able to identify which solutions to use in a specific business context, but you also know you’ll need more specific criteria than that to hire someone who’s right for your project.
Not everyone tasked with hiring a blockchain developer knows what they’re getting into. Before we get into blockchain interview questions, let’s start with a short introduction to the technology. Feel free to skip the next section if you’re already acquainted with blockchain basics.
When Did Blockchain Start?
Early on, people used a barter system for trade—but it was complicated. Imagine that you needed a loaf of bread. What would you do if the only thing the baker wanted in exchange was a new tool you could not provide? As economies grew, this approach quickly became ineffective.
Money changed everything, allowing us to extract the value of a product and put it into a form that is hard to produce but easy to exchange. Now you can buy a loaf of bread even if you do not have anything that a baker needs—you simply transfer value by using currency.
But for money to have value, users had to agree on the specific type or types of money that were accepted, and this understanding had to be shared by a sufficient number of people for an economy to work. In the past, coinage was approved by a king or queen, who guaranteed that you could use the currency in the land they ruled—everyone was forced to accept it. Monarchies in many places transformed into other systems of government, and in the meantime, banks were born. Today, this classical approach needs a central authority to produce the means of payment.
The connection between money and blockchain technology resides in currency’s reliance on a central authority. In the early 2000s, an individual or a group using the pseudonym Satoshi Nakamoto wanted to create a currency that would work without the need for any central authority. One issue to solve was how to determine if a transaction happened and in which order it occurred in the timeline. This problem cannot be solved in all cases. But a digital currency is just one particular case, and Nakamoto was able to solve it.
When we create a currency, we need to have a way to know who the current owner of a coin is and also the history of its movement. Banks have historically tracked such details using a ledger. Bitcoin is a digital, distributed ledger where everyone can verify all coin operations.
If we want to use ledger technology, there are some issues to solve: Who can make an entry in this book? Supposing just anyone is allowed to do it, how can we prevent someone from cheating by using the same coin for two different operations at the same time?
This latter problem is called double spending and is also solved by bitcoin. To be accepted by the network, there are certain conditions. Before exploring these conditions, however, we should take a look at two fundamental components of blockchain: the block and the node. A block is a collection of transactions bundled together and added to the blockchain, while a node is a computer that is connected to the blockchain network that maintains a copy of the blockchain and, in some cases, validates blocks and transactions. Every transaction needs to be put into a block, and a node needs to use its computing power to solve a related mathematical puzzle, called its proof of work.
After that, a block can be broadcasted through the whole blockchain network—but that doesn’t mean it’s accepted yet. When a block is transmitted, each node that receives it can decide to append this block onto its most extended chain. (This is the default behavior in bitcoin, which guarantees that we can achieve consensus.) Then the node can start mining a new block linking to this latest addition as its previous block. Mining is the process of recording and validating new transactions on the blockchain in order to keep the network secure. We can say that a transaction is accepted when a specific number of nodes have added this block onto their chains.
Interviewing Blockchain Developers
Now that you have an overview of blockchain technology, here are some questions experienced blockchain developers should be able to answer clearly during the interview process.
What is a blockchain?
A blockchain is a distributed data structure in the form of a growing list of records—although it can also be represented as a tree—where every node is connected with another by cryptography.
The core concept is a block. In its basic form, a block contains three things:
- A timestamp, which represents the creation of a block
- A “hash” (a fixed-size digest where, for a small change of input, the output is changed significantly) of the previous block
- The actual block data
Block data contains all transactions not yet included in other mined blocks. Before transactions can be accepted in a block, a miner has to be able to verify them. This verification process ensures that all transactions do not break any conditions or rules of the network. In most cases, there is an upper limit to the amount of data that can be included in a single block, meaning that there is a maximum size for each block. For bitcoin, for example, this limit is 1MB.
Once a block has been added to the blockchain, it cannot be changed without altering the data within the block itself and recalculating the hashes for all following blocks, which just isn’t feasible.
What is blockchain mining?
Mining is the process of adding new blocks onto the blockchain in proof-of-work systems. To add a new block, a miner node needs to perform some exhaustive computational operation—but one that’s easy to verify.
For example, the miner node needs to calculate the SHA256 hash of the concatenation of some magic number—which needs to be found by the miner—with the block’s header such that the hash ends up with a specific number of zeros. (This number of zeros is called the proof’s difficulty.)
What is the difference between permissionless and permissioned blockchains?
In a permissionless blockchain, everyone can join and become a part of the consensus process. Any popular public blockchain can be seen as permissionless.
In a permissioned one, there is an additional authorization layer, which is used to control which nodes have access to which part of the blockchain (e.g., there could be a fixed group of nodes that are the only ones allowed to create new blocks).
There are some solutions which can be seen as hybrid approaches. For example, J.P. Morgan’s Quorum is a fork of Ethereum, where part of the network is private, and the rest is public.
What is the genesis block?
The genesis block is the first block of any blockchain. It is the only block which does not contain a hash referring to a previous block. In many practical solutions, this block is itself hardcoded in software.
What is consensus in distributed systems?
This kind of consensus is the agreement among a distributed system’s nodes about the state of the system. It is a difficult computer science problem without a general solution, having been solved only for specific use cases, like bitcoin.
What are the most well-known blockchain implementations?
The first widespread implementation was Bitcoin, created by Nakamoto and launched in January 2009. Since then, many different applications have received publicity.
Ethereum provided a solution to run smart contracts and launched in July 2015. This brought the concept of DApps (aka decentralized apps) into the mainstream, and digital tokens were distributed to many people.
In the last two years, many companies like Intel, IBM, and J.P. Morgan started (or supported) working on private networks, which can be run by any organization and can be used to implement particular business requirements (like an internal ledger of operations inside the company).
Their support gave rise to blockchain-based solutions like Hyperledger, R3 Corda, and Quorum, an enterprise-focused version of Ethereum started by J.P. Morgan. These solutions can handle many use cases that cannot be supported by public networks. For example, they have much better transaction throughput, additional security layers, and specific consensus algorithms.
What is proof of work?
The proof-of-work system is one in which the sender of a message (or the creator of a kind of transaction) needs to perform work to sign the operation, a very time-consuming process. They need to bear the cost in an economic sense. But the process of verification of this work is easy and fast, so that everyone can do it in a very short period.
This approach was first used in the hashcash algorithm—later to be used as bitcoin’s core mining function—to eliminate spammers. To send an email, the sender first needed to calculate the SHA1 hash from specific input data such that it would contain a particular number of zeros.
The difficulty level was established such that a modern computer took about one second to complete the hash, but for spammers, who need to send thousands of messages at once, it would carry a very high economic cost, making the business of spamming unprofitable.
This approach is used in bitcoin for similar reasons. One main difference is in the target time for resolving the puzzle. When you mine a bitcoin, it needs to consume enough resources to guarantee that a new block will not be created too fast—it could cause many orphan blocks, and more blocks have to be mined to confirm the transaction. Unlike with the original email context for hashcash, on average, a new bitcoin block is signed every ten minutes.
If we add more power to the network, the puzzle needs to become harder. So the economic cost is growing. (In practice, the level of difficulty is changed every 2,016 blocks.)
Why do we need to use public-key cryptography in a blockchain?
We use cryptography to verify the sender/creator of a specific transaction. Without encryption, every operation could be easily reassigned, and then the network could be corrupted.
A transaction is signed using the private key of a sender and contains the address of the receiver. In bitcoin, for example, a public key is such an address. Then after broadcasting, everyone can verify the sender using their public key, which is available through the network.
What is a smart contract?
Smart contracts were created as a digital replacement for paper contracts (i.e., arrangements between two or more parties) where the execution of terms can be realized without any third-party go-between.
The most popular implementation of smart contracts can be found in Ethereum. In the context of Ethereum, a smart contract is a simple computer program, existing at a specific address, that is executed whenever a transaction is sent to that address. The code has to be run on every node of the network: All nodes need to reach consensus about the state of the blockchain.
Thus every program needs to return exactly the same result given the same input data and state. It can be seen as a mathematical function with two inputs ($S$
, the state; and $I$
, the input data) and exactly one output ($NS$
, the new state): $F(S, I)
to NS$
What Expertise Should Skilled Blockchain Developers Have?
Blockchain development is a somewhat niche subset of software development, so it’s essential to determine exact project requirements before looking to hire skilled blockchain developers. This is especially true because blockchain jobs still far outnumber high-quality blockchain experts, even as many web development professionals shift their focus toward blockchain careers.
Blockchain professional roles vary based on project needs, from full-time developers to part-time consultants. The ecosystem spans diverse blockchain platforms, each with unique development requirements. A blockchain developer job typically demands both specialized knowledge and broad development skills. Many projects need full-stack developers who can handle front-end, back-end, and smart contract development for DApps. Mobile app expertise, particularly for iOS, is increasingly valuable as more users now expect a seamless mobile experience for blockchain-based software. Blockchain technology also extends to non-fungible tokens (NFTs). NFT marketplace development requires knowledge of blockchain protocols and token standards as well as user experience design. When evaluating candidates, examine their GitHub profile or other professional portfolio for relevant blockchain projects.
Complementary Technical Skills for Blockchain Developers
There are many skills and technologies from the broader realms of software engineering and app development that are transferable to the blockchain, so it’s important to weigh these adjacent skills appropriately when assessing candidates:
Programming Languages:
JavaScript – A cornerstone of full-stack web development, JavaScript’s versatility extends to blockchain applications, especially when using Node.js on the server. JavaScript is the most popular programming language for adding interactivity to web applications, making it a must-have skill for most blockchain developers.
Python – The simplicity and extensive libraries of Python make it a great language for prototyping blockchain projects quickly. It’s often used in the development of cryptographic processes and to manipulate data on the blockchain.
Java – Due to its strong type-checking system and object-oriented approach, Java is prized in blockchain development for building secure and reliable smart contracts and DApps, particularly within enterprise environments.
PHP – Though not commonly associated with blockchain, PHP’s server-side scripting capabilities can be utilized to build interfaces and tools that interact with blockchain systems just as effectively as all of the aforementioned languages.
Solidity – As the leading programming language for Ethereum smart contract development, Solidity is specifically designed for crafting self-executing contractual states, which are stored on the blockchain and are immutable.
Libraries and Frameworks:
Front end – React.js is a vital library for building dynamic and interactive user interfaces on the web. Developers can create and manage DApps that interact with blockchain technologies using tools such as web3.js, a collection of libraries enabling Ethereum smart contract integration.
Back end – On the server side, Express.js is a popular Node-based framework building APIs capable of interacting with blockchain networks. Similarly, Python-based back ends benefit from Django’s high-level abstractions which expedite the development of secure and maintainable code, essential in blockchain’s trust-critical systems.
Common Blockchain Developer Roles
The blockchain market consists of several relevant types of blockchain specialists:
- Blockchain Engineers
- Smart Contract Developers
- DApp Developers
- White-paper Authors
- Initial Coin Offering (ICO) Consultants
The tech stack of blockchain applications is complex, and it is wise to identify the type of specialist you need for your goals.
Blockchain Engineers
If you need to implement an entirely new blockchain network, then you need to get a person who has a solid computer science background, experience in network development, and low-level skills as a programmer.
This person should have excellent knowledge of blockchain technologies—they should be able to go through the source code of existing projects and explain most of the approaches used in them. Ideally, they should have hands-on experience with blockchain architectures from previous projects, as well as prior experience working with early-stage startups to ship products from zero to one.
Please remember that this kind of project can be difficult and needs more than one developer to handle. In most cases, it’s safer to use existing open-source solutions. If there is no option to attain your specific business goals in the context of an existing project, then it’s still easier to simply define which parts of a project need to be rewritten. For example, you could benefit from the rest of a project but customize its consensus algorithm (e.g., proof of work, proof of stake, or proof of authority) as needed. Due to the complexity of such operations, depending on project requirements, hiring blockchain development teams is a common solution. Do not shy away from taking on multiple developers to form a dedicated team.
Smart Contract Developers
In many cases, you won’t need to implement an entirely new blockchain solution from scratch. That is, if you have specific business requirements that you want to fit into an existing blockchain.
A smart contract developer is a person who should know the internals of specific blockchain solutions. At the moment, the most popular solution that supports smart contracts is Ethereum. But there are other solutions—like Hyperledger Fabric and Sawtooth—that can be used when your business case should be supported within a private network.
This role can be critical in public networks, where there is no way to remove an invalid contact from the network without a hard fork. There are many known security issues, and these can sometimes cause financial loss. Every developer working on smart contracts should know as much as possible about these problems and should be able to write solutions.
It’s important that their solutions can be implemented even in immutable (public) environments. The level of modularization should be high, and the connections between smart contracts should be able to change dynamically. For example, the address of a specific contract should be non-fixed, so if a problem occurs, the developer can just point this address to a new address with a single transaction.
These problems are sometimes less critical in private networks. But still, in some cases, you cannot guarantee that every node will be fair, and the developer should be able to handle such situations arising from the limitations of the network.
DApp Developers
In a nutshell, decentralized applications (DApps) can be seen as user interfaces for people who want to use your blockchain system. A DApp is an application (in most cases, a web-based one) that provides the opportunity to interact with a set of allowed business operations. The most critical part of a DApp is the integration between “the off-chain” (i.e., everything that is outside of a given blockchain) and the blockchain itself.
Every event coming from the blockchain needs to be correctly handled by a DApp, and the DApp should also reflect the current state of the blockchain in real time. Also, in cases where a piece of data needs to be pushed into the blockchain, a DApp developer needs to know how to achieve that.
The role of the developer is to create (or maintain) a communication protocol for transferring data from between the blockchain and the off-chain. A significant thing to remember is the fact that every transaction (especially in public chains) can take some time before users can see the result. The developer should be skilled at having the app reflect this fact smoothly in its UI/UX so that the user understands they need to wait for a specific period.
White-paper Authors
A white paper is a hybrid document that tries to sell technical aspects of a project in a way that can be understood by the average reader.
In the blockchain world, every project wants to have its own white paper—the quality of a white paper can be used to critique the project itself. There is no successful ICO without an excellent white paper.
This role can be hard to fill because a writer needs to live in two contexts at the same time, having a deep understanding of both business and technical aspects. They need to create a document where the hard technical aspects are presented in a way that shows off potential business benefits.
Initial Coin Offering (ICO) Consultants
Some ICO project managers will look for consultants among blockchain engineers. But a blockchain engineer is someone who knows how to resolve low-level issues. For ICOs, companies need a person who is able to set up a site, create smart contracts, and publish them into a public network. They don’t need to set up a new, private network, or work on source code for a specific blockchain network. This is why a DApp developer is generally a better fit as an initial consultant for an ICO project.
Fresh Technology, Fresh Interviewing Criteria
Blockchain development is the hottest topic these days, but it’s still fresh, and there aren’t too many experienced specialists out there. It’s critical to lay out your project requirements and know how to identify developers with the relevant experience needed to bring your business ideas to life. We hope this guide has equipped you well for your quest to find the best blockchain developers ready to dive into your project.