Jan, 18, 2021

Hiring a Dev

Today I hired employee #1, just kidding, kind of, I found a developer that I have confidence in to develop me a product that is within 80% of what I expect. I want to share my approach and process.

Knowing What I Want

If I dont know what I want, how can I expect someone else to build what I want? It is impossible. I would be fighting myself and my developer every step of the way in order to wrestle an idea out of the mud while burning money and time.

Instead I made sure to understand what I want to be built. I took my initial hacky idea and did research on the current available technologies that are more or less out of the box. Then I followed some tutorials through truffle to write a basic smart contract, integrate it with a front end and understand the general ecosystem of testnets, metamask, smart contracts and deployment. Initially my plan was to do all of the development work myself but I decided that this task is within my budget to hire someone to do and I like the idea of developing my Product Management skills.

I have 2 guiding documents. The first is something I title “Lotto Technical Requirements” that is intended to provide a roadmap of everything that my DApp can do and the motivation behind it.

This document is broken up into 9 sections.

  1. What are we making?
    • A 1-line business description. This is what you tell the friend who you kind of know but not super well what you’re doing.
  2. Token Overview
    • Obviously this is my application specific but maybe an alternative would be “Main Technical Piece” Overview or something.
  3. Logic
    • My product has a sequence of steps, the “logic” in a computer sciencey context is laid out here with numerous subsections.
  4. Buying a Ticket
    • I use this to explain a somewhat confusing concept that I get asked to elaborate on all the time by the people who I tell my idea to. I have a Finite State Machine image and a flow chart.
  5. Technology Stack
    • Tells me what kind of devs to target.
  6. Proposal
    • What I expect from potential developers to present me in order to win the project.
  7. Milestone
    • See above.
  8. Code Maintenance
    • I need to own all of the code, it lives in a private repo that I make and have full rights to.
  9. Communication
    • Explicitly stating that this is not a “see ya in 6 weeks” type deal. I need to have my fingers on the pulse.

Using this, I then wrote the second document, which I titled “Lotto Investor Presentation”. The goal of this is just a rough, emphasis on rough, slide deck that I can use to give a cursory overview on what I am trying to build. The technical information is skin level but it gives enough for a somewhat savvy person to see the vision.

This process forced me to take my initial vision and fit it into the current practical world. Could I pay someone enough to make my vision EXACTLY what I want? Sure, in theory, but in practice I can’t so I’ll live in that world for now.

This did not take me very long but keep in mind that I’ve been thinking about this for over a year.

Writing a proposal

5 sentences on what I want to make plus a file drop of the Technical Requirements.

Finding Vectors of Opportunities

An alumni I once spoke to for advice on a specific job told me “remember, you need to kiss a lot of toads”. He was speaking about finding the right job but the same sentiment applies to finding the right dev. Luckily, I’ve been down this freelance dev hell hole and I kind of new what to expect. Ultimately I decided on 3 approaches to find the right guy.

  1. Freelance sites like Upwork, Fiverr and Freelance (lol).
  2. Professional Sites like LinkedIn.
  3. Word of mouth and my network.

This is the order I took too.

Freelance sites suck, it’s depressing because everyone is so hungry they don’t take the 5 minutes to understand the problem statement and really assess their abilities to do the work. This would save both them and me time.

I got some good proposals on Upwork, a lot of bad ones too but the good were promising. Fiverr is more intended for small, quick, projects so I wasn’t hopeful on that one. I also reached out to TopTal, Lemon.io or something like that and a Reddit Ethdev subreddit.

Nothing super exciting, but definitely some option if you spend enough time looking.

LinkedIn is nice because you can see someones real work history, and I find that it is relatively reliable since I personally don’t know anyone who egregiously lies on LinkedIn and I really can’t imagine that works well but who knows, maybe im naive.

I found the developer I hired through LinkedIn, he’s done projects that are exactly in line with what I need done. It was easy to connect since LinkedIn just has a lower level of nonsense aside from the occasional over-eager recruiter.

I didn’t need to use this but my next step would have been to utilize my networks, which at this point consist mainly of my friends and my undergrad and grad school groups. I don’t love the idea of being a current student’s internship but it’s a possibility that I would have explored.

Anyway over the next few days I’m going to learn how to navigate a client-freelancer relationship. Wish me luck.

Written on January 18, 2021