What I learned from hiring hundreds of engineers can help you land your next role
The last six months have been dominated by what is arguably the worst pandemic in a century, a force of nature that has been incredibly turbulent for people across the globe. Whether you’re a well established engineer deep into your career or a newbie just finishing school, the job market and the hiring landscape have shifted dramatically.
I have worked in the Internet industry for over 20 years, held many different roles, and personally hired hundreds of engineers. I’m sharing some of what I’ve learned over the decades and what frames my decisions about which candidates I think will be most successful in an open role. Hopefully, you can draw on some of that experience to set yourself up for success as you look to transition to a new position or try to ace your first interview during times of economic uncertainty.
When I am making hiring decisions, my first criteria is a small number of technical requirements: specific technologies, languages, and expertise. But for the broader pool of candidates who satisfy those basics, the majority of my hiring decision is based on the demonstrated attitude and aptitude of the applicant.
Another important factor is professional references. Personal recommendations and feedback on what it’s like working with you, helps make me more confident in my hiring decision.
These three (four, really) filters combine into a formula that I have developed over the years to evaluate candidates. If you are looking to further a career in technology, I suggest you approach your interviews with these areas in mind. So, how can you set yourself up for success across these different domains? Let’s break this formula down:
- Specific technical knowledge
- Attitude
- Aptitude
- Connections and networking
Below, I’ll offer my tips for how you can achieve and demonstrate these four key objectives.
Specific technical knowledge
Look at the job postings that are most interesting to you and see what technical knowledge is a must have. I usually recommend avoiding job postings that have a laundry list of “must have” skills or experience because they likely have unrealistic expectations of candidates. Look for clear, succinct ones that really speak to you. Next, create a spreadsheet of the jobs and the core technologies required. What are the common technologies you need to have experience in among the jobs that most interest you? Once you identify them, you can focus on how to acquire that experience.
Now, I know what you’re thinking: How can I get this experience if I don’t have a job to begin with, or I don’t have a job in the field I’m really interested in? I’ve got a few ideas below.
Internships. I joined AOL as the first technical intern after convincing them of the need for an internship program, so I know firsthand the value of an internship. I got the chance to work alongside experienced engineers, getting a feel for what the job was and what it took to run a large network. I have started or supported internship programs at nearly every company I have been at in a leadership role. Internships are invaluable, and in technology, you usually (and should) get paid. They are low risk for a company and high reward for the interns. Today, many companies are offering them as remote work, meaning they are accessible to a greater number of people who may not live in a high tech center.
Volunteer for a nonprofit organization. Volunteering your technical skills to support a non-profit is a lesser known opportunity to create demonstrable examples of your work. At the same time, you can create a real impact and support a cause you care about. I have volunteered and been on the board of several non-profit organizations where I saw technical volunteers make outsized impacts. Non-profits usually have limited funds and are often looking for free or low cost technology services, so a willing volunteer will usually win out over an experienced hire. They can be a great way to further your experience, build your network, and give back to a great cause.
Start with your existing job or one you are qualified for. Let’s say you currently have a job at a company where you feel invested, but you realize your passion is in another area. Making a domain or role change at your existing company is much easier because they already know and trust you. If you want to make a role change, find someone at the company that does what you eventually want to do. Ask them to mentor you or give you small assignments. Make your aspirations known to both your manager and the manager of the team you would like to join. Ask if they can work with you toward this transition. I have seen and created many opportunities like this throughout my career.
A recent great example involves our own Kristina Lustig, who had a thriving career in UX Research, most recently as our Director of UX Research & Design. While working in this role, she invested much of her own time building her software engineering skills and decided she wanted to transition into a developer role. She broached the subject in our one on one meeting, fully expecting that, to make the transition, she would need to leave the company. I quickly turned the conversation around, sharing what a valued team member she was and how much I wanted to keep her in the organization. Kristina worked closely with Jon Chan, our Public Platform Engineering Manager, to build a six month development plan which she just successfully completed. Once your company knows you, your work ethic, and your aspirations, it is much easier to break into a new discipline.
DIY/Open Source. There are so many opportunities now for you to try your hand at a new technology without needing to ask permission. Services like CodePen or Glitch let you spin up a server, write code, deploy it, and test it out all in a day. You can share your learnings and your work on forums like Dev and partake in major projects on platforms like GitHub. Be prepared to talk about what you did, how you did it and what you learned. If you want to try learning a technology in a real code base, there are hundreds of open source projects out there looking for volunteers. It’s easier to get involved than you think.
One last piece of advice here: don’t overpromise and underdeliver. Time and again, I have seen applicants who are eager to appear qualified for a position and put technical skills on their resume that they actually have very little real experience with in real life. During a phone screen, I commonly dig into the details of the must-have technical skills for the job—it’s a red flag when an applicant stumbles badly to answer these types of questions. When you list skills on your resume that, through the course of an interview prove to be something you know nothing about, it makes me question the rest of your resume.

Attitude or passion
When I say attitude I mean your character, demeanor, and perspective.
It isn’t easy to tell you how to demonstrate a great attitude. Most people know that you should head into a job interview with confidence and enthusiasm. To get below this surface projection to their deeper character, I ask why the candidate loves a particular technology or problem they solved. This gives them the opportunity to show their passion and their motivation. The answer I’m looking for isn’t that it pays well or my parents, friend, professor told me to. I can’t teach you how to love what you do and to want to come into work everyday. Being able to articulate why you chose this field and why you are interested in the company you are applying for goes a long way.
You can demonstrate your attitude with a story about a difficult situation which you navigated with grace and style. Your attitude and motivation help me gauge your culture fit in my team, organization, and the entire company. How can you share these stories during an interview? Don’t! Tell them ahead of time. Have a blog—it’s easy these days. Post something on Medium about interesting problems you are working on or have solved. Comment on other people’s posts and get involved. Make sure you connect them to your LinkedIn profile so I can find them.
Find ways to share your experiences and what you have learned with others in the industry in whichever way you feel comfortable: Participate in an online or real world community. Help start or organize a meetup in an area related to your work. Speak at meetups or other events.
A final important question I often ask in interviews is why the candidate has decided to explore new opportunities. Even if their current situation is not ideal, how they handle this answer is an important indicator of their temperament. I have had fantastic interviews derailed when I asked about why they were exploring other opportunities. Before you start interviewing, have a positive, future looking vision of why you are looking and what you are looking for. For example, letting me know that you have been in your current position for ten years and are looking for new challenges and to learn about a new industry is enough. Speaking ill of your former boss, colleagues, work environment, or technology can be enough to sour me on an entire interview. Your negative attitude can end your chance at the position just as fast as lack of relevant experience or skills.
So remember attitude is the combination of passion, motivation, and how you handle pressure, which helps me determine if you are a culture fit. Research to make sure you are a culture fit and then demonstrate it throughout your interview.
Aptitude: readiness or quickness in learning
The only thing consistent in all of life, but especially in the technology industry, is change. So while it is important to know the specific technologies the job requires, it’s probably more important than you know how to adapt and learn new ones. Everything we are working on today in my teams can be taught to someone with adjacent technical knowledge and a thirst to learn. To demonstrate your aptitude, be prepared to give an example of a situation that you had to learn on the job and be able to speak about how you learn best.
When it comes to learning new skills and sharpening the habits that encourage learning, there have never been as many available free and low cost options available to you as there are today.
- Online courses – So many options for free or little cost to expose you to great content and contributors. I would recommend sites like CodeNewbie and Free Code Camp if you’re just getting started.
- In person bootcamps, online courses, or one-off tutorials and workshops—If you have the time and money, these might be a great way to learn fast
- Hackathons – Bring your skills to the competition and learn from others around you. For hackathon resources, check out DevPost or Hackathon.com.
- Trying it out on your personal time – With cloud offerings of IaaS and PaaS, you can start up instances, deploy code, and test it out for little or no money and quickly
- Join an online group or community to find a mentor or someone to partner with you through the process.
The most important thing to understand is what works best for you. Keep trying until you find the right combination so when you need to learn something on the fly at work, you know how to approach it for optimal results. When an opportunity comes along that you don’t have experience with, admit it, but commit to figuring it out. Managers are more impressed by people who admit what they don’t know and find a solution than by workers who try to fake a proficiency they don’t have and end up needing to apologize for late or sloppy work down the road.
Let me give you a great example here. When I worked at WebMD, my team included IT and desktop support groups. When we decided to support Apple laptops in 2010, the team of 12 support engineers had various amounts of exposure to Macs who all learned in different ways. To support them, I made sure everyone got access to a Mac laptop for three months and had the option to choose how they wanted to learn: buy books, attend an in person workshop, take an online course, or whatever else they felt was the best fit for them. They got time during the workday to acquire these new skills. Sometimes that meant attending an online or in-person training, sometimes it was just taking a break from core tasks to try hands-on learning. At the end of the three months, they each took the certification exam for the MacOS Support Essentials. The prize for the highest test score was a top-of-the-line iPad of their very own.
To my surprise, the winner was a Windows person through and through, someone who had never owned an iPhone and learned from a book and online resources. The key to his success was that he knew how he learned best. He was motivated by a desire to learn and a little friendly competition. Not only did I get him a nice iPad, but I have served as a reference for him through his career. If he needed more than a reference, I would likely hire him again because I know that his aptitude would allow him to master the necessary skills and excel at his work. Knowing how you learn best not only helps you succeed in new challenges but also demonstrates a level of self awareness that is very attractive in candidates.
How to build your personal network
Personal connections are how most people get new positions beyond their first one. 70-80% of people find their next job via their network! Your professional network will become one of your greatest assets over time. That’s certainly true for me, at this point in my career.
So how can you cultivate this critical asset? Start small with the people with whom you currently work, go to school, or socialize with online or at events. Go to open events in your area (when it’s safe to do so, of course), join professional or tech interest groups online, go to conferences, and connect to people online. If you’re contributing to open source projects, see if you can connect with others working on the project and cultivate relationships in those areas. LinkedIn has achieved success because people change jobs, change cities, and even change industries but still want to maintain their previous professional connections.
Take the story of Adam Lear, one of our developers. He began as a Stack Exchange contributor while living in Canada and working at his first job as a desktop software developer. Over time he became a moderator on one of our software focused Stack Exchanges, then after a while was also elected as a moderator for Stack Overflow. From there he got a job with the company as a community manager. Two years later, he transitioned into a full-stack web developer role at Stack Overflow.
Regardless of the path you’re on, the connections you build over time will pay off, often in unexpected ways. A person will know someone in an adjacent industry or a certain city, even if they don’t live or work in that area themselves. A simple introduction, versus another name in a pile of resumes, can make all the difference. Set a goal for yourself of adding a new connection every week or more.
You can’t just connect to someone after one meeting and never interact with them again. You have to invest in your personal connections. Schedule regular times in your calendar to connect with the VIPs in your network or people that you think have knowledge or experience to impart. When you are traveling again (whenever that may be), make sure to try and grab coffee or a meal to catch up. Pay it forward by passing along job openings, interesting information, and cool events folks in your network might like. They will pay you back with new job opportunities, a solid set of supporters, and a great source of advice and knowledge along the way.
Having a growing and well-maintained network will provide many benefits in your job search. You can reach out to someone you know or a connection of a connection to ask about the company they work at that you are interested in. They can submit your resume directly to the hiring manager. You might need references when applying to a new position, so ask yourself, do you have people in your network you would feel comfortable asking? If not, this needs to be an area of focus for you. When you decide to look for a new position, who in your network is in the know about who is hiring and where you might be a good fit? Once you take a new position, who can you ask when you encounter a new problem or technology? Who can provide advice on how to deal with new coworkers or a manager?
As a hiring manager, I like to see an applicant that has a solid network behind them. If someone at my company or network has recommended them or is connected to them (even through an open source community or professional group), it’s a serious plus in their favor. Connections through previous employers, school, or professional groups can provide much more valuable information than a series of interviews. I also recognize that networks take time to build, and not everyone has the same level of access to them. So invest in relationships however you can, a passionate network who will support you and recommend you highly is even more important that a large network.
So remember, grow and maintain your personal connections. You will want them to be ready when you need them.
Conclusion
I hope that in sharing how I evaluate candidates to hire, you can better navigate and further your professional journey. This framework can be used for pursuing a role at a new company, a new role at your current company, or progression within your current role. First, make sure you have the required skills for the role and leverage the multitude of available paths to develop and demonstrate them. Look for opportunities to demonstrate your positive attitude, passion, and motivation for your chosen field. Through experimentation, determine how you learn best and have examples of how you have evolved your skills. Lastly, remember to grow, invest, and leverage your personal network to connect, explore and expand your career.
Tags: developer hiring, hiring process, interviews
27 Comments
“How can you share these stories during an interview? Don’t! Tell them ahead of time. Have a blog, it’s easy these days.”
And how do you find the blog when their name is John Smith?
Worse, what happens when you find the other John Smith’s blog? You know, the one about online poker and partying and that nasty DUI Mr. Smith is dealing with?
What happens when you don’t realize how many Dmitri Vasilis exist in the world?
Doing your social media search isn’t a good idea, and leaves you, as somebody hiring, vulnerable to suit, if anybody ever finds out. More, just as a human being, you wouldn’t really want potential employer’s snooping your Facebook page anyways, would you? Leave people a bit of privacy, or else, maybe they won’t much want to work for you.
“He began as a Stack Exchange contributor… Two years later, he transitioned into a full-stack web developer role at Stack.”
That’s not networking, that’s unpaid interning. Which, honestly, isn’t as awful as it could be, because while unpaid interning is exploitative, it’s not half as bad as getting hired because of actual networking. Isn’t networking just post-family nepotism? I mean, yeah, networking is the way it works, but as somebody responsible for informing hiring decisions, I wouldn’t think you’d want to dwell on that. I think we’d all prefer to pretend that networking doesn’t matter, while understanding that it does. (If you buy somebody a drink, they’re going to give you a better informal reference than if you had to slap them when they made a pass at you, regardless of whether that’s right or wrong. And the person potentially hiring you might just ask that person for one.)
Rest of it, right on, I know this sounds hostile but the rest of it’s great. It’s my birthday, somebody got me some Jameson.
“I think we’d all prefer to pretend that networking doesn’t matter, while understanding that it does.”
To be fair, the article is about getting hired, not hiring. It’s not a recommendation to HR recruiters to judge their applicants by their networks; it’s a recommendation to the applicants that their networks do matter.
There is a marked imbalance between the number of people looking for employment positions and the number of employment positions available.
When we play musical chairs, does everyone get to sit down when the music stops? Why not?
The last 6 months even with layoff by most of the companies, the internship and volunteer roles have gone up. From a pay scale point of view, it would mean nothing, however there has been a significant value addition to the existing skill set of the employee. Online courses have bridged the gaps in a person’s skill which was not give priority in the pre pandemic era.
Yes Covid was unfortunate, However it definitely has acted as an eye opener for many working professionals who had ignored the learning part for a long time.
We were known as profit making “trained”professionals in the pre pandemic era, however today we would be called “skilled” professionals in the post covid era
Boy am I glad to have a job that is almost safe until I retire and I don’t need to waste my life following all these advices just like being trained to solve CAPTCHAs.
Teresa didn’t mention in which part of the world and in which area she gained that experience: it’s a difference if you live in a hire & fire culture like the USA or in Germany, where dismissals protection and collective labor agreement exist. In the former all this networking and improving yourself seems to be necessary, while in the latter you can perfect your skills in one specific topic live off that for a long time and your employer offers courses.
Growing a network, being adaptive, quickness of learning, internships, blogs… this is what “advertize yourself” has become nowadays. That’s why the internet is spammed to death with boring “content” – people just do that for performing a show to get a job. And it also means there are no experts anymore – only shapeshifters that forget everything as quick as they “learnt” it. Not speaking of not ever having understood it. And it discriminates everyone who understood how to manage his privacy properly – it’s either pants down or your must have no substance because nothing can be found about you.
Thank you for this perspective! I have this unpopular opinion for years now, and it just sickens me that I have to leverage my “personal brand” just to be able to get a job. If I can’t talk about myself, or if no one knows about me, I am not interesting at all.
I know that we can choose what to share to the world. But well, what can we share that will make us interesting other than our lives?
I value my privacy and it’s just so sad that hiring people would see credibility because of online presence.
As an electrical engineer, doing a lot of embedded coding, I found that that my love of the field was critical. Teresa’s point that tech fields have a high rate of change is key. When you love what you do you also love the changes because they are advances that leverage what you can do. You just can’t beat that. As another C programmer once told me: “I can’t believe I get paid to do this.” The downside is that, if it is, or becomes, just a job, the high rate of change will quickly burn you out.
Very inspiring! A warming sip of the right insight from the trenches to help the tired dev’s soul jump back in the cold streams of the business of code )).. Thank you, Teresa!
Great piece and tips for anyone regardless of where someone is at in their career, Teresa. Thank you for sharing.
I will never understand the obsession the tech industry has with “DIY/Open Source” and “side projects”. Yeah, after putting in a full day of programming, what I want more than anything else in life to do is go home and put in MORE time programming!
Yes, I do in fact enjoy programming. But it’s all about balance.
I agree with you for the most part. I don’t think it should be a requirement, but it can set you apart.
I think having some open source code that you can point to is something that can help a hiring manager hire you. They can see code you have written that is not property of your current/previous employer. They can see that you have written code which can be incorporated into a collaborative project. Rather than try to start some monolithic side project, it can also be good to contribute to open source projects as part of your daily work: if you use a library on GitHub, fix bugs and add features that you might need. That way you don’t have to spend a bunch of extra time on it.
If your goal is to improve your skills with the hope of one day leveraging those skills to get a better job, then forget about “life balance”, you have a goal to reach and it isn’t going to happen with only 40 hours a week of effort. If you are content with your current career and position and would rather “work to live” than “live to work”, then you are spot on – there is more to life than your work and balance is key to being happy. But you can rarely have both. Either you are going to dedicate a large amount of waking hours to building skills you can include on your resume, or you can just enjoy the job you have and try to enjoy your off hours too.
This really shows why the current way of hiring is flawed. Candidates who network and speak well are favored over those who do their job well instead of blogging.
Also I hate the question of tell me about your biggest sucess and failuire.
Some of us learn from our mistakes, the others get promoted.
“Tell me about your most recent success and most recent failure” is one of my favorite “back at ya” questions in an interview. It tells me more about the company culture than anything else I could think to ask. Yesterday I heard a story about how the hiring manager had taken over the team and gotten it from bad to “acceptable” as his success but his failure was that it wasn’t at “great” yet. At a FAANG, the answer related to getting buy in from a product manager to actually use the engineering team instead of contracting it out.
Sorry, lost me @ “specific technologies, languages”… this is called HR-driven development. Hiring people for specific languages/frameworks is a really bad way to hire. Hire a bunch of people that identify as Django/Spring/React Developers and suddenly every problem can only be addressed within the confines of those specific technologies. Languages are just tools that come and go out of fashion and good developers should be able to pick up whatever is most applicable to the problem at hand.
I second that, I started reading, got to that part and just skimmed the rest. Hiring developers in 2020 because they know a specific language is only really worth it for something that has a ridiculously low tolerance for error and comparable lack of skills in the field. Think NASA computing, or 60’s-era COBOL software running on the bank’s mainframe. Anything mainstream in the tech of the past 20 years that is not ridiculously mission critical can be picked up by any reasonable engineer quick enough. Saying ‘oh well you have React but no Angular so we can’t hire you’ is just dumb.
“For example, letting me know that you have been in your current position for ten years and are looking for new challenges and to learn about a new industry is enough. Speaking ill of your former boss, colleagues, work environment, or technology can be enough to sour me on an entire interview.”
Speaking ill of boss or colleagues I get it, they would probably have the same opinion in the opposite direction. But of work environment and technology? A recruiter wanting a candidate to lie about that is exactly the work environment that I don’t want to be a part of.
For all those less confident developers out there, if you are leaving a company because you joined when Java 8 or Python 2 were a thing and the company doesn’t want to upgrade just because, or if blame culture for every single bug that reaches acceptance is generalized, please, please tell it to the recruiter, unless you really need a job for yesterday. If they cringe or they do not hire you because of that, it’s because you’d be as miserable there in a few months or years as you were in the previous one.
Was looking to see if everyone would swallow that “speaking ill of technology” part from the article. I get that a hirer would be warry if the hiree yells “SCREW MY PREVIOUS COMPANY’S DEV STACK! IT SUCKS BALLZ!!” to their face. I mean, tone is important. If the hiree calmly says “Screw my previous company’s tech stack. It sucks balls.”, it’s not aggresive. It has profanity, but so what. No person is being ridiculed. It may even be funny because it is a strong, informal, non-personal exclamation in a formal setting. It may be someone’s way to start a debate and show what they know. It’s the hirer’s job to get to the core of such opinions/exclamations, and not just leave it hanging there, not getting over some superficial personality analysis. If you do use critisism supported by arguments about some technology, that may actually provide insights into how well versed you are in that tech (that is, if the hirer understands that tech also well enough to understand the critisism).
A good candidate won’t talk about the tech stack exactly, but about the decision-making process that leads to the tech stack. Some examples:
“I feel the way to make the best decisions is to have informed, expert implementation teams decide, and in my current role tech decisions are made by a separate architecture team, some of whom do not have a software creation background.”
“The architecture was decided ten years ago, and the dead keep it that way. The way is shut. I’m keen to work somewhere with a modern stack.”
Great article. I understood that being a tech geek is not enough; I should work on my social network too.
I don’t network because is not my nature, I don’t blog because I don’t have a special way with words, and I don’t speak well because the country I live in is not my birth place and because of, well me, as I am.
But was lucky to have met a person that trusted that I can be more and will get to know my craft very very well, and here I am being that person which this article says you should probably not hire.
The recruiting industry (yup it is an industry) is broken and this is why. It shouldn’t be an industry in the first place.
And on top of all that thanks heavens I am white and male, god knows what I could have ended up if I was different.
I got the words what I learned while interviewing the N no. of tech experts. Thank You.
While these are all tips I recommend to people I help with their resume, you still have to have people do it in a way that fits their personality style.
So many of the skills needed to be hired favor extroverted people and many quality candidates are introverted. Just as the example you gave where the winner choose to learn his own way, introverted people need to come up with their own ways of demonstrating their skills, within the framework.
I love everything you’ve covered here. I think one thing that gets overlooked slightly on both sides is nerves. As the one being interviewed, you will be nervous. I recommend having your resume handy and maybe even some bullet points addressing some of the things mentioned in this blog post! As the interviewer, remember the person you are interviewing is nervous. 😉
As a business owner, do you use any tools to help streamline talent search? I’ve heard platforms like Upwork, Toptal, or https://engre.co/ being suggested online a lot. Are they worth giving a try? Otherwise, awesome post! Shared it on Twitter:)
Lots of lessons here. Massive thanks for this insightful piece. The importance of networking can not be over emphasized. I discovered about this late in my career and have pledged to help the upcoming, great developers in my community know its value.
But I want to grasp, a developer who is very passionate and evolve with changing versions of his stack, is interviewing, shouldn’t he politely let the interviewer on why he wants to leave his current role? Lets say, ‘where I work currently don’t encourage use of frameworks, Team lead feels it makes the developer lazy’