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
- Founding Engineer, Front End and API at Causal. $175-225K + equity. Boston.
- Senior Software Engineer at Portchain. Coppenhagen or Remote (EU).
- Engineering Team Lead at Portchain. Coppenhagen or Remote (EU).
- Software Engineer - Infrastructure & SRE at Koyeb. €71-105K + equity. Remote (Global).
- Software Engineer - Service Mesh & Networking at Koyeb. €75-105K + equity. Remote (EU).
- Security Lead at Conjecture. £85-210K. London.
- Senior Software Engineer at Consensus. Boston, MA or Remote (US).
- Senior Frontend Engineer at Plain. £75-110K. Remote (Europe / 2 hours within GMT).
- Lead iOS Engineer at Polarsteps. Amsterdam or the Netherlands.
- Distributed Systems Staff Engineer at Reframe Technologies. Remote (Global).
- Senior Software Engineer at Karat Financial. $160-225K. Remote (US time zones).
- Senior Backend Engineer - Ruby at Rise Calendar. €80-120K + equity. Remote (Europe). I'm an investor.
- Senior DevOps Engineer at Droit. $170-205K. New York.
- Senior DevOps Engineer at Droit. London.
- Full Stack Engineer at Applied. £45-69K. London or Remote (UK).
- Solution Engineer at Pigment. $90-180K. New York or Toronto.
- Senior Backend Engineer at Pigment. €60-130K. Paris.
- Senior Engineering Manager at Whimsical. $185K + equity. Remote (US, Canada).
- Engineering Manager at Bobsled. $170-190K. Remote (US, Europe, South America).
The above jobs score at least 10/12 on The Pragmatic Engineer Test. Browse more senior engineer and engineering leadership roles with great engineering cultures, or add your own on The Pragmatic Engineer Job board and apply to join The Pragmatic Engineer Talent Collective.
Want to get interesting opportunities from vetted tech companies? Sign up to The Pragmatic Engineer Talent Collective and get sent great opportunities - similar to the ones below without any obligation. You can be public or anonymous, and I’ll be curating the list of companies and people.
Are you hiring senior+ engineers or engineering managers? Apply to join The Pragmatic Engineer Talent Collective to contact world-class senior and above engineers and engineering managers/directors. Get vetted drops twice a month, from software engineers - full-stack, backend, mobile, frontend, data, ML - and managers currently working at Big Tech, high-growth startups, and places with strong engineering cultures. Apply here.