DeFi and Smart Contract Programming Explained For Recruiters

DeFi and Smart Contract Programming Explained For Recruiters
Post Author: Aaron Decker | Image by WorldSpectrum from Pixabay
Date published: February 15, 2021

You've probably seen that over the past few months Bitcoin has once again been frequently in the news with the price reaching new all time highs.

But did you know over the last summer the DeFi space (Decentralized Finance) has exploded in popularity? And this has little to do with Bitcoin.

What is DeFi

DeFi (Decentralized Finance) is a term meant to generally describe cryptocurrency and blockchain based projects that provide financial services. These new applications do things like operate exchanges (DEX - Decentralized Exchange), offer peer to peer loans, operate derivatives markets and sell NFT art.

Many of these applications are built as applications written in languages that can run on top of blockchain projects such as Ethereum. They are decentralized because the blockchain they run on is decentralized and every computer operating a blockchain node is running a copy of the program.

This means these decentralized applications are running and available anywhere in the world 24/7 and anyone can interact with them. Ethereum, for example has been billed as "The World Computer".

Smart Contracts?

Smart Contracts are simply programs that run on top of a blockchain. In this case I will be talking about Ethereum which is where about 80% of the DeFi action happens to be right now (but FYI there are many other competing projects).

So a smart contract is just software running on top of the Ethereum Network that anyone can interact with. You can make complex applications out of these to perform real world tasks. I'll list a few:

  • An Exchange: Uniswap allows you to trade ERC-20 tokens 24/7. All you need is an Ethereum wallet address to use it.
  • A Lending Platform: Compound allows you lend and borrow cryptocurrency. Lenders earn interest, borrowers must supply collateral to borrow.
  • An Art Market: Rarible allows users to sell NFTs (Non-Fungible Tokens) representing digital collectibles. Sounds weird, but Lindsay Lohan is on there selling stuff right now.

In each of these cases the intermediary is essentially just a piece of software running on a blockchain. There are many competing exchanges, exchange aggregators and derivatives markets (options and futures), and plain old payments systems in addition to the categories I mentioned above.

Basically, anything you can think of in terms of financial services is being built as a DeFi application right now.

Smart Contract Programmers

There are several languages used for programming these smart contracts, and most of the jobs posted that I've seen revolve around Ethereum. Ethereum is the most established blockchain for building these kinds of decentralized applications. It is also the largest in value in terms of market cap.

For Ethereum the main language used is Solidity, which is a statically typed language (think Java) but it has syntax similarities to JavaScript.

Like Java with the JVM (Java Virtual Machine), Ethereum uses the Ethereum Virtual Machine to actually run smart contract code. The details are complex but the short answer is that means that many programming languages can be written to run on smart contracts on the Ethereum network aside from Solidity. Another popular programming language for smart contracts is Vyper.

Take a breather

Holy crap this stuff is complicated. I know I know, we are going really far down the rabbit hole. There are a lot of terms to learn and totally new concepts to understand. These decentralized systems throw some of the concepts you are familiar with out the window!

Enjoy this meme, it's probably what you feel like is happening right now:

Its the world computer

Smart Contract Auditors

I'll just touch on one other topic before we wrap this up. One of the big issues with DeFi is Contract Risk. Which means, you are trusting the code you are interacting with to no have bugs (or security vulnerabilities) which would cause all of your cryptocurrency (money) to disappear!

Contract risk is a very real concern. Because of this several auditing companies have started which sell services auditing the code of smart contracts. Many DeFi projects advertise that they have been audited and raise money specifically for the purpose of hiring auditors. Contracts must continually be audited as the code is updated.

As this space continues to get larger, there might be even more jobs in auditing than there are for developers (of course the auditors themselves should be programmers).

Conclusions

Hopefully this was a helpful introduction to a technology space that has been taking off astronomically. As I write this 39 billion dollars is locked in DeFi contracts right now.

I think the big takeaway is that this idea of smart contract programming is a specialized skillset for programmers. There are multiple blockchains smart contracts can be written for but Ethereum (using the Solidity language) is the big one. There is a lot of ramp up time when learning how to program smart contracts so most of these job postings are looking for experienced folks in this domain.

In addition to the backend (which would be the smart contract side), user interface programmers are still needed to make UIs using React, Angular or whatever popular front end system is being used.

Question? Leave me a note for when I do a follow up to this article!


Want updates?

Want new posts about tech topics emailed to you? Sign up to the list below 👇

Also, if you are interested in learning technical topics through a video course specifically created for recruiters, don't forget to check out the courses I offer.

The main course "How to Speak Software Engineering Jargon for Recruiters" is specifically designed to help tech recruiters get up to speed fast on technical topics.


Written By Aaron Decker

I'm currently a co-founder and head of engineering at a venture backed startup called Bounty. I tend to think of myself as a backend engineer that can work up and down the stack in Typescript. Previously, I have worked as a Tech Lead and hired teams, and as a Senior Software Engineer at multiple fortune 500 companies building large products. I also did a brief stint teaching programming courses as an Adjunct Instructor at a local community college, which taught me a lot about breaking down complex things into understandable chunks.