Interviewing Software Engineers Part II, the Symform Way

In my last blog, I talked about how Microsoft and many tech companies use an interviewing process for engineers that does not always work well for either the candidate or the employer. At Symform, we consciously created a process that departed from this traditional way in order to find those gems of engineers that fit our culture and were able to get the job done.

First and foremost, Symform’s interview process attempts to optimize the experience for the candidate rather than for the company.  Our fundamental belief is that Symform needs every person on the team to do their best work.  So, if the candidate is able to showcase their best during the interview process, only then can we determine if that best effort would get accentuated at Symform or not.  It doesn’t serve the candidate or the company well to hire people who are not positioned for success.

Enabling the candidate to showcase their best work starts by creating an interview process that is as natural and reflective as possible of the environment that the candidate would eventually be working in.  That is at the heart of our interview process.

We focus on two foundational pieces in the interview process:

  • Mutual fit in terms of skills, experiences and desire to work with our technology
  • Mutual cultural fit with the team

Based on this, our interviewing process includes the following three main steps:  

1.    Show Your Best Work in a Real-world Scenario:

We’ve concluded that the technology surface area is so vast it does not do justice to make candidates implement things like circular linked list or malloc. Those problems have been solved.  As such we have defined a set of problems that accentuate skills and experience in different areas, such as networking, databases, file systems, user experience (UX), etc.  These problems come directly from our own implementation, so are also intended to give the candidate a good sense of problems they would be working with at Symform.

We give the entire problem set to each candidate and allow them to pick the problem he or she wants to work on based on their skills, experience and desires. They are asked to submit a design write-up and an implementation.  We put no restrictions on where, when or how the candidate works on the problem – just like they would if they got that problem while working full time at Symform.  In fact, we encourage the use of all the tools at their disposal.  We also don’t put any time restrictions – we turn around and ask the candidate to tell us when he or she will be able to get it done. Again, similar to what would happen if the candidate was full time.  We simply ask the candidate to show their best work.

2.    Work Review by Your Peers

If the candidate chooses to move forward and submit a solution, it is then reviewed by peers on the team. This team decides whether there is sufficient potential to bring the candidate in for an interview to determine the cultural fit. One great side-effect of this approach is the candidate is not coming in cold. The peers have already seen their work and developed some respect for the candidate’s capabilities.

3.    Face-to-Face Meeting with Your Peers

This phase is now all about team chemistry.  The face to face discussions range anywhere from in-person review of the submitted solution, where the discussion ranges from design tradeoffs made, what could have been done better, what was missed, etc. to talking about past experiences or what it is like to work at Symform. At the end of this process both sides have a very good feel for what it would be like working together as a team every day and are therefore able to make a much better decision.

Perhaps this sounds simplistic, but it is fundamentally different from most software companies.  And this approach has served us well in some unexpected ways as well.  The traditional way of recruiting can be very time consuming for the current team, because it tends of have a low yield of success. For a technology start-up, every hour of an engineer’s productive time is precious.  Judging candidates based on a resume or phone interviews is too error prone and can either end up wasting those precious hours or filtering out a great candidate because he or she was having a bad day.

The process that enables the candidate to showcase their best work on their own terms not only enables the candidate to show themselves in the best light, it also focuses the engineering team’s precious time on candidates where there is a strong potential mutual fit.

Find a Process that Fits Your Culture

Recruiting is a challenging job at an early stage start-up, particularly if you are not in Silicon Valley.  You don’t have the “brand” value and the sense of stability and risk/reward that resonates with the conservative engineering mindset.  Developing a recruiting process that attracts candidates that will succeed and fit in is one of your most important jobs as a founder.  Our process may not work for you, but I encourage you to look beyond the traditional process and find one that incorporates the real world developers live in.

Posted under Blog, Revolutionary Ideas by
Tagged , , , ,

About Praerit Garg

Praerit Garg is President and Co-founder of Symform. Before founding Symform, Praerit was a Senior Director in Microsoft’s Server and Tools division, where he built and managed the Dynamic Systems Platform and Tools team. Under his leadership, the team grew to over 70 people and drove a broad industry initiative to expand W3C’s XML standards. Praerit also directed the acquisition and integration of a software company developing Group Policy tools. While at Microsoft, he held various engineering leadership positions in the Windows group, ranging from software developer to Group Program Manager for Windows Security. Today, Praerit is a co-inventor on 14 U.S. and international patents and a co-author of IETF RFC 3645, Web Services WS-Trust, and WS-Secure Conversation specifications.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>