I don't know of many career hacks that get you ahead over consistently putting in the work. However, there is one approach I wish I had done earlier, and now recommend to anyone who receives an offer from any tech company. It's also the best career hack I know:
Reverse interview your future team after you've negotiated the offer, and before you accept it.
"But Gergely" - I hear you say - "I already talked with people on the interview panel, and asked them a few questions." True enough that you did so. However, that was at a time when you wanted to impress them, so you could get an offer.
Did you really ask about all the things that you needed to know, going as deep as you wanted to? Or did you stick with "safe" questions? Most people don't ask everything they really want to.
The first time I reverse interviewed was when I got my offer from Uber. I did my best on the interviews to impress. However, during the interviews, I was unsure if I really wanted to pack my life up in London to move to Amsterdam, to what seemed like a small satellite office of Uber, far from HQ.
Before I would raise these objections, I wanted to see what Uber had to offer. I got a good offer from them. At the same time, by now I now had enough experience to know that everything - even good offers - are negotiable. So I started with this, and it's what I'd advise anyone else to do. See this video I made with advice on negotiating offers.
Negotiate your offer to the final offer, before reverse interviewing. Get the money out of the way. This is especially true if you have multiple offers on the table. Negotiation has a bit of back-and-forth, and in this phase you want to still sell yourself, and make it clear how much value you'll bring if only they can move a bit more up on the offer.
Once you get the final offer, most people accept right away. This is what I did in the past - save for at Uber. I had a really good package - something worth packing up and moving for - but I still had questions in my head. What future does a site with 10-20 engineers have? What is the work really like: is it mostly maintenance or will be build new things? How much of what I've been sold on the interview was making things look much better than they are?
To answer these questions, I decided to reverse interview my future manager, and the most senior engineer on the team. When I say "reverse interview", I mean that I wrote down 10-15 questions that I wanted to know the answer for, before accepting. Questions on my list included:
- Why did you move to Amsterdam? What made you move away from HQ? (Both my future manager and the most senior engineer moved)
- Why do you think Uber moved something so key like Payments to a small site? I was very skeptical of any sensible company moving strategic work away from the HQ, so I circled around this question throughout my "reverse interviews".
- What are the last three projects you've shipped? Then I asked more about one that sounded the most interesting, to get a sense of the work - this was especially helpful when talking with the engineer.
- What is the project you're most proud of working on at Uber? Why?
- What is the biggest struggle you have/had at Uber? Why?
- What are you most excited about for the next six months?
- What did your typical workweek look like the past month?
- Tell me about the team. How would you describe the team dynamics? Again, I got very good - and blunt - feedback from the senior engineer.
- Assuming I joined, what advice would you give to be successful?
- What are things that you have seen new joiners struggle with?
- Has anyone left the team? If so, what was the reason?
Other questions you can ask include ones on The Pragmatic Engineer Test. These are areas that can predict a good engineering culture, but most job descriptions do not mention them.
Engineering director Alex Reece shares two more questions he's successfully used to reverse interview companies:
1. "Can you show a non-trivial code review?"
- Look at the comments and description. Is there enough context so someone could review it? Is the back-and-forth discussion polite and helpful, perfunctory? Who is doing the review (manager, tech lead, engineer?) and how long does it take?
- Look at the code. Are there tests being added? Are there comments? Are there one character variable names or functions with no more than 7 arguments?
- Look at the build pipeline. Are tests being run automatically?
- Ask about how it was deployed. Was the process manual or automatic? Was there a staging environment, canarying?
- Use this question as the entry point to ask about the "life of a commit" and to see the cultural dynamics on the team. If they aren't willing to show an actual review - this happened about 20% of the time for Alex - then ask the remaining follow-up questions.
2. "What separates a good day from a bad day for you?"
- 90% of the time the response will be along the lines of "a good day is when I can get something done, a bad day is when I don't".
- Perfect! Now ask: "how often do you have bad days?" "what tends to cause them?".
- This question tends to releval many interesting facts. You might learn about things like on-call rotations that are on fire, stakeholders/requirements that are always changing, and others.
Make a list of your questions, and the things you care about. Every now and then someone will ask me reverse interview questions to ask, and I tend to ask back: "What is it that you care about? What information are you missing?"
Ask to talk to your future manager, and at least one other future team member one-on-one for 30-minute conversations each, to go through the final questions you have. Questions you'd like to talk through before making a big decision. I made it clear that none of these were about the offer: they were about things I wanted to clarify on work, culture and career.
This reverse interview helped me make that decision. I learned that although it was a risky move to move a part of Payments to Amsterdam, they did so as the first few Uber engineers also moved here, carrying lots of influence. After my manager told me this, I asked to talk with one of these engineers - Jordan, Uber employee #5 and the first mobile engineer. He was a straight shooter with both the good, the bad, and the ugly, which I very much appreciated.
Asking about your future manager from a future peer is an underrated move that gives you far more information at this phase, than you can typically gather throughout the interview process. It's what I did, and questions I asked included these:
- What do they like and dislike about their manager? Who would be my future manager.
- Who did they last promote on the team, and why?
- Who left the team, and why?
- How supportive are they, as a manager?
Reverse interviewing can give you a headstart at the new company, from day one. Reverse interviewing is something few people do, and those who do show that they are serious, and think deeper about career choices. After reverse interviewing, my manager was in touch throughout my start date. On day one, I already knew him and Jordan a lot better than most new joiners would.
During my reverse interview, I talked about my career aspirations with my manager. I was a tech lead at the time at Skyscanner, and wanted to know if there were any leadership opportunities at Uber. My manager was open that they're hiring for senior engineers, and they already have a tech lead. However, he told me that assuming the team grows, there are bound to be more opportunities.
Six months later, an opportunity opened up and it's how I transitioned to become an engineering manager. Though this could have likely happened even without reverse interviewing, the fact that my manager knew I had such interest from before when I joined was not a bad thing.
As a hiring manager, I noticed barely anyone ever reverse interviewed after getting an offer. And this was a missed opportunity for many. Candidates would sometimes run out of time asking questions, and many ended up asking the important questions from the recruiter presenting the offer, instead of a future team member.
The very few times someone asked for what was a reverse interview, I always made myself available quickly to talk with them, and to give as honest answers I could. They're also people I still remember - there were so few of them.
Next time you get an offer, consider reverse interviewing after the offer if you have even the slightest doubts or any questions left. You have nothing to lose, but lots of information to gain that can help make that next big decision.
Featured Pragmatic Engineer Jobs
- Senior Android Engineer at DuckDuckGo. $160K + equity. Remote (Global)
- Senior iOS Engineer at DuckDuckGo. $160K + equity. Remote (Global)
- Senior Software Engineer at Antenna. $140-180K + equity. Remote (US)
- Cloud Engineer at Redox. $120-200K. Remote (US)
- Engineering Manager (ML) at Truebill. $180K+. Washington DC or Remote (US)
- iOS Engineer at Wealthfront. Palo Alto (CA) or Remote (US)
- Senior Software Engineer at Progression. £75-90K + equity. Remote (EU). I'm an investor.
- Senior Product Engineer (React Native) at Attio. £80-130K + equity. London.
- Backend Engineer at Aidence. €70-100K + equity. Remote (Global)
- Engineering Manager, QA at Clipboard Health. Remote (Global)
- Founding Engineer at General Collaboration. $145-225K + equity. New York City, San Francisco, Remote (US)
- Senior Software Engineer at Pave. $185-247K + equity. New York, San Francisco