Tag: Solidity

Need to hire Blockchain talent, but new to the industry? Not sure what makes Blockchain developers different from other engineers? Learn the basics here.

Back in the early 1990’s, when the Internet had just become “a thing” for most people, connection speed was so slow and html code was so limited that it did not require any significant level of technical basis to understand what a Web Developer did. He or she was the guy who wrote html elements like <strong> and <br>, right?

For talent recruiters within and out of the Blockchain sphere, however, the world has become more complex in the past 25 years. A Blockchain, unlike a website, involves P2P networks, nodes, cryptography, token exchange platforms and other more sophisticated concepts. More importantly, because Blockchain systems for the most part are built not on a single programming language like html but on a diversified technology stack that is partly dependant upon developer preference, there is no single programming language or identifying factor that definitively distinguishes a Blockchain developer from a general web or app developer, making the term “Blockchain developer” a misnomer…almost.

So who are these Unicorn-like “Blockchain Developers” then?

To state the obvious, first and foremost, a Blockchain developer is a software engineer who solely or in concert with other developers creates or enhances a Blockchain system. If you found your way here, you almost certainly already know what Blockchain itself is, but if not, here’s a cute explainer video that does a pretty good job.

“By the end of 2017, the total number of software engineers with any experience working on Blockchains was estimated at under 30,000 (out of a global population of general software developers numbering more than 18 million.”

There is a substantial gap, of course, between understanding the basics of Blockchain and actually identifying a competent Blockchain developer. By the end of 2017 the total number of software engineers with any experience working on Blockchains was estimated at under 30,000 (out of a global population of general software developers numbering more than 18 million). Of that amount, probably only a few thousand had more than a year or two of experience working on Blockchain development, and of THAT amount, it’s likely that very, very few were highly proficient in the range of skills, programming languages and experience that it takes to create entirely new Blockchain systems.

What DOES define a Blockchain developer is a set of skills and experience in the some or all of the following Blockchain concepts…

Peer-to-Peer (P2P) networking

Cryptography and Crypto-currencies

Consensus algorithms

Risk analysis, data security, anomaly detection

Smart contract development

Distributed ledger / Distributed application development

Distributed storage

Defining the attributes of a Blockchain developer might also involve identification of some of the most popular programming languages that developers are using to build Blockchain systems…

C++

Javascript

Geth/Go

Python

Solidity

React

Rust

Some of the most popular existing Blockchain platforms…

Augur

Bitcoin

Corda

Eris:db

Ethereum

HydraChain

Hyperledger

MultiChain

OpenChain

Steem

Stratis

Or a few of the tools, programs, frameworks, protocols, compilers, libraries, plugins, services and implementations related to Blockchain development…

Dapple

Embark

IPFS

Metamask

Mist

MongoDB

Node.js

NoSQL

Parity

Pudding

Solc

Swarm

Tierion

Truffle

Web3.js

Whisper

So a Blockchain Developer is a person who has all of these skill sets and knows all these programming languages and tools?

Not so fast. It is extremely unlikely that any one individual stands in possession of knowledge and experience in ALL of these softwares, protocols and platforms. Blockchain development in specific, and software development in general, do not work like that. The languages and tools used depend upon industry, use case, integration requirements, developer preferences and legacy systems. On an individual basis, what a Blockchain developer knows and does also depends upon that Blockchain engineer’s focus.

“What is important in considering Blockchain candidates is that they DO have a strong understanding of and experience with the basic Blockchain development concepts and protocols and strong experience in at least SOME of the key languages and tools preferred for Blockchain development.”

Is he or she a back end Blockchain developer? front end Blockchain developer? or full stack Blockchain developer? A Blockchain DevOps Engineer? A Blockchain UX Designer? Or the rarest specimen of all—a true Blockchain CTO or Blockchain Senior Architect, who will devise genuinely new innovations, choose the technology stack and guide the entire development team?

What is important in considering Blockchain candidates is that they DO have a strong understanding of and experience with the basic Blockchain development concepts and protocols and strong experience in at least SOME of the key languages and tools preferred for Blockchain development. In most cases, your Blockchain developer should also have a strong track record collaborating in open source communities like Stackoverflow and Github.

Well, then what is the difference between a Blockchain developer, a Bitcoin developer, an Ethereum developer, a Smart Contract developer, a Solidity developer, and a DAPP developer? (And which one do I need?)

In simple terms, a Bitcoin developer works on Blockchain systems using the Bitcoin protocol and platform, an Ethereum developer works on Blockchain systems using the Ethereum protocol and platform, a smart contract developer works on the smart contract creation aspect of Blockchain systems, using a language like Solidity or Simplicity, a Solidity developer specifically uses the Ethereum based Solidity program to create smart contracts, a DAPP developer creates front end applications in any language which operates autonomously on a decentralized network, and all of the above are in one form or another Blockchain developers.

Again, which roles a Blockchain employer needs to fill depends entirely upon the Blockchain company’s project(s), the existing team and skillset, and the preferred development platform technology stack and implementation.

We here at Blockchain Developers, Inc. are world-class at helping you find and hire the talented Blockchain developers you need to grow. Just fill out our contact form, and we’ll be happy to see if we can help!

Ethereum has pole position in the race toward a Blockchain standard. So how do you hire Ethereum developers?

If you’re a human resources officer, startup founder, CTO, or business division executive whose been in the technology game for a while, you’ve almost certainly become adept at hiring software developers. You might have a large LinkedIn network. You might be accustomed to searching competitors movements on angel.co. You might even be an old hand at sifting through Github repositories. There is a constellation of different kinds of software developers out there…and you know how to tell the good ones from the bad ones.

But there are software developers…and there are Ethereum developers. Ethereum has pole position in the race towards a Blockchain standard. But just a few years have slipped by since Vitalik Buterin plunked out his seminal white paper in 2013, and in the interim, just a fraction of the 18.5 million software developers worldwide know how to develop on the Ethereum platform.

If you want to know how to hire Ethereum developers, you first may just want to understand what makes Ethereum development so unique. And why it’s so critical to find Ethereum developers with a few very strong characteristics. Your lead Ethereum engineer makes—or breaks—your business, so you can’t afford to get this wrong.

Last month’s evolution is already today’s dinosaur. That’s part of the excitement. To keep up, an Ethereum developer needs to be a so-called “Super-Learner”— someone who reads voraciously and can master new concepts faster than the average software developer.

1. Ethereum Developers must be Super-Learners
Ethereum is a baby in the tech development world. As such, the possibilities it presents are growing and changing quickly. First Ethereum out-did Bitcoin by creating a more conventional and flexible development standard. Then it sped things up by streamlining transaction time from 10 minutes to just 15 seconds with the Ghost Protocol. At the time of this writing (perhaps already out of date by the time you read it), the Ethereum community is working on the Casper protocol and shift to Proof of Stake (PoS) instead of Proof of Work (PoW). Last month’s evolution is already today’s dinosaur. That’s part of the excitement. It’s fun riding the wave of this incredibly fast-moving technology. On the other hand, as new potential emerges, so do many challenges. Your Ethereum engineer has to be constantly learning. To keep up, an Ethereum developer needs to be a so-called “Super-Learner”— someone who reads voraciously and can master new concepts faster than the average software developer. Ask potential hires about the skills they’ve picked up recently, how long it took them and how they did it. You might find indications as to whether your Ethereum developer will be able to keep up or not.

2. Ethereum Developers must be Extremely Versatile
There isn’t really a singular definition of what an Ethereum developer is, other than “a Blockchain engineer who works on the Ethereum platform.” Likewise, the definition of a Blockchain engineer is somewhat fluid, as we covered in our Feature on “What is a Blockchain Developer?” At a minimum, however, an Ethereum developer needs a few things:

In addition to a smattering of important coding languages, Ethereum programmers specifically use Solidity to write smart contracts. Initially, Solidity was designed to work a lot like Javascript, but over time, has come to resemble a mash-up of Javascript and C. As problems surface and requirements diversify, Solidity keeps changing. Many developers mistakenly think of Solidity as an easy, familiar language. Not necessarily so. While Ethereum and Solidity do make Blockchain development much more accessible than initially possible with Bitcoin, the process and language are still particularly challenging to master.

A good Ethereum developer comes to the table with more than one ace up his sleeve. While no Ethereum developer is likely to know every protocol and programming language relevant to Blockchain development, if you want to hire an Ethereum engineer, you need to find a bit of a swiss army knife

3. Ethereum Developers must be Meticulous “Trouble Shooters”

Ethereum developers must be talented trouble-spotters— and shooters. They must have a strong instinct for where things might go wrong, the ability to think like a hacker to determine where weaknesses might be exploited

Once uploaded, Ethereum code can’t be easily changed or removed. Smart contracts and the Blockchain trails they leave behind are are designed by nature to be immutable. Done well, an Ethereum based distributed application is a thing of almost utopian beauty—functioning autonomously and fairly for all constituents.However, to get off the ground, a human must be involved— an Ethereum developer— and as we all know to err is human. It is very easy to make mistakes. And one slight flaw in the system is to hackers as blood in the water is to circling sharks. There are no backdoor options in an Ethereum-based Dapp to take the system down and debug it. You would have to dismantle your entire platform and rebuild it from scratch to fix a bug. Not only can this cost platform owners and users millions, but it is more than enough to ruin a promising venture…like The Dao.

Ethereum developers must be talented trouble-spotters— and shooters. They must have a strong instinct for where things might go wrong, the ability to think like a hacker to determine where weaknesses might be exploited…and they need to test, test and test some more. An Ethereum developer tests code in three stages:

• Local testing within a simulated environment
• Testing on a live test network (called testnet)
• Testing before on the main Ethereum network.

Ethereum is part of the brave new world of Blockchain, one which hasn’t been around long enough to determine all that can go wrong. It is getting better by the day, however, with security philosophies, bug bounty program guidelines, and best-practice procedures emerging as we progress. An outstanding Ethereum developer is meticulous in his work, recognizing and eliminating weak spots in code, so that valuable tokens stay where they belong — not in the pockets of hackers.

We here at Blockchain Developers, Inc. are world-class at helping you find and hire the talented Blockchain developers you need to grow. Just fill out our contact form, and we’ll be happy to see if we can help!

What do Chess, Acting, burritos and C++ have in common? Bitbay’s founder tells his story.

We sat down with David Zimbeck, early Smart Contract pioneer, and founder of BitBay, BitHalo and BlackHalo with one question on our mind… “What does it take to become a Blockchain Developer?” Zimbeck transitioned to Blockchain development from acting, real estate, film development and chess, among other adventures. He shared with us his thoughts about the paucity of outstanding Blockchain developers and the qualities that make for good ones. Here is what we learned:

Blockchain developers must be well-rounded and analytical

Zimbeck himself appears to be a man of many lives. At one time, he loved Chess—he won the Ohio scholastic state championship three years in a row, becoming Chess Master at age 18 and defeating 10 Grandmasters in a tournament in Europe. Later careers included drilling oil, handling real-estate, producing films and acting. (Watch Zimbeck swashbuckling a minor role in Pirates of the Caribbean 2.) Each experience, he said, contributed to his Blockchain innovations.

“Chess,” for instance, “helped me visualize code. It helped me plan, memorize and problem solve, as well as anticipate problems well in advance. Working in Real Estate was crucial when I was developing BitBay’s double escrow smart contract program, and oil drilling taught me how to press forward through fatigue and discouragement. Being well rounded is critical for perspective and insight.”

Perseverance, self-discipline and willpower are essential

“I was literally a nobody in Cryptography, and I came completely out of nowhere. I’ve been persistent with my goals. It’s a marathon, not a sprint.”.

Zimbeck said it took him 93 sixteen-hour days in a trailer to teach himself to program from scratch. This was mid-Winter in North Dakota under minus-13 degree conditions. “I lived on Taco Bell spicy potato burritos, almonds, chocolate, sunflower seeds and Mountain Dew,” shared Zimbeck, “I would wake up, roll out of bed, and code until falling asleep. I developed a cough so bad that I had to fly to Florida after my prototype was done and be nursed back to health by my parents.”

What motivated him? “[This work] was what was needed,” said Zimbeck, “to make the world’s first smart contracting platform. I was literally a nobody in Cryptography, and I came completely out of nowhere. I’ve been persistent with my goals. It’s a marathon, not a sprint.”

Blockchain programmers must be meticulous in their work. Blockchains must be secure enough to protect large amounts of value. Platforms, once built can only be revamped through great expense and risk of disruption to the communities they serve. For these reasons, developers need to be painstakingly careful and thorough in their coding. One mistake may easily cause the platform’s clients to lose hundreds of thousands, if not millions, of dollars. David Schwartz, Chief Cryptographer of Ripple, who developed secure messaging and cloud storage software for government and military applications, compared Blockchain to a fortress. Enemies try to breach crypto infrastructure all the time. It takes a top developer to prevent and withstand these attacks.

Outstanding learning skills are more important than specific language familiarity

Job postings that seek outstanding Blockchain engineers usually specify a shopping list of requirements that include programming languages like LLL, Java, C++, Serpent and Solidity. To Zimbeck, the most important qualities are the abilities to keep on learning and to think “out of the box”.

“Smart contracts aren’t limited to one language. You should be able to deploy in any language you want on a sidechain or in a sandboxed fashion like JavaScript or Python. We engineers have many languages at our disposal,” he told us.

Zimbeck, a high-school dropout who only knew basic QBack and C++ when he first came to Blockchain programming, revealed that he taught himself Blockchain engineering by searching for information on Google. Indeed, Blockchain investor Zach Piester noted that Blockchain engineers need to think creatively, since Blockchain is an evolving technology, and since each usage case has its own unique requirements. The industry is moving at break-neck speed, so Blockchain engineers need to constantly update their skills, and need to have the courage to innovate audaciously.

It takes a great deal of passion to be a Blockchain Developer

“Money means nought to me. I want to lead a self-sufficient life. After programming, I want to be a builder or have a farm.”

Top Blockchain developers are not programming because they need the money, but because they genuinely love the industry, and/or because they see Blockchain technology as a tool for good. Zimbeck told us:

What got me into Blockchain was my prior search for solutions to world problems. Bitcoin didn’t impress me too much, since the decentralization of money won’t stop the media from dictating to people. However, I saw a lot of interesting potential with Blockchain, and this is what eventually lead me to the Halo idea”.

For Zimbeck, it was the drive that he’d had childhood on to make the world a better place. People like he see smart contracts as tools to not only protect cryptocurrency traders, but to make the world more democratic and trusting.

Blockchain engineers are often called “crypto-anarchists.” They believe in the power of Blockchain to remedy injustice, to restore trust, to help individuals escape government interference, to shatter borders, and to end corruption (among other benefits). These kind of individuals are neither grooming their LinkedIn profiles, nor searching for a way up the corporate ladder. “Money means nought to me,” said Zimbeck, “I want to lead a self-sufficient life. After programming, I want to be a builder or have a farm.”

We here at Blockchain Developers, Inc. are world-class at helping you find and hire the talented Blockchain developers you need to grow. Just fill out our contact form, and we’ll be happy to see if we can help!

Bitcoin developers are rare, numbering only a few thousands really skilled ones. If you want to find and retain the best Bitcoin software engineers, you’ll want to know some tricks to get them.

The A-Z of Bitcoin Developers

First, Bitcoin developers fall into three fields.

There are those who….

Build applications that interact with your blockchain: These are programmers who know web development and popular libraries like ReactJS. They don’t need specialized blockchain knowledge.

Build on an existing framework (usually in the form of smart contracts): These are smart contract developers, with a background in programming, security and software testing. These developers tend to know IPFS/Filecoin, Oracles, token models, state channels, and the like.

These developers build a blockchain from scratch: They are full-stack developers with a strong background in lower-level programming languages (e.g., Java, OCaml, and C#), distributed systems and cryptography.

So, essentially your search boils down to what you want your Bitcoin developer to do. Once you know that, the rest is easy.

Where to Find your Bitcoin Developers

The “regular” Bitcoin engineer who improves your apps

You’ll want programmers who know web development and popular libraries like ReactJS. They don’t need specialized blockchain or Bitcoin knowledge.

You’ll want Solidity developers, with a background in programming, security and software testing. These developers should be familiar with IPFS/Filecoin, Oracles, token models, state channels, and the like.

You may want to search LinkedIn for programmers that have these skills, scour relevant subReddits or place a cheap Reddit ad on crypto-subs.

The highly uncommon Bitcoin blockchain builder

This is the rarest sort of engineer to find. You’ll want a full-stack developer with a strong background in lower-level programming languages (e.g., Java, OCaml, and C#), distributed systems and cryptography.

Here’s How to Motivate Terrific Bitcoin Developers to Work for You

Qualifications for your Bitcoin software engineer include the following:

A solid understanding of code and programming. You’ll want a backend and frontend developer, who knows codebases like Java, C++, Ethereum Solidity, Python and more. You’ll want them to have experience working with these languages in professional settings. Such Bitcoin developers also need to be able to program high-quality code for Ethereum or Bitcoin blockchains (at least), encode smart contracts and digital tokens, and master game theory and economic principles. They’ll need to have experience in areas like fixed income instruments, currencies, and commodities (FICC), equities, payments processing, and wholesale credit.

Your dream Bitcoin developer frequents bitcoin development communities, chats on hackathons, patronizes online and offline meetings, is an excellent multitasker and handles challenges. More so, Bitcoin engineers, as with all blockchain engineers, must be open to change and willing to learn. “You can’t just say ‘I am a highly specialised blockchain guy’ because that actually doesn’t really mean anything, or say ‘I am really good at Eris’,” explains Seamus Cushley, Director of PwC, blockchain consulting services, continuing to explain that, “Eris may not be here tomorrow: It may become the underpinnings of the globe or they may not. So it is the ability to change which is important.”

Places to Look for the Bitcoin Programmer?

Look for full-time Bitcoin software engineers on online blockchain-related forums like Bitcointalk or relevant Reddit subgroups. You may may also want to consider platforms like Gitter, the preferred chat app for developers, or crypto channels on Slack or Discord. You’ll find blockchain engineers on blockchain meetups and in developer conferences like Ethereum Devcon (i.e., Ethereum Foundation Developers Conference).

Bottom Line

You’ll need to learn the rudiments of Bitcoin technology to find them. And even then you may fail, especially if you’re hiring a Bitcoin software engineer to build a private ledger for a bank – these individuals believe in decentralizing the system! You have to be extremely creative, resourceful, and almost emphatic.

According to former chief information officer at UBS and founder of Bussmann Advisory, Oliver Bussmann, there are only about 20,000 such individuals in existence. William Mougayar, reckoned that there are even less, estimating that there are approximately “5,000 developers dedicated to writing software for cryptocurrency, Bitcoin, and blockchain in general.”

Then again: Look hard enough and try hard enough, and you may find at least one or two great Bitcoin developers who may consider giving your company a try.

We here at Blockchain Developers, Inc. are world-class at helping you find and hire the talented Blockchain developers you need to grow. Just fill out our contact form, and we’ll be happy to see if we can help!