There are some very talented engineers out there with the experience, intelligence, and empathy needed to work well in any company. They’re in high demand, and as a result, some of them are expensive and hard to hire.
This article isn’t about those unicorns, though. It’s about finding specific engineers who are capable of pulling a startup through a particular development stage.
Of course, startups aren’t homogeneous, but we can definitely make a few generalities. This article is meant to be a cheat sheet that will help you find the perfect engineer for where you are today — not the best engineer in the entire world.
Understand What You’re Looking For
It takes time to wade through résumés and applications, so it’s critical that you’re going through this process intelligently and efficiently. Start by making a list of general attributes you’d like to see any engineering candidate possess. Then, with your cheat sheet in hand, you can begin hunting for specific people who are able to fulfill your current needs.
For my company, those general attributes include intellectual curiosity, a genuine interest in working with and learning from others, and a desire for and history of self-improvement (seems cheesy, I know, but it works). But for you, they could be something completely different. The bottom line is that it’s crucial to have these in mind before bringing in candidates.
Consider these three main phases of product development and how each of them requires a unique skill set (I know — drastic oversimplification coming up):
- Ideation and Experimentation: During this phase, the company is really still trying to validate basic ideas about its direction. The role of engineering is often filled by just a few engineers who are building lightweight prototypes to test simple treatises repeatedly.
Naturally, brainstorming and prototyping are important pieces of the job description at this time. Candidates have to be self-driven generalists, ready to try new approaches, and willing to solve problems on the fly. Flexibility is a key factor here, but because many startups have such small teams at this stage, it’s important to also be able to work with a little bit of structure.
Some real-world experience is critical here because a fresh engineer will need to spend too much time learning how to do basic tasks. However, it doesn’t have to be enterprise-level experience because your company probably doesn’t yet have the most robust systems, and they’ll likely be rebuilt down the road. But even at this stage, spec docs and clear deliverables need to be laid out through agile processes to build the basis of a successful product development organization. - Minimum Viable Product: Once a company develops a minimum viable product, there’s slightly more dependability and consistency. However, most startups at this stage are still small teams that are constantly changing requirements, solutions, user types, and everything else under the sun.
Generalists are able to lead the product’s API through early adopters to the second generation of customers. It’s probable that an engineer who’s fresh out of school won’t understand the challenges of integration and service on a significant scale. However, an experienced engineer with real-world experience building a website or platform probably will, and he or she will have the ability to prevent serious missteps in design and architecture.
Once product-market fit has been validated, more specialized engineers can then be added to the team to ramp up the user base. At that point, look for front-end, back-end, and dev-ops experts; more specialization than that is probably overkill until you’ve reached a more mature stage. - Product Development: The type of product being developed will greatly impact the nature of its implementation along with what type of engineer is best suited for it. Team and code-base growth will also drive the diversification of your team’s makeup.
For light interactivity like a static webpage, a junior front-end engineer with a knack for web design might be fine. However, more complex projects like enterprise software require an engineer who can focus on performance optimization, security (especially for e-commerce), the user interface, the user experience, and even data modeling and system architecture for multi-platform applications.
Great core engineers during the product development phase are able to conceptualize a complicated set of interactions and abstract it into an extensible data model. Organization, documentation, and consistency are all vital skills to look for here. However, there will be many levels of work at this point, and much of it can be handled by junior engineers who are able to gain experience by working in smaller or peripheral areas of the application.
This is also where it becomes critical to begin diversifying and specializing within your teams. Whether it’s giving your team the ability to develop deeper specialties or hiring externally for deep expertise, nobody can be expected to be an expert in everything (and beware of anybody who claims to be). Expect to transition your organization to enable this shift to occur.
Although it’s possible to hire an engineer who’s an amazing contributor throughout the entire life cycle of your company, it’s not a necessity — nor is it a realistic expectation (though you might get lucky!). Waiting for that perfect hire could prevent you from hiring a great match for what you need right then, delaying production and ultimately dooming your startup.
Instead, narrow your focus to the specific traits you need at each particular development phase, and retrain or recruit more engineers as you move through the production process.
Image credit: CC by Andre Glechikoff