Lessons in Early Stage Engineering Hiring

Saurabh Sharma

CTO @ Rye

Oct 10, 2024

10 minutes

When we started building Rye, we quickly discovered our biggest bug wasn't in our code, it was in our hiring.

At Rye, establishing our founding team felt natural – we were able to tap former colleagues and friends who shared our vision and drive with relative ease. Together, we picked up speed and tackled early challenges with a collective zeal. But as we shifted towards growing beyond our circle, we encountered a different set of challenges. Our standards were as high as our ambitions – we weren't just looking for skilled engineers, we were looking for exceptional talent who would embrace our lofty goals and embody our values. 

Our mission was (and still is) big and bold – perhaps even a bit crazy – and we needed to hire people who viewed that as a motivating factor to come to Rye. At first, finding such folks proved to be more difficult than we’d anticipated. 

This is the unfiltered story of where we failed in hiring, the lessons we’ve learned, and how we're approaching hiring now – far better than we were before.

At Rye, establishing our founding team felt natural – we were able to tap former colleagues and friends who shared our vision and drive with relative ease. Together, we picked up speed and tackled early challenges with a collective zeal. But as we shifted towards growing beyond our circle, we encountered a different set of challenges. Our standards were as high as our ambitions – we weren't just looking for skilled engineers, we were looking for exceptional talent who would embrace our lofty goals and embody our values. 

Our mission was (and still is) big and bold – perhaps even a bit crazy – and we needed to hire people who viewed that as a motivating factor to come to Rye. At first, finding such folks proved to be more difficult than we’d anticipated. 

This is the unfiltered story of where we failed in hiring, the lessons we’ve learned, and how we're approaching hiring now – far better than we were before.

At Rye, establishing our founding team felt natural – we were able to tap former colleagues and friends who shared our vision and drive with relative ease. Together, we picked up speed and tackled early challenges with a collective zeal. But as we shifted towards growing beyond our circle, we encountered a different set of challenges. Our standards were as high as our ambitions – we weren't just looking for skilled engineers, we were looking for exceptional talent who would embrace our lofty goals and embody our values. 

Our mission was (and still is) big and bold – perhaps even a bit crazy – and we needed to hire people who viewed that as a motivating factor to come to Rye. At first, finding such folks proved to be more difficult than we’d anticipated. 

This is the unfiltered story of where we failed in hiring, the lessons we’ve learned, and how we're approaching hiring now – far better than we were before.

Big Names Don’t Necessarily = Big Impact

Eager to bring in top-tier talent, we set our sights on engineers from the well-known tech giants. We believed that someone with a resumé boasting experience at a FAANG would help accelerate our team. Naturally, we were thrilled when a few seasoned engineers from some of these companies accepted our offers early on.

However, it didn't take long to realize something was off. Accustomed to the resources and long timelines of a large corporation, these new hires tended to struggle in the fast-paced and resource-constrained environment of our nascent startup. Projects that required quick turnarounds and creative, scrappy problem-solving were overwhelming for them, and it’s easy to understand how the autonomy we value in our engineers felt, to these new hires, like a lack of guidance. The mutual fit wasn’t there – we didn’t continue on together.

As an engineer, the skills you refine at large companies don't always translate to the skills an early-stage startup demands. At Rye, a self-starter mentality and a deep sense of ownership is essential. Quickly recognizing when there isn’t a mutual fit is also crucial. While many engineers from large, prestigious companies do have the agency we’re looking for at Rye, it’s important to both focus on, and tease out those qualities during the interview process – put the resume aside.

Convey the Mission for Prospective Hires

We encountered a candidate who seemed perfect – brilliant, experienced, insightful. Our early conversations with them were inspiring; we tackled complex technical challenges together, and we were energized by their ideas. Certain we'd found a key addition to our team, we extended an offer.

They declined.

Puzzled, we asked for honest feedback. They replied that while the role was interesting, they didn't understand what we sought to achieve as a company. They couldn't see how their individual work would contribute to a larger mission. Immediately, we realized we'd failed to communicate our vision during the hiring process. We'd focused too much on assessing them as a candidate, and not enough on conveying who we were, why our work mattered, and that our mission aligned with their desires for their next firm. We assumed our passion was obvious, but without stating it intentionally, even the best candidates couldn't connect.

We’ve learned that conveying our mission early and often to our engineering candidates is essential. Exceptional people seek purpose; they want to be part of something meaningful that aligns with their aspirations. We quickly made it a priority to share our story with every candidate. We opened up about our firm’s mission, the broader challenges we were aiming to surmount, and the impact we hoped to have in the e-commerce industry. 

Conversations shifted. Candidates became more engaged, assessing not just whether they were right for us, but whether we were right for them. Our hiring process evolved into more of a dialogue about shared goals, passions and values. 

We encountered a candidate who seemed perfect – brilliant, experienced, insightful. Our early conversations with them were inspiring; we tackled complex technical challenges together, and we were energized by their ideas. Certain we'd found a key addition to our team, we extended an offer.

They declined.

Puzzled, we asked for honest feedback. They replied that while the role was interesting, they didn't understand what we sought to achieve as a company. They couldn't see how their individual work would contribute to a larger mission. Immediately, we realized we'd failed to communicate our vision during the hiring process. We'd focused too much on assessing them as a candidate, and not enough on conveying who we were, why our work mattered, and that our mission aligned with their desires for their next firm. We assumed our passion was obvious, but without stating it intentionally, even the best candidates couldn't connect.

We’ve learned that conveying our mission early and often to our engineering candidates is essential. Exceptional people seek purpose; they want to be part of something meaningful that aligns with their aspirations. We quickly made it a priority to share our story with every candidate. We opened up about our firm’s mission, the broader challenges we were aiming to surmount, and the impact we hoped to have in the e-commerce industry. 

Conversations shifted. Candidates became more engaged, assessing not just whether they were right for us, but whether we were right for them. Our hiring process evolved into more of a dialogue about shared goals, passions and values. 

We encountered a candidate who seemed perfect – brilliant, experienced, insightful. Our early conversations with them were inspiring; we tackled complex technical challenges together, and we were energized by their ideas. Certain we'd found a key addition to our team, we extended an offer.

They declined.

Puzzled, we asked for honest feedback. They replied that while the role was interesting, they didn't understand what we sought to achieve as a company. They couldn't see how their individual work would contribute to a larger mission. Immediately, we realized we'd failed to communicate our vision during the hiring process. We'd focused too much on assessing them as a candidate, and not enough on conveying who we were, why our work mattered, and that our mission aligned with their desires for their next firm. We assumed our passion was obvious, but without stating it intentionally, even the best candidates couldn't connect.

We’ve learned that conveying our mission early and often to our engineering candidates is essential. Exceptional people seek purpose; they want to be part of something meaningful that aligns with their aspirations. We quickly made it a priority to share our story with every candidate. We opened up about our firm’s mission, the broader challenges we were aiming to surmount, and the impact we hoped to have in the e-commerce industry. 

Conversations shifted. Candidates became more engaged, assessing not just whether they were right for us, but whether we were right for them. Our hiring process evolved into more of a dialogue about shared goals, passions and values. 

The Cost of Rushing

As our product gained traction, our workload quickly became overwhelming. Every day presented more than we could manage. We needed more engineers – fast.

Under pressure, we accelerated our hiring process dramatically. We shortened interviews, skipped key steps (who really needs a reference call, right…?), and focused on filling seats. One new hire stood out: highly skilled and productive from day one. It seemed that compromising our interview process at certain steps hadn’t harmed us. 

But unsurprisingly, there were signs we’d ignored. The new hire questioned our vision and made comments about profitability and market approach that didn't align with our direction. We dismissed it, assuming mutual alignment would develop over time. But after six months, he left to join a profitable, bootstrapped startup. 

His departure hit us hard. In an early-stage startup, when someone leaves, it's not just a logistical setback; it feels somewhat personal. We questioned ourselves: Had we failed as leaders? Would the team feel deflated? It forced us to reflect not only on our hiring process, but on our culture, and the alignment between the two. We realized that choosing whether or not to bring someone on board isn't just about the person’s skillset – it's about ensuring they share our vision and our values. We'd hired quickly, but not wisely. In our haste, we overlooked whether we were hiring for individuals who would be true culture fits, and culture carriers. 

As our product gained traction, our workload quickly became overwhelming. Every day presented more than we could manage. We needed more engineers – fast.

Under pressure, we accelerated our hiring process dramatically. We shortened interviews, skipped key steps (who really needs a reference call, right…?), and focused on filling seats. One new hire stood out: highly skilled and productive from day one. It seemed that compromising our interview process at certain steps hadn’t harmed us. 

But unsurprisingly, there were signs we’d ignored. The new hire questioned our vision and made comments about profitability and market approach that didn't align with our direction. We dismissed it, assuming mutual alignment would develop over time. But after six months, he left to join a profitable, bootstrapped startup. 

His departure hit us hard. In an early-stage startup, when someone leaves, it's not just a logistical setback; it feels somewhat personal. We questioned ourselves: Had we failed as leaders? Would the team feel deflated? It forced us to reflect not only on our hiring process, but on our culture, and the alignment between the two. We realized that choosing whether or not to bring someone on board isn't just about the person’s skillset – it's about ensuring they share our vision and our values. We'd hired quickly, but not wisely. In our haste, we overlooked whether we were hiring for individuals who would be true culture fits, and culture carriers. 

As our product gained traction, our workload quickly became overwhelming. Every day presented more than we could manage. We needed more engineers – fast.

Under pressure, we accelerated our hiring process dramatically. We shortened interviews, skipped key steps (who really needs a reference call, right…?), and focused on filling seats. One new hire stood out: highly skilled and productive from day one. It seemed that compromising our interview process at certain steps hadn’t harmed us. 

But unsurprisingly, there were signs we’d ignored. The new hire questioned our vision and made comments about profitability and market approach that didn't align with our direction. We dismissed it, assuming mutual alignment would develop over time. But after six months, he left to join a profitable, bootstrapped startup. 

His departure hit us hard. In an early-stage startup, when someone leaves, it's not just a logistical setback; it feels somewhat personal. We questioned ourselves: Had we failed as leaders? Would the team feel deflated? It forced us to reflect not only on our hiring process, but on our culture, and the alignment between the two. We realized that choosing whether or not to bring someone on board isn't just about the person’s skillset – it's about ensuring they share our vision and our values. We'd hired quickly, but not wisely. In our haste, we overlooked whether we were hiring for individuals who would be true culture fits, and culture carriers. 

Our Hiring Process Now

Sourcing

At one point, we were sourcing over 200 candidates per week. Now, we might source just 30 candidates a week, but it takes us over a month and a half to make one exceptional hire. We prioritize a quality pipeline over a quantity pipeline at every stage. We target junior engineers from schools like Waterloo and Olin, as they produce pragmatic problem-solvers who thrive in ambiguity. We also like to hire engineers who’ve taken on big challenges at other startups, and have actually reached out to engineers who work on technologies we use, asking them to help us solve real problems. If they're interested, we invite them for work trials (more on that later) or proceed to hire them. 

We're also focused on building a balanced team. We don't need five Go fanatics; we need platform experts, product engineers, and relentless executors.

At one point, we were sourcing over 200 candidates per week. Now, we might source just 30 candidates a week, but it takes us over a month and a half to make one exceptional hire. We prioritize a quality pipeline over a quantity pipeline at every stage. We target junior engineers from schools like Waterloo and Olin, as they produce pragmatic problem-solvers who thrive in ambiguity. We also like to hire engineers who’ve taken on big challenges at other startups, and have actually reached out to engineers who work on technologies we use, asking them to help us solve real problems. If they're interested, we invite them for work trials (more on that later) or proceed to hire them. 

We're also focused on building a balanced team. We don't need five Go fanatics; we need platform experts, product engineers, and relentless executors.

At one point, we were sourcing over 200 candidates per week. Now, we might source just 30 candidates a week, but it takes us over a month and a half to make one exceptional hire. We prioritize a quality pipeline over a quantity pipeline at every stage. We target junior engineers from schools like Waterloo and Olin, as they produce pragmatic problem-solvers who thrive in ambiguity. We also like to hire engineers who’ve taken on big challenges at other startups, and have actually reached out to engineers who work on technologies we use, asking them to help us solve real problems. If they're interested, we invite them for work trials (more on that later) or proceed to hire them. 

We're also focused on building a balanced team. We don't need five Go fanatics; we need platform experts, product engineers, and relentless executors.

Recruiting Screen

The recruiting screen is crucial – it’s here where we dig into a candidate's motivation and see how they jive with the early-stage mindset. We also send a document explaining Rye upfront, as this helps minimize basic questions and allows us to focus on substance.

On the call, we ask about the hardest thing this engineer has worked on. It doesn't have to be engineering-related, but it’s important to determine –

  • What made that user migration hard? Scale? How much scale? 

  • You spread the migration over x days – how did you arrive at that number? 

  • Where did things go wrong? 

  • What was your individual contribution? 

  • Were there user ID format issues? Not UUIDs? Storing ID prefixes in db vs app layer?  Achieved zero downtime? Why was that the goal? 

  • Swap to a new model? Dual writing? Data parity?

The most enjoyable non-engineering answers I’ve heard have been great ones about, say, building a quiz tool for your classmates, scaling a solution for all of your colleagues, or simply solving a really difficult problem for yourself with enthusiasm and grit. We’ll continue to dig during interviews until we understand the candidate's thought process, and surface answers won’t cut it. Active listening and asking follow up questions help to distill the canned responses from behavioral interview guides that candidates often regurgitate.

If a candidate’s toughest challenge was multiple job roles ago (once, a candidate's was from ten years prior), we’ll ask why. While we’re not looking for perfection, we want to see growth and increasing complexity in someone’s work.

After the interview, we’ll ask ourselves: did that thing they worked on feel truly hard, or was it just part of the role? This is subjective, but we've found it to be a good gut-check of ownership.

This is also the stage where we root out those who don’t seem genuinely interested in working at a startup. By simply asking, "Why do you want to work with a five-person engineering team?" you’ll notice those who haven't given it much thought. Those who excel typically talk about how they really enjoyed specific aspects of previous roles, and these answers tend to have more authenticity.

The recruiting screen is crucial – it’s here where we dig into a candidate's motivation and see how they jive with the early-stage mindset. We also send a document explaining Rye upfront, as this helps minimize basic questions and allows us to focus on substance.

On the call, we ask about the hardest thing this engineer has worked on. It doesn't have to be engineering-related, but it’s important to determine –

  • What made that user migration hard? Scale? How much scale? 

  • You spread the migration over x days – how did you arrive at that number? 

  • Where did things go wrong? 

  • What was your individual contribution? 

  • Were there user ID format issues? Not UUIDs? Storing ID prefixes in db vs app layer?  Achieved zero downtime? Why was that the goal? 

  • Swap to a new model? Dual writing? Data parity?

The most enjoyable non-engineering answers I’ve heard have been great ones about, say, building a quiz tool for your classmates, scaling a solution for all of your colleagues, or simply solving a really difficult problem for yourself with enthusiasm and grit. We’ll continue to dig during interviews until we understand the candidate's thought process, and surface answers won’t cut it. Active listening and asking follow up questions help to distill the canned responses from behavioral interview guides that candidates often regurgitate.

If a candidate’s toughest challenge was multiple job roles ago (once, a candidate's was from ten years prior), we’ll ask why. While we’re not looking for perfection, we want to see growth and increasing complexity in someone’s work.

After the interview, we’ll ask ourselves: did that thing they worked on feel truly hard, or was it just part of the role? This is subjective, but we've found it to be a good gut-check of ownership.

This is also the stage where we root out those who don’t seem genuinely interested in working at a startup. By simply asking, "Why do you want to work with a five-person engineering team?" you’ll notice those who haven't given it much thought. Those who excel typically talk about how they really enjoyed specific aspects of previous roles, and these answers tend to have more authenticity.

The recruiting screen is crucial – it’s here where we dig into a candidate's motivation and see how they jive with the early-stage mindset. We also send a document explaining Rye upfront, as this helps minimize basic questions and allows us to focus on substance.

On the call, we ask about the hardest thing this engineer has worked on. It doesn't have to be engineering-related, but it’s important to determine –

  • What made that user migration hard? Scale? How much scale? 

  • You spread the migration over x days – how did you arrive at that number? 

  • Where did things go wrong? 

  • What was your individual contribution? 

  • Were there user ID format issues? Not UUIDs? Storing ID prefixes in db vs app layer?  Achieved zero downtime? Why was that the goal? 

  • Swap to a new model? Dual writing? Data parity?

The most enjoyable non-engineering answers I’ve heard have been great ones about, say, building a quiz tool for your classmates, scaling a solution for all of your colleagues, or simply solving a really difficult problem for yourself with enthusiasm and grit. We’ll continue to dig during interviews until we understand the candidate's thought process, and surface answers won’t cut it. Active listening and asking follow up questions help to distill the canned responses from behavioral interview guides that candidates often regurgitate.

If a candidate’s toughest challenge was multiple job roles ago (once, a candidate's was from ten years prior), we’ll ask why. While we’re not looking for perfection, we want to see growth and increasing complexity in someone’s work.

After the interview, we’ll ask ourselves: did that thing they worked on feel truly hard, or was it just part of the role? This is subjective, but we've found it to be a good gut-check of ownership.

This is also the stage where we root out those who don’t seem genuinely interested in working at a startup. By simply asking, "Why do you want to work with a five-person engineering team?" you’ll notice those who haven't given it much thought. Those who excel typically talk about how they really enjoyed specific aspects of previous roles, and these answers tend to have more authenticity.

Technical Interviews

We don't bother with crazy LeetCode questions. Our coding interviews focus on actual coding. It's not an exceedingly hard question, but it does require substantial programming and proficiency in their language of choice. We grade on programming skills, problem-solving abilities, and communication. Communication is 50% of the job at most firms, and even more so at an early-stage startup like ours. Problems start off structured, and become progressively more ambiguous.

Our architecture discussions are focused on building at a small startup and scaling it. We're interested in trade-offs, and how to rationalize them. Candidates should use technologies they know, and understand them deeply. We're not looking for hypothetical system design questions that LinkedIn influencers seem to be selling. You're building a startup and scaling it – keep adding zeros to QPS (queries per second) to scale.

We don't bother with crazy LeetCode questions. Our coding interviews focus on actual coding. It's not an exceedingly hard question, but it does require substantial programming and proficiency in their language of choice. We grade on programming skills, problem-solving abilities, and communication. Communication is 50% of the job at most firms, and even more so at an early-stage startup like ours. Problems start off structured, and become progressively more ambiguous.

Our architecture discussions are focused on building at a small startup and scaling it. We're interested in trade-offs, and how to rationalize them. Candidates should use technologies they know, and understand them deeply. We're not looking for hypothetical system design questions that LinkedIn influencers seem to be selling. You're building a startup and scaling it – keep adding zeros to QPS (queries per second) to scale.

We don't bother with crazy LeetCode questions. Our coding interviews focus on actual coding. It's not an exceedingly hard question, but it does require substantial programming and proficiency in their language of choice. We grade on programming skills, problem-solving abilities, and communication. Communication is 50% of the job at most firms, and even more so at an early-stage startup like ours. Problems start off structured, and become progressively more ambiguous.

Our architecture discussions are focused on building at a small startup and scaling it. We're interested in trade-offs, and how to rationalize them. Candidates should use technologies they know, and understand them deeply. We're not looking for hypothetical system design questions that LinkedIn influencers seem to be selling. You're building a startup and scaling it – keep adding zeros to QPS (queries per second) to scale.

Founder's Call

We explore a candidate’s professional background and try to delve deeply into their reasoning and motivation for each career choice, as well as their specific experience.

We explore a candidate’s professional background and try to delve deeply into their reasoning and motivation for each career choice, as well as their specific experience.

We explore a candidate’s professional background and try to delve deeply into their reasoning and motivation for each career choice, as well as their specific experience.

Technical Self-Assessment:

  1. We ask candidates to rate themselves 1-10 on our tech stack.

  2. We then probe the reasoning behind each rating. 

I've seen candidates rate themselves at a 9 that simply stated, "I use the tech," and candidates rate themselves at a 7 who mentioned debugging the PostgreSQL query planner code (shout out to PostgreSQL's well-written codebase that allows this to even exist).

  1. We ask candidates to rate themselves 1-10 on our tech stack.

  2. We then probe the reasoning behind each rating. 

I've seen candidates rate themselves at a 9 that simply stated, "I use the tech," and candidates rate themselves at a 7 who mentioned debugging the PostgreSQL query planner code (shout out to PostgreSQL's well-written codebase that allows this to even exist).

  1. We ask candidates to rate themselves 1-10 on our tech stack.

  2. We then probe the reasoning behind each rating. 

I've seen candidates rate themselves at a 9 that simply stated, "I use the tech," and candidates rate themselves at a 7 who mentioned debugging the PostgreSQL query planner code (shout out to PostgreSQL's well-written codebase that allows this to even exist).

Reference Calls

These come after we're leaning toward hiring. We dig deep with colleagues:

  • Where did they rank among engineers you've worked with? Top 5? Top 3? What’s the delta to getting to 1?

  • Did you ever give them feedback? What was it? How did they respond to it? 

We're upfront: candid feedback helps us set them up for success. It does not affect the hire/no-hire decision – by now, we should already know if we want to work with this person. We acknowledge that people hesitate to critique colleagues, so we address that head-on: their feedback helps us set the candidate up for success here.

These come after we're leaning toward hiring. We dig deep with colleagues:

  • Where did they rank among engineers you've worked with? Top 5? Top 3? What’s the delta to getting to 1?

  • Did you ever give them feedback? What was it? How did they respond to it? 

We're upfront: candid feedback helps us set them up for success. It does not affect the hire/no-hire decision – by now, we should already know if we want to work with this person. We acknowledge that people hesitate to critique colleagues, so we address that head-on: their feedback helps us set the candidate up for success here.

These come after we're leaning toward hiring. We dig deep with colleagues:

  • Where did they rank among engineers you've worked with? Top 5? Top 3? What’s the delta to getting to 1?

  • Did you ever give them feedback? What was it? How did they respond to it? 

We're upfront: candid feedback helps us set them up for success. It does not affect the hire/no-hire decision – by now, we should already know if we want to work with this person. We acknowledge that people hesitate to critique colleagues, so we address that head-on: their feedback helps us set the candidate up for success here.

Depth Is Everything

At every stage, we're pushing for depth. We need to viscerally understand how candidates think, what drives them, and where they've truly made an impact historically. This process takes time. It's an investment. But building a world-class team demands unwavering standards. 

We're looking for evidence of meaningful ownership. We’re always attempting to assess a candidate’s ability to fill specific gaps on our team, their desire to thrive in ambiguity, and whether they can challenge us. Most 10x-like candidates ask tough questions and grill us equally during the hiring process, and we’re up for the challenge.

There are no shortcuts in the pursuit of excellence. Hiring takes patience and precision, but it's worth getting right.

At every stage, we're pushing for depth. We need to viscerally understand how candidates think, what drives them, and where they've truly made an impact historically. This process takes time. It's an investment. But building a world-class team demands unwavering standards. 

We're looking for evidence of meaningful ownership. We’re always attempting to assess a candidate’s ability to fill specific gaps on our team, their desire to thrive in ambiguity, and whether they can challenge us. Most 10x-like candidates ask tough questions and grill us equally during the hiring process, and we’re up for the challenge.

There are no shortcuts in the pursuit of excellence. Hiring takes patience and precision, but it's worth getting right.

At every stage, we're pushing for depth. We need to viscerally understand how candidates think, what drives them, and where they've truly made an impact historically. This process takes time. It's an investment. But building a world-class team demands unwavering standards. 

We're looking for evidence of meaningful ownership. We’re always attempting to assess a candidate’s ability to fill specific gaps on our team, their desire to thrive in ambiguity, and whether they can challenge us. Most 10x-like candidates ask tough questions and grill us equally during the hiring process, and we’re up for the challenge.

There are no shortcuts in the pursuit of excellence. Hiring takes patience and precision, but it's worth getting right.

Accelerate your commerce operations

Accelerate your commerce operations

Accelerate your commerce operations