On Tech Recruiting
Or how to maximize your odds of working on interesting problems with great people
As a student at BYU, I was lucky enough to take part in the Sandbox program, an entrepreneurship initiative built directly into the computer science curriculum and grounded in Herbert Spencer’s idea that “the great aim of education is not knowledge but action.” Sandbox takes that idea seriously. Instead of treating entrepreneurship as a theoretical endeavor, it asks students to spend an intense year building a venture-scale startup, in collaboration with a team composed of some of the most ambitious students in the local area. And because the program also gives you class credits for your chosen major, the traditionally “risky” part of building a startup is essentially derisked for each participating student for a full year.
My time spent in the first cohort of the Sandbox program was one of the most energizing environments I have ever been part of. It helped me discover so many aspects of work that are now meaningful to me. At the same time, it could occasionally make the future feel more straightforward than it really was. I would have delineated my irrationally exuberant line of thinking at the time as follows: come up with a startup idea, build an MVP, find customers, make it work, and keep going after graduation. More on my critique of that line of thinking in a later essay, but for now, I felt that when my startup ventures ultimately failed to work out on the timeline I needed to avoid getting a “real” job, I found myself facing a question that many founders eventually confront:
What should I do if the startup I’m working on doesn’t work out?
That was the question I asked myself near the end of my time in Sandbox. I had really enjoyed my time in Sandbox and genuinely been excited to do the work each day. Given that I was very prestige-oriented (at the time), I wondered how I might maximize my favorite aspects of working on my own company ideas and integrate them into a “real” job. But looking back, this question was ultimately the wrong one. The more I thought about it, the more narrow it began to appear to me. The better question has become clear to me in the time since:
How can I maximize my odds of spending my career working on interesting problems with great people?
This^^^ is the question I wish I had learned to ask earlier. It has the advantage of being both company- and life-stage-agnostic. Whether you are a student deciding between internships, a founder deciding whether to join another startup, or an experienced operator thinking about your next move, it remains useful. This essay is about a few principles I have found helpful in discovering your answer to that question.
I think about getting a new job in three distinct phases:
You need to identify a company, or category of companies, where you would genuinely want to work.
You network your way into the right conversations and opportunities within that company or sector.
You develop the skills and preparation necessary to earn the offer.
But before getting into any of those phases, there are a few table stakes worth mentioning that won’t be covered in detail in this essay.
Table stakes
1. Get the basics right
There are a handful of things in tech recruiting that are not especially glamorous, but matter a great deal. At a minimum, you should have a job-ready GitHub profile or a developed work portfolio that is most relevant for the kind of work you want to do (i.e., a design portfolio for designers). You should have a professional LinkedIn profile. You should have a clean, well-structured resume (this is a great template if you are lost here). And you should develop a professional manner: be punctual, be considerate, be communicative, and avoid weirdness (I can’t delineate all the ways to be weird obviously, but you can generally work on this by having lots of conversations with people from diverse backgrounds). None of these things will get you a great job on their own. But failing at any one of them can take you out of the running before the real recruiting process even begins. Pluck all of the low-hanging fruit!
2. All career advice is situational
Most people give advice that is downstream of their own path. They tell you what worked for them, what they value, and what the market looked like when they came out. Sometimes that advice is excellent. Sometimes it is badly overgeneralized for your specific situation.
Know yourself well enough to ask: Does this apply to me?
Your priorities may be different. Your strengths may be different. The market you are entering may be different. Any number of things might be different. Two students graduating from the same school and the same major in the same year may choose very different paths (even if offered the same opportunities) because they want different things, feel uniquely good at different things, or are willing to tolerate different levels of risk. An underrated life skill is the ability to hear someone wise say something true and still ask whether it is true for you, given your own motivations.
3. Great people are hard to find
If I could persuade everyone reading this essay of one idea, it would be this: every good company is trying to solve the same problem, year after year -- how do we find exceptional people to work here?
That problem is always hard. Whatever the latest Citrini Research hypothetical scenario says, this will remain true for a long time, for both experienced candidates navigating career moves and new graduates looking for full-time work. It does not matter whether the company is a startup, a public tech company, a hedge fund, a century-old Fortune 500 firm, or a research lab. Finding smart, driven, trustworthy, high-agency people is one of the most persistent and difficult problems in business.
The bad news is that it is almost always possible to tell a pessimistic story about the job market. It was a bad market when my dad started his first job on Wall Street at Goldman Sachs on Black Monday in 1987. It was a bad market when my sister graduated from business school and was trying to work in the entertainment industry during COVID. It may be a bad market for your line of work as you read this.
But the good news is that, in every market, great people are still hard for companies to find. That means the core strategy does not really change. Do not obsess over the macro. Focus on becoming the kind of person great teams are relieved to find, no matter what the broader market is doing. I lowkey often think of a line I read once in Robert Pirsig’s Zen and the Art of Motorcycle Maintenance:
“You want to know how to paint a perfect painting? It’s easy. Make yourself perfect and then just paint naturally.”
Obviously, that overstates things in this case, but the framing is still useful. It captures a score-takes-care-of-itself philosophy: focus on becoming excellent and trust that the results will follow naturally.
Once those basics are in place, the first real challenge is learning how to identify the right opportunities.
Finding
One of the most important ideas I learned from working with Kyle Harrison is a broad and practical definition of investing: “the art and science of allocating finite resources to create an optimal outcome.” What I like the most about this definition is that it extends well beyond capital. Under this line of thinking, everyone implicitly becomes an investor because we are all always allocating scarce resources: money, attention, time, effort, and love. Seen this way, a career is one of the most consequential investments a person can make. Choosing where to work is not just a financial decision. It is a decision about where to invest your energy, your ambition, and your reputation.
That is why finding matters so much. Before you network your way into the right conversations or try to win an offer, you first need to identify the kinds of companies, teams, and problems that are actually worth investing your career in. For most students, I suggest beginning that process with four simple steps: know your timeline, discover your motivations, map the market, and optimize for learning rate.
1. Know your timeline
Learn how recruiting works for the kinds of roles you want. Recruiting is not uniform across roles, companies, or industries. Some jobs recruit many months in advance; others hire only when an immediate need appears. Some companies run highly structured pipelines with fixed calendars and clear internship-to-return-offer paths. Others recruit opportunistically and move as soon as they find a strong candidate, regardless of current headcount targets. Some roles are seasonal and predictable; others are irregular and driven by headcount, funding, or a sudden business need.
A lot of students I talk to miss good opportunities, not because they are unqualified, but because they show up too late, under the mistaken impression that recruiting happens serendipitously rather than through a formal process. They assume applications open when they are ready, rather than realizing that recruiting often rewards the people who prepared months earlier. This is one reason to learn the market mechanics of your target role as early as possible. Understand when companies tend to post roles, when interview pipelines typically open, how long you need to prepare, and how long the interview process is likely to take.
2. Discover your motivations
Decide as early as possible what you actually value in a job. Is it money? Mission? Prestige? Learning? Location? Stability? Work-life balance? Ambition? Most people want a mix of all of these things, but not in the same proportions. That is exactly the point.
If you do not know what you are optimizing for, it becomes very easy to inherit someone else’s priorities. You will find yourself chasing whatever companies your peers admire, whatever brands sound impressive to your parents, or whatever role appears to be the most prestigious on LinkedIn. The job search will start to feel a bit like Alice in Wonderland: if you do not really know where you want to go, it becomes irrelevant which path you should take. A job that is perfect for one person may be deeply wrong for another. The friend who thrives in a giant, structured company may hate the pace and raucous nature of an early-stage startup. The student who wants intensity, velocity, and maximum ownership may likewise feel stifled in a slower environment, but for opposite reasons. The person who says they care most about mission may, in practice, care much more about compensation or location. None of these things is a moral issue. It is just important to be honest with yourself.
One of the most useful questions you can ask yourself is not “What is the best job?” but “Best for what?” Best for learning? Best for earning? Best for building technical depth? Best for living in a certain city? Best for meeting unusually ambitious people? Best for keeping optionality open? Most career confusion stems from vague goals. Clarity on what you value will not make every decision easy, but it will make your job search much more coherent.
3. Map the market
Once you understand your timeline and your priorities, it helps to build a simple map of the market. Broadly speaking, there are three major categories of tech companies for students to consider: established, mid-sized, and startups.
Established companies are usually larger, more structured, and easier to understand from the outside. They often have recognizable brands, formal onboarding, clearer career ladders, and more predictable recruiting processes. For many students, these can be excellent places to build fundamentals, receive strong training, and gain prestige value early in a career. They also come with an underrated advantage: they are much easier to explain to families and friends. There is a meaningful difference between saying you work at Google and hearing your finance friends ask, “I’m sorry, did you just say you work at (coughs) Ligma?”
Mid-sized companies are often the most underrated category. These are businesses that likely already have strong product-market fit, real customers, and meaningful momentum, but are still small enough for individuals to have an outsized impact. They can offer a particularly nice combination: enough structure to learn from, enough traction to reduce pure chaos on the upcoming roadmap, and enough room for talented people to grow quickly.
Startups, meanwhile, can be great learning environments but risky in more ways than one. The largest career risk of working at a startup is normally not the failure of the company, but rather that many early-stage companies are still figuring out their products, organizations, and cultures simultaneously. Some will be excellent. Some will be disorganized. Some will call confusion “scrappiness” and expect you to map title inflation to career growth. The upside is obvious: more ownership, more ambiguity, more exposure to the full business, and sometimes faster growth if the company is truly strong.
None of these categories is universally best; most people find a preference early in their career. The point of this exercise is to understand the type of environment you are choosing and the trade-offs that come with it. There are always opportunity costs. Larger companies may offer more structure and brand signal. Mid-sized companies may offer the best balance of learning and leverage. Startups may offer the most upside and the most volatility. Different people thrive in different places.
4. Optimize for learning rate
Early in your career, the most important thing to optimize for is usually learning rate. Look for places where you will be challenged, where the standards are high, and where the people around you will push you to grow. Seek out places that stretch you just beyond your comfort zone, because that is often where the fastest development happens. To borrow a slightly meme-worthy but useful José Mourinho line, you want to be in the kind of place that turns good players into great players, and great players into champions. Early on, one of the best things you can do is put yourself in a setting that compounds your growth.
A simple way to think about this, especially early in a career, is:
Where:
Q = company quality
L = learning rate
T = title
P = pay
S = nominal scope
This is why I would be cautious about overly flattering early titles. Being a “Founding Engineer,” “Founding PM,” or “Founding Designer” can sound exciting, and sometimes it really is the right opportunity. But the title can sometimes function as a poor substitute for joining a genuinely strong team with excellent people, real momentum, and a high learning rate. Unless you truly love the mission or have unusually strong conviction in the company, I would err towards under-titled in a strong environment than over-titled in a weak one.
As Andy Rachleff once argued:
“Your choice of company is more important than your job title, your pay or your responsibilities.”
Networking
If the finding phase is about identifying opportunities worth pursuing, the networking phase is about getting into the right conversations. This is where many students get uncomfortable, because “networking” can sound artificial, transactional, or even downright manipulative. It helps to redefine the term. Good networking is not begging strangers for favors. It is not mass-messaging people for referrals. It is not treating other human beings like vending machines that dispense jobs. Good networking is simply the process of making professional friends.
People are generally much more willing to help thoughtful, curious, respectful students than they are to help someone who clearly wants something immediately. The goal is not to corner people into helping you. The goal is to become someone others genuinely want to help and work with: sincere, prepared, interesting, and easy to talk to.
1. Lead with curiosity, not neediness
This is the most important practical rule. Lead with curiosity, not neediness. If you are reaching out to someone you do not know, do not start by asking for a job or a referral. Start by asking about their experience. A message like “I’d love to hear what your experience at X has been like” is much stronger than “Can you refer me to X?”
A brief, specific, and genuinely curious note can be surprisingly effective even as a cold reach-out. Ask about their role. Ask what surprised them after joining. Ask what kinds of people tend to do well there. Ask what advice they would give someone early in their career.
If you hit it off and the conversation goes well, it is reasonable later to say that you applied and ask whether they would be comfortable mentioning your name internally. That is a very different move from opening with “Can you refer me?”
2. Create signal, not noise
Your job as a candidate is to create signal. Hiring managers are all trying to answer some version of the same question: Is this person thoughtful, credible, and worth taking seriously? They are looking for reasons to lean in, and they are aggressively filtering out anything generic, lazy, or interchangeable.
Noise is vague, self-centered, and easily copy-pasted. It sounds like it could have been sent to fifty companies in an hour. It is full of broad claims, fluffy enthusiasm, and information that does little to distinguish you from anyone else. A message like, “I’m passionate about technology and would love to help your team succeed,” tells almost nothing.
Signal is specific. It shows that you have done your homework, built something relevant, formed a real opinion, or taken a genuine interest in a particular problem. It gives the other person evidence that your interest is not random. A strong message helps answer a few implicit questions: Why this company? Why this team? Why this kind of work? Why you?
Here is an example in practice:
Noise
“I love building user-friendly applications and have experience with JavaScript, SQL, Python, Go, and Ruby. I’m passionate about technology and would love the opportunity to contribute to your team’s success.”
Signal
“I spent most of my time in JavaScript for the last few years, but building a recent side project in Go made me want to use it much more seriously in my next role. That is part of why your infrastructure team caught my attention. Your team’s work seems to sit at the intersection of backend systems, developer tooling, and scale, which is exactly where I want to get stronger. I also saw from your engineering blog that your team uses Kubernetes, which immediately stood out to me because it is something I have wanted an excuse to learn in a real production environment.”
3. Use proximity and warm paths first
In addition to reaching out to people you don’t know, make sure to reach out to people you do know. Talk to friends, alumni, professors, classmates’ older siblings, meetup organizers, and anyone in your local tech ecosystem. Get to know the companies in your area and what they actually do. Learn which companies hire students, which ones are growing, and which ones have people who enjoy mentoring younger talent.
If you have a friend or family member at a company who knows you well enough to vouch for you, ask for the referral directly.
Keep strong relationships with your classmates and peers as well. Your classmates today are tomorrow’s founders, engineers, PMs, and hiring managers. Some of the most important people in your long-term network are at the same stage as you right now.
4. Follow Up
Good networking is cumulative. It is built through repeated evidence that you are thoughtful, credible, and worth helping.
Follow up well. Thank people for their time. Mention what you found useful. If you acted on their advice, tell them. If something changes later, send an update. That is how you build familiarity and trust.
Do not try to force relationships. Just be someone worth staying in touch with.
Winning
Once you have identified good opportunities and gotten into the right conversations, the final step is winning them. This is the part of the process where many students feel the most pressure, but it is also the part where success is most in your personal control.
Getting an interview == partly in your control
Performing well during an interview == almost entirely within your control
That is why, if I had ten hours to dedicate to finding a job, I would probably spend eight of them building the skills and preparation necessary to perform well, and only two on networking and applications. Too many students invert the ratio. They spend most of their time chasing opportunities and too little time becoming excellent for when those opportunities inevitably appear.
1. Focus on the parts you can control
This is the most important principle in this section. You cannot control whether a company will reply to your application. You cannot control whether a role gets frozen, whether another candidate already has an internal advocate, or whether a recruiter happens to notice your resume that week. You can control how prepared you are, how clearly you think, how well you communicate, how much technical fluency you have built, and whether your body of work gives people a reason to take you seriously.
2. Build proof
Part of building skill is building visible proof that you care about the craft. For engineers, especially, your interest in building should show up somewhere outside of class or work. Your GitHub does not need to look like a cathedral. It does not need to contain a dozen polished startup-worthy project ideas. But it should not look empty either. It should suggest that you like making things, that you are curious enough to explore new tools, and that you can work on ideas that are not explicitly scoped out.
This matters for two reasons. First, side projects are one of the best ways to learn. They force you to make decisions, work through ambiguity, debug your own mistakes, and build taste. Second, they create a signal. A project says much more than a generic statement about being “passionate about software engineering.” It makes your interest legible.
More broadly, early-career hiring is often less about whether you already know everything and more about whether you seem like the kind of person who learns quickly, builds seriously, and improves without constantly being pushed. With as much effort as you can muster, consider seriously the wise words of Charlie Munger on this topic:
“I constantly see people rise in life who are not the smartest, sometimes not even the most diligent, but they are learning machines. They go to bed every night a little wiser than they were when they got up and boy does that help, particularly when you have a long run ahead of you.”
3. Understand what interviews are actually measuring
Many engineering students walk into interviews assuming they will be judged almost entirely on raw coding ability. In reality, most tech companies evaluate candidates much more holistically. Early-career interviews are usually not about finding the person with the fastest syntax or the most memorized memory-optimization tricks. They are about finding people who are smart, structured, coachable, aligned to the mission, and able to learn quickly. At Figma, for example, engineers are evaluated in parallel across dimensions such as problem-solving, verification, communication, and coding ability.
Then given a grade as well as through the lens of the company’s values.
That should be encouraging. It means you do not need to be the single best coder in the room to interview well. That’s likely only part of your score.
4. Solve technical problems in a structured way
One of the most common mistakes students make in technical interviews is jumping straight into code. That usually leads to unnecessary confusion. A better approach is to solve questions deliberately and make your thinking visible through communication along the way.
For most technical interview problems, I think a strong default process looks something like this (my personal process):
Clarify the input and output. Restate the question in your own words and make sure you understand what is being asked. Don’t ever start solving a problem you can’t explain simply in two or three sentences.
Work through a simple example by hand. Before optimizing, make sure you can solve a small instance of the problem out loud.
Identify useful data structures and patterns. Ask what tools naturally fit the problem.
Give a high-level walkthrough of your approach. Explain the plan before you start coding.
Only then begin implementation. Once the logic is clear, the code becomes much easier to write.
Run the sample input through your solution. Check that the code behaves as you expect.
Create one or two additional test cases. Show that you can verify edge cases rather than just hope the solution works.
Discuss time and space complexity. Then briefly mention where you might optimize further if given more time.
This kind of structure helps in two ways. First, it makes you more likely to solve the problem correctly. Second, it creates a signal for the interviewer. It shows that you are not just typing until something compiles. You are reasoning in an organized, professional way.
5. Practice for fluency, not just exposure
It is good to be conversational in a language, but it is even better to become fluent. Many engineering students treat Leetcode prep like a scavenger hunt: solve as many problems as possible, check them off, move on. That can help a bit, but you can learn quicker through repetition. More important than solving a huge number of questions once is being able to solve a meaningful number of questions repeatedly and with increasing fluency. You want arrays, hash maps, binary search, sliding window, DFS, BFS, heaps, dynamic programming, and backtracking to feel familiar enough that your mind starts organizing the space of possible approaches for each problem you face almost automatically.
That is why I like Bruce Lee’s line:
“I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times.”
The point of the winning phase is not to hope you get lucky in an interview. It is to become so prepared that luck matters less. Sharpen your fundamentals, practice solving problems in a structured way day after day. Learn how to communicate your thinking clearly.
One final point is worth keeping in mind before I close. Early-career recruiting is, in part, a numbers game. If you send 100 applications, you might get 10 phone screens, 5 interviews, and 1 offer. Those numbers will vary a lot depending on your background, the market, the role, and how targeted your search is. I say this to illustrate two important things: you usually need to submit more applications than you think, and you usually need to do more interviews than you think. Every serious application is a shot on goal, and every interview is practice as well as an opportunity. If you become more credible, more skilled, more articulate, and more prepared each time, the odds of success improve across every interview you do.
Conclusion
None of these steps guarantees a perfect outcome on your preferred timeline. But taking them seriously will dramatically improve your odds of building the kind of career that will be compelling to you: one spent working on interesting problems with great people.
If you learn to choose carefully, build real relationships, and strive for excellence, teams will be relieved to find you, no matter what the market looks like when your turn comes.





