The blockchain shortage of developers is not real.

Typewriter close upPhoto by markuswinkler (https://unsplash.com/@markuswinkler)It’s hard to read news about developers and not get the impression there is a shortage of talent. Makes sense right? Companies wouldn’t pay someone $100,000 per year if they could easily fill the job role with someone cheaper. But there is no shortage of developers. Don’t believe me?Copy and paste a generic developer job description and create a free job posting on LinkedIn. You’ll get a dozen applicants at minimum. Pay LinkedIn to promote the job and you’ll get dozens more. As a hiring manager, I’ve seen this play out dozens of times.With hundreds of people applying for a role, you should be able to lowball them below 100 grand per year right?Wrong.

There is no shortage of developers

More precisely, there is no shortage of people who call themselves developers. There is a shortage of qualified developers.Applying first aid does not make you a doctor. Using a spreadsheet does not make you an accountant. And building an app does not make you a developer.This is true of any domain of development. Knowing react js does not make you a qualified frontend dev. Knowing node js or django does not make you a qualified backend dev. And programming an ERC-721 token in solidity does not make you a qualified blockchain developer. For that matter, training a neural net does not make you a deep learning engineer.

An example from frontend engineering

It’s easy to look at frontend development and think “oh, I just wireframe some divs as react components, add some CSS, et viola, I have a web app.” Well you do, but it’s likely to be a slow, messy one with bad SEO.You must be able to account for different browsers. You must know how to optimize component loads and call APIs at the right time and place. You must know how to architect a codebase that multiple engineers can contribute to without stepping on each other’s toes. You must know why you pick one CSS solution over another that does the same thing. You must use reasonably modern tooling to improve your productivity. If the page is loading slowly, you must know how to speed it up. You must know how SEO and mobile optimization works. You must know a wide variety of libraries so you don’t reinvent the wheel. And although you don’t need to be a UI or UX person, you need to at least know the basics. You must recognize memory leaks and avoid them. You must architect your app to run A/B tests seamlessly. Your architecture needs to have the right abstractions to make swapping features and libraries seamless.Companies eventually learn the hard way that not everyone who calls themselves a developer actually knows what they are doing. And since bad software can absolutely tank a company’s revenue, they know to only hire qualified developers.

Let’s do the same exercise with blockchain developers.

Just because you put a smart contract on the mainnet, you are not automatically a smart contract developer.

So what makes you a qualified smart contract developer?

Just like the earlier example, you know a long list of what not to do. Just because your code compiles and passes the test, does not mean it is good code. Backend engineers know they can index the database however they like, but indexing by the first letter of someone’s name is a bad idea because indexes with common letters will get overloaded. Frontend developers know that as few component mounts as possible should depend on API calls to avoid empty pages when the internet is slow. They know certain CSS patterns don’t work on certain browsers or are less performant than others.Can you create a similar list for blockchain? (Without google?) Try now. How long is the list? Are you sure you hit the major issues?Hiring managers want to be confident you know what this list is. You don’t become intimately familiar with what not to do after 4 weeks of basic study and building simple smart contracts.We’ve just covered what not to do, what about knowing good ways to solve recurring problems? Do you know what the patterns are, or are you going to reinvent the wheel badly because you aren’t reusing institutional knowledge? Do you know if you should be on L2 or not, and if so, how you are going to communicate with L1? Are you able to take a step back from all the requirements and think about how to model your data gas efficiently, and in a way that is flexible for future changes? Security is a big one. The same hacks happen over and over again because developers generally don’t study this. This makes reputable hiring managers scared of hiring blockchain developers.None of this is to gatekeep or have artificial exclusivity. Nor is it to talk down on those earlier in their journey.The point is, companies have a good reason to reject your application if the best you can do is show a few simple projects based on online courses.

Glass Half Full

Glass half fullPhoto from https://pixabay.com/photos/optimism-optimistic-pessimism-619018/But just because the glass is 50% filled does not mean it is half empty.There is a useful and true glass-half-full interpretation of the facts.Any reasonably smart person can become a senior engineer in nearly any domain of programming if they train hard and long enough. There’s nothing magical or mysterious about mastering a subject. It’s been done millions of times, and will be done millions of times again.In fact, you can do it completely on your own. Now of course, we believe RareSkills can accelerate your path to senior engineer. But undertaking and completing the journey is up to you.This should not scare you, it should excite you. All you have to do is go beyond what your peers are doing, then the companies will come after you. It’s that simple. Yes, it’s hard work, but anyone telling you that you can get a desirable high paying job without hard work is selling snake oil. Yes, it’s pretty wonderful that you can get a lawyer’s salary without going through grueling and expensive law school, LSAT, and the bar exam. But working smart doesn’t mean avoiding hard work. It means working hard at activities that drive results efficiently.

True definition of hard work

Hard work does not mean undesirable work.Hard work at a dead end job for a horrible boss is bad hard work which you should avoid. Hard work to obtain a rare skill that puts you at the forefront of an exciting field is desirable hard work. Hard work studying things that doesn’t actually advance your knowledge or your job application is undesirable hard work. Hard work that takes you on quantum leaps towards your goal is desirable hard work.Companies strongly prefer senior engineers for good reason. There is no getting around this. There is no shortcut to becoming a qualified developer.However, the journey might not be as long as you think if you study at peak efficiency.That’s what we are here for. Becoming a senior engineer takes years if you leave it up to chance. We believe the journey can be a lot shorter if you study alongside motivated and smart people, and under the guidance of people who have completed the journey.We want you to be a qualified developer. There really is a shortage of those.Originally Published Nov 11, 2022

Over 150 interview questions for Ethereum Developers

Over 150 interview questions for Ethereum Developers All of these questions can be answered in three sentences or less. Easy What is the difference between private, internal, public, and external functions? Approximately, how large can a smart contract be? What is the difference between create and create2? What major change with arithmetic happened with Solidity […]

A bootcamp with a job guarantee is a bad idea

A bootcamp with a job guarantee is a bad idea Because the word “bootcamp” appears on some of our pages, we occasionally get asked if we have a job guarantee. We do not. Here are six reasons why we think job guarantees are a bad thing. 1. Companies insert “gotcha” clauses to make the guarantee […]

Mastering Solidity: Master the Computer Science Fundamentals First

Mastering Solidity: Master the Computer Science Fundamentals First I hate computer science! I’ll spare you the traditional arguments for why you should study and practice what is considered “the fundamentals.” I know, the relationship between reversing a LinkedList and writing a secure and gas-efficient smart contract seems non-existent. You’ve probably never needed to implement an […]

Leetcode problems and questions – the best 50

Leetcode problems and questions – the best 50 Whether web2 or web3, doing well on data structure, algorithm, and leetcode questions is important, not only for getting a job but developing a good foundation in computer science. Many developers know they should be practicing leetcode (or alternatively, hackerrank, codecademy, or codewars), but if you haven’t […]