Working as a technology advisor for Impact Hub Los Angeles for three years was an enriching, eye-opening experience. Aside from meeting great founders with visionary ideas, I had fun learning about different business problems across various industries. One big takeaway is that software engineering, today, can help every industry create and capture new forms of value. But, depending on the sector, the margins may vary widely. For example, developing and selling a database system for the healthcare industry may result in a more significant ROI than the same product for a grocery chain. Although visible, it is still interesting to see the story unfold from the startup level.
One thing I'd like to share a bit more about is the number one question every new founder would ask. "How do I find a good developer to help me build my app?" It's a simple question that has taken me a few years to grasp fully, but my short response is, "ask the right questions during the interview."
Below is a shortlist of probing questions I often provide new CEO's so that they can know what questions to ask. These questions will not help you understand if the person right for the job. Instead, these questions will first help you collect information about a specific engineer's skill set. Once you know what tools they use to make products, you can then start going deeper.
Questions + Insight
Q: What types of digital products do you make? Websites? Web apps? Mobile apps? Platform services?
Insight: Unless the person you are interviewing owns/belongs to an agency or a studio, no single developer is going to be good at developing any product. For example, the skills required to build an Android app are different than an iOS app. Although most software engineers claim to be language agnostic, that doesn't mean they are instantly productive upon the start of a new project that uses an unfamiliar language or platform. As a founder, the question you need to ask yourself is, "Am I OK with this person learning a new language or framework on my dime or time?"
Q: What computer language(s) do you use to make products? Ex: PHP, Ruby, Javascript, Python, Java, R, Swift, Objective-C.
Insight: A Scala developer is likely to cost 3x more than a NodeJS developer. Do you need Scala? It depends, but the key is to know that the cost to write code varies.
Q: What frameworks do you use to build? Ex: Spring, Ruby on Rails, Django, Zend, Pure MVC, Angular, React, Phoenix
Insight: The most popular software languages have an accompanying framework to build products such as web apps, ERP, mobile app, SaaS, etc. Some languages even have competing frameworks. For example, you can use Angular, React, and Vue to build web, desktop, and mobile apps through JavaScript.
Although frameworks increase productivity, sometimes a poor framework choice can stun growth in non-obvious ways. For example, suppose you want to build a messaging app, and your developer believes scalability requires the technology stack to achieve high availability and fault tolerance. Upon some initial research, you learn that this language called Elixer handles concurrency very well because it leverages the Erlang Virtual Machine. Erlang is the language used by What's App that led to a $22B acquisition, so that's a plus, investors might like that story. Elixer is also attractive because it has an accompanying web framework called Phoenix, which resembles Ruby on Rails –another popular framework that helped make Github and Hulu. Suddenly, you're investing time and money into Elixer + Phoenix until you realize that you are paying a premium on hiring developers because there aren't that many coders proficient in either the language or the framework. In actuality, you might have been better off merely using AWS Lambda and JavaScript.
This pattern of scenario happens more often than you might think. Another situation has to do with building mobile applications using JavaScript frameworks.
Q: Do you use a specific library for testing the quality of your code? Which one? Ex: Rspec, MiniTest, XTest
Insight: This question helps you identify both a potential red flag and opportunity. From my experience, if someone has a process for double-checking their work, it shows some level of professionalism. Secondly, if you decide to sell your startup, your future buyer will be able to conduct a technical audit. Technical audits ultimately build trust –which can help you sell at a premium.
Q: What tool do you use for bug tracking and project management? Ex: Rally, PivotalTracker, Jira, BugHerd
Insight: Similar to writing code tests, as your team grows, you'll inevitably need a process for itemizing work and identifying bugs; think, managerial accounting. If your interviewee shows a genuine distaste for the software process, then that's an early indicator that they are either junior, have spent too much time working as an independent contributor, or struggle to become a software manager.
Q: Can you share your process for automating code builds from development to staging to production? What DevOps tool do you use? *Ex: Docker, Ansible, CloudFormation, Kubernetes, Puppet, Chef.
Insight: As if there weren't enough technical decisions already, the last thing you must consider is creating an automated process for deploying your project. The value here is that until your infrastructure automated, then some developer in your team knows how to build and launch your app. This scenario can prove problematic if they ever say "yes" to another gig or leave on bad terms.
If you'd like for me to expand upon this some more, please share a comment below.