Last month, LinkedIn published a list of the most in-demand skills for the new year, with blockchain leading the top-ten list. In 2019, blockchain didn’t make the list at all. Blockchain also ranked as the most in-demand skills in the United States, the United Kingdom, France, Germany, and Australia. It’s a skill sought in big enterprises like IBM, Oracle, and Deloitte, as well as plenty of startups (over 100 in Berlin alone).
Of course, using the term blockchain as a skill is as vague as saying IoT or Edge computing. The roles can be as expansive as any in tech from developers, engineers, coders, analysts, business managers, etc. But if you are a developer and interested in blockchain, let’s take a look at how you can break into this sector.
Where the heck do I start?
It’s worth getting an understanding of cryptocurrency and blockchain before you get into the skills needed to apply for jobs. How were they created? What do they aim to achieve? What are the current use cases?
Read some whitepapers, learn about the underlying principles and economics, set up a wallet and buy some cryptocurrency. Take a deep dive into smart contracts and distributed applications (DApps). While there can be a steep learning curve initially, before you know it, concepts like private and public keys, digital signatures, proof of stake, and proof of work will become clear.
It’s highly likely that you already have a solid base of skills that you can build on, that combined with a decent amount of understanding into blockchain will carry you well – especially if you can demonstrate your understanding and knowledge – volunteer projects, a GitHub repository, finding bugs, these all help.
What programming skills are required?
There are numerous blockchain development platforms today that are helping businesses and developers build new blockchain applications and invent new use cases with the technology.
There is no single language for developing on a blockchain. Different blockchain platforms and tokens are built with different languages. For example:
- Bitcoin – uses C++
- Ethereum – uses Solidity and Vyper for the development of smart contracts, and has SDKs in many languages for the rest of the Dapp
To be clear there are two distinctions worth understanding: developing a blockchain vs developing for a blockchain (such as DApps). If building a blockchain you have to know about security, high performance, cryptography, consensys algorithms, distributed computing. For developing on the blockchain – it really depends on what you are building, usually, a smart contract just handles transactional logic for example.
Beyond that, it really depends on what best compliments your existing skillset and captures your interest. You probably already have some great fundamentals: HTML, CSS, NodeJS and database storage will always be in demand. Security-first is essential, as smart contracts are prone to vulnerabilities and exploitation. Many more complex DApps still need to use existing storage options for performance reasons.
The tasks of a developer working in the blockchain space may include:
- Designing blockchain and consensus protocols, security patterns and network architecture
- Building decentralised apps including smart contracts and the entire stack running their Dapps.
- Creating interactive graphical user interfaces for Dapps
- API handling, and request handling.
According to Chris Ward, who works for the Ethereum Foundation and Kauri, the best thing about being in the blockchain space is getting to create new tech paradigms:
“You are defining new best practices and paradigms. You attempt to break apart the traditional promise of centralised computing.”
What Kind of Roles are Available?
As you can see from these excerpts from roles advertised, the blockchain developer space is broad and encompasses a diverse range of skills, competencies, and interests:
QA – Blockchain
Developers and product owners on Greenfield projects which will involved building and maintaining automated testing solutions. As a junior Tester, the company is not looking for much experience; only for a hungry and smart tester with demonstrable experience of your passion for testing.
You will be fully trained in all aspects and tools and business knowledge and will have the opportunity to be involved in the sales and professional services side.
You will also be encouraged to take part in client and team briefs as well as helping to deliver solutions which will make a great difference to the business.
The right Junior QA Engineer will have the following skillset:
- Keen eye for detail
- good knowledge of functional testing
- A solid background in manual testing (either to graduate level or a couple of years) (Essential)
- Understanding of Web testing using SOAPUI or equivalents (Essential)
- Excellent communication skills (Essential)
- The ability to think outside the box and present ideas you believe in (Essential)
- An interest in the financial services (Essential)
You will be given a real opportunity to grow within the team and will quickly become a key member of the team with a real voice and a real power to change things.
- Bachelor’s degree in Computer Science, Engineering or related field, or equivalent training, fellowship, or work experience
- Experience working closely with product teams, designers, and other developers to create a truly delightful mobile experience
- Experience developing highly performant code and view layouts and the ability to diagnose performance bottlenecks
- A disciplined approach to development, testing, documentation and code structure in a team environment
- A familiarity with the iOS tool ecosystem for development, testing, debugging, and performance benchmarking
- An excellent understanding of best practices for concurrency and threading, as well as offline-usage and accessibility
- Experience working with RESTful APIs
- A constant desire to improve, learn more and take things higher
- A little bit of humor and decent table football skills
Senior Blockchain Developer
- strong computer science and development fundamentals: (MSc or PhD in Computer Science required)
– object-oriented design
– functional programming
– algorithm design
– complexity analysis
- min 5 years of experience
- high expertise in at least two modern programming language
- experience in designing software (scoping, planning, conception, design, implementation, testing, documentation, delivery, maintenance)
- should produce reliable and maintainable code
- should be able to find creative solutions to difficult problems
- knowledge of best practices around the full software development life cycle, like coding standards, code reviews, source control management, build processes, testing and devops
- ability to mentor junior software developers
- very good communication skills and experience in managing stakeholders
Nice to have:
- interest in Polkadot
- experience in the administration of Linux
- knowledge in cryptographic processes and PKI
Furthermore, dominant components of your personality are: responsibility, autonomy, reliability as well as team spirit and commitment.
C++ developer at Ethereum
- Degree in a hard science, e.g. IT, engineering, mathematics or equivalent
- Professional C++ expertise as well as sound knowledge and experience in other programming languages
- In-depth experience in language design, compiler implementation or formal systems would be a plus
- A GitHub account with a proven track record of open-source project contributions would be a great advantage
- Strong mental alignment with the Open Source and/or Free Software movements
- Strong communication skill and ability to work in teams within lean start-up environments
- Ability to work in pair programming, critiquing and responsive to constructive feedback.
- You take self-responsibility and initiative and possess a can-do attitude
- Solution and goal-oriented, resourceful while still keeping a flexible mindset
- Cross-cultural expertise is a clear plus, experience in working with international teams across various time zones
- Motivated by constant self-improvement and innovation
Java Developer- Spring, Angular4/5, Blockchain, Cryptocurrency
A specialist tech first company working within Blockchain and Cryptocurrency seek a number of Full Stack Java Developers to join a rapidly growing team. You’ll be working on a brand new financial platform within a team that has a very flat structure and collaborative environment. The type of team where everyone makes decisions together, deliver quality software, use the best tools for the job and adhere to best practices.
Each employee is allocated a training budget, so there is a chance to attend courses/gain certifications, the company regularly hold workshops and hackathons so certainly a good chance to upskill and add extra strings to your bow. If you want to work within Blockhain, on a variety of challenging projects – creating software and products then this company would certainly be worth speaking with.
Below is a list of the technologies/methodologies the company are using, please note this isnt a checklist and you don’t need experience with everything listed.
*Knowledge of Blockchain, Bitcoin, Cryptocurrency
The role offers a vibrant and social workplace operating in a dynamic and fast-paced sector. For an ambitious, creative, confident, self-motivated team player this is an excellent opportunity to make a real difference to this already high-achieving organisation. Please apply for immediate consideration.
Deep dive into the resources
One of the great things about blockchain technology is that you can hit the ground running with a plethora of (mostly free) resources including tutorials, videos, webinars, and training.
- Coursera and Edureka over dedicated training into the fundamentals of blockchain tech and the underlying principles
- You can access free bitcoin developer tutorials
- Hyperledger offers extensive resources and there’s also an Introductory course at EdX by the Linux foundation
- Kauri can guide your knowledge from beginner to advanced
- For hands-on learners, you can learn to make smart contracts in Solidity by making your own crypto-collectibles game.
- You can also contribute to open source projects which attach bounties such as Gitcoin.
Find your people
The best way to learn is through doing, and connecting with others with interests in blockchain. Approach with a beginner’s mind and be wary of imposter syndrome. Talk to people on Reddit, Slack, and Git. Every week there are events, meetups, conferences, and webinars. All you need is time and interest.
Conceptually, blockchain is an emerging discipline and the use cases and technologies are ever-evolving. It moves fast with some unpredictability. But if you possess a genuine interest and a willingness to learn, you might just find the most rewarding career of your lifetime.