Why Developers Shouldn’t Shy Away From Blockchain Development

Photo by Markus Spiske

The key to the talent gap we are witnessing in the blockchain sphere is education; the key to airtight code is extensive testing and peer reviews. æternity blockchain covers both grounds.

Despite Rising Salaries, a Huge Talent Gap Remains

To the layman, the concept of blockchain is in itself, intimidating. For developers outside the industry, the thought of shifting to a new, unfamiliar environment where fundamental paradigms related to security and code mutability are altered is daunting.

This aversion is completely understandable. Popular media is riddled with news about exchange hacks, DAO debacles, smart contract bugs resulting in millions of dollars in losses. In total, reports suggest that due to these issues around $1.7 billion were lost in 2018 alone.

So while salaries are skyrocketing for developers in this space, many prefer the safety of the code they are used to. There are definitely professionals who are taking a “leap of faith” by entering the blockchain industry, but there’s still not enough technical competence in the space to go around. In fact, 94% of Fortune 500 companies are anticipating a talent shortage in the industry.

Many have argued that the key to bridging this talent gap is through education. This is undoubtedly true. But first, we need developers to be interested. And for them to be interested, we need to demystify blockchain programming and address the biggest fears developers face when tinkering with next-generation applications that combine openness and trustlessness. It is, after all, a radical deviation from what the world had gotten used to.

For developers who have been involved in this “decentralization revolution”, coding blockchains and developing new types of applications is both challenging and inspiring — even liberating.

You have to be serious when dealing with blockchain tech.

Another good news for reluctant developers is the fact that, according to programming veteran Dincho Todorov, blockchain development is still in its early stage. There’s plenty of room and time for “fresh blood.”

Todorov is a software engineer who currently works on the Site Reliability Engineering (SRE) of æternity. æternity is an Erlang-based scalable blockchain platform that uses State Channels to allow execution of smart contracts privately and cost-free off-chain, and enables real-world data integration through protocol-integrated Oracles.

We’re taking care of the infrastructure, services, tools, and pipelines needed to build robust software. We’re making sure it’s all well-integrated, reliable, and usable by developers, Todorov says, giving an overview of his work for the blockchain platform.

We’re also running a few services that help in the process of on-boarding new users, miners, and developers. An example here are the so-called “seed” or “bootstrap” nodes that allow new users to connect to the æternity network. Another example is the API gateway that is used to develop decentralized applications on the blockchain.

Although it’s a new field, there are still many practices that remain somewhat similar to other types of development, according to Todorov.

It is just software, at the end of the day. What is different is the concept. It’s a different kind of software, but I don’t think we need special processes, especially for the core blockchain development.

Developers Wanted: “Raw” Perspectives Are Valuable

First of all, for those who are discouraged to enter the blockchain field by the associated financial risks, FinTech is only one of the industries where blockchain can be applied. Second, for those who think they are too late to the blockchain party, that assumption is far from the reality. Development in the space can strongly benefit from “unburdened perspectives,” according to Todorov.

The æternity team is growing continuously. In fact, new developers have identified areas of improvement. Looking at the code from new vantage points helps immensely. An extra ‘raw’ point-of-view can help.

In many instances, collaboration is a positive thing — the more eyes and hands are involved, the faster real progress is achieved. And it might be comforting for developers to know that in open-source projects like æternity, the global developer community has their back. If there are loopholes in the code, someone will find it.

Running automated tests, manual testing and peer reviews are the best approaches to get bug-free, stable software — without any breaking changes, and still be able to continuously ship out new features. If you want to make sure things are working well, the key is always testing.

Programming language requirements aren’t necessarily new. æternity, for example, is trying to meet existing developers halfway by supporting the most commonly used programming languages: JavaScript, Python, and Go. Languages like C++, Ruby, Java, and Rust are also useful for developing blockchain applications on platforms such as Ethereum.

It’s hard to monitor node health and performance in a peer-to-peer network. We currently have more than a hundred nodes to support various environments. That translates into a lot of servers, instances, different configurations, etc. Also, the size of the blockchain will surely become an issue at some point since it is replicated on all the nodes. The traditional approach relies on centralized databases that store the data. This is not the case with public blockchain platforms.

The upside, however, is that blockchain networks are very resilient. According to Todorov, there are safety nets.

The good thing with blockchains is that they are distributed databases running over peer-to-peer networks. Even if, for some reason, we deploy faulty code on one of the nodes we support, or generally screw things up with the nodes we run and support, the rest of the network keeps running because nodes run by users are usually not affected.

So where can you start?

Going back to the argument that education is the key to bridging the glaring tech talent gap, there is an abundance of free resources online for those who want to get started. In fact, some even compensate people to learn.

æternity launched a “learn-to-earn” program, where developers who finish æternity tutorials created by the community-driven group Dacade are credited with €100 worth of AE tokens, up from the initial €50 learning bounty.

https://dacade.org/

æternity also launched an incubator program called Starfleet, which is run by Æternity Ventures. The goal of the incubator is to support and guide teams who are ready to start solving real-world problems on the platform.

https://dacade.org/

How Challenging is the Transition From Traditional Software to Blockchain Development?

Todorov explains that like most things, the difficulty would depend on the level of experience of each individual developer.

When it comes to blockchain technology, I am also interested in the tools that are available to decentralized app developers and users. It always depends on the developer knowledge and experience. Blockchain technology does introduce different concepts, but you still need to be familiar with all the components and languages around any application.

The difference with the blockchain is that the database is public and it is always running. So from a user point of view, there wouldn’t be much of a difference, at least not for me. I have more than 10 years of developer experience and I really don’t find blockchain technology intimidating. Nonetheless, I do see developers facing difficulties with even simple applications. It really all depends on the experience of the developer.

While transitioning from programming traditional applications into blockchain-based applications presents challenges, it also offers many opportunities — not only for programmers but for UX designers as well.

Todorov asserts that the human interaction aspect of blockchain services, in particular, needs a lot of work. Many have commented on the usability aspect of blockchain applications being a nightmare, making it difficult for businesses to implement them even if they had serious intentions to do so. Making blockchain integration for businesses and users as painless as possible is one of the primary roadblocks for blockchain adoption. It is a tremendous task. Even something supposedly as simple as using a wallet to move cryptocurrencies has been full of uncertainties for users.

We are constantly developing the core æternity tools and services. We also have several suites dedicated to development, integration, and testing. We’re running these services to bootstrap the network. At some point, users will have to run all these things themselves for security reasons. And that’s one of the challenges with blockchain, educating users that they have to run the services themselves. I guess that’s the biggest challenge with blockchains because it’s a public service — it must be run by the users.

In terms of development, Todorov admits that there’s always work to be done. According to him, it’s still early — so early that many of the problems currently being solved are mainly related to the development interface itself. Explaining further, he says the entry barrier for newer developers will hopefully be lowered as current veterans work to further enhance the dev tools. æternity, in fact, developed a brand new smart contract language called Sophia, precisely with the goal to make smart contract programming easier and more predictable, minimizing code errors.

The æternity blockchain and the tools are still very young. They are becoming more stable and polished every day. We are constantly working to make it better, with an emphasis on improving the user experience. The user experience is the key to mainstream adoption.


UPDATE: æternity Universe One — the first conference dedicated to the latest R&D in the blockchain space and æternity, took place on September 20–21, 2019 in Prague. Dincho Todorov held a talk entitled “Driving the Blockchain”. Watch it below:


Interested in æternity? Get in touch:

GitHub | Forum | Reddit | Twitter | YouTube | LinkedIn


Leave a Reply

Your email address will not be published. Required fields are marked *