工程师在面试中应向未来雇主提出的问题
Questions engineers should ask future employers in interviews

原始链接: https://dollardhingra.substack.com/p/questions-software-engineers-should

不要把面试结束时的“你有什么问题吗?”环节当成形式,这是*你*评估公司是否兑现承诺的机会。这种“反向面试”至关重要的尽职调查,因为你正在评估一项重大的职业投资。 把你的问题集中在了解工作的*实际情况*上。通过询问项目如何从想法到实施,以及工程师在其中扮演的角色,来确定你将是一个问题解决者,还是仅仅是“任务搬运工”。通过询问随叫随到政策和团队如何处理错过截止日期来评估职业倦怠的风险——寻找“允许睡懒觉”的规则和事后分析,而不是借口。 深入了解代码库和实际挑战,而不仅仅是“炫酷的技术”。询问最近的bug和技术障碍。最后,确认对个人贡献者的职业发展——真正的Staff/Principal晋升路径是积极信号,而被迫成为管理者则是消极信号。 一次成功的面试是双向的。除了薪资之外,优先了解公司的文化和价值观,以确保长期的良好匹配。

一篇最近的 Hacker News 帖子链接到一篇文章,其中列出了工程师在面试时应该向潜在雇主提出的问题 (dollardhingra.substack.com)。虽然这些建议被认为是可靠的,但评论员指出实际的限制——面试时间通常很短。 用户还指出,这些问题更倾向于寻找稳定、成熟职位的候选人,可能会对初创环境产生负面印象,尽管初创环境提供了学习机会。一位评论员强调希望*面试官*澄清*编码面试本身的目的*。 整个讨论强调了在提出可能具有挑战性的问题时,需要谨慎措辞,承认大多数工作面试中固有的权力失衡。 基本上,提出好的问题,但要注意你*如何*提问。
相关文章

原文

We have all been there. You have just finished 45 minutes of intense technical grilling. You’ve whiteboarded a system design, debugged a sorting algorithm, and explained the nuances of database sharding. Finally, the interviewer leans back and asks the inevitable closing question:

“So, do you have any questions for us?”

Too many engineers treat this moment as a formality. They ask about the lunch menu, the remote work policy, or worse - they say, “No, I think I’m good.”

This is a missed opportunity.

An interview isn’t just an audition for you; it is a due diligence process for the company. You are about to invest a significant portion of your waking life into this organization. You need to know if their “agile environment” is actually chaotic, if their “fast-paced culture” actually means 60-hour weeks, and if their “modern stack” is actually legacy spaghetti code wrapped in a Docker container.

Here is your checklist for the “Reverse Interview” - the questions that dig past the Job description and reveal what life is actually like on the inside.

The questions in this section determine if you are a “Problem Solver” or a “Ticket Mover.” This is about your day-to-day autonomy and frustration levels.

You don’t just want to know what you are building; you want to know how the solution is defined. In some companies, Product Managers hand down a spec and Engineers act as translators. In the best companies, Engineers are given a problem and asked to design the solution.

Ask this: “How does a project go from an idea to a ticket? Specifically, at what stage are engineers brought into the conversation; when the problem is identified, or after the solution has already been decided?”

How to Read the Answer:

  • 🟢 Green Flag: “Engineers sit in on the product roadmap meetings,” or “We write ‘Design Docs’ before we write code.” This indicates an engineering-led culture.

  • 🚩 Red Flag: “Product gives us the requirements and we sprint on them.” This is a “Feature Factory” mindset where you are measured by output, not outcome.

Code reviews can either be a great learning tool or a toxic battleground for ego. You need to ensure that reviews focus on logic and architecture, not nitpicking syntax that a machine should handle.

Ask this: “How does the team distinguish between ‘blocking’ feedback (must-fix) and ‘nitpicks’ (optional suggestions) in code reviews? And do you use automated linters to handle style debates?”

How to Read the Answer:

  • 🟢 Green Flag: “We use strict linters so humans don’t argue about indentation. We also have a rule: if you block a PR, you must suggest a fix.”

  • 🚩 Red Flag: “Oh, we are very particular. [Manager’s Name] reviews everything to ensure it matches their style.” This is micromanagement.

The questions in this section determine your burn-out risk. Every company has crunch time; the difference is whether it is a “bug” or a “feature” of their planning process.

Being on-call is part of the job. But if you are up at 3:00 AM fixing a database outage, you should not be expected to attend a 9:00 AM standup. You need to verify if “Compensatory Time” is policy or a favor.

Ask this: “I understand on-call is necessary, but what is the official policy for recovery? If I get paged overnight, is it standard procedure to take the next morning or day off without using my PTO?”

How to Read the Answer:

  • 🟢 Green Flag: “Absolutely. We have a ‘sleep in’ rule. If you get paged, you don’t come in until you’re rested. No questions asked.”

  • 🚩 Red Flag: “We try to be flexible,” or “It depends on how busy the sprint is.” This means you will burn out.

Some companies rely on “heroes” - engineers who work weekends to save the deadline, because their planning is terrible. You want a boring company where deadlines are moved, not where sleep is sacrificed.

Ask this: “When was the last time the team had to work nights or weekends to meet a deadline? And what changes were made to the planning process to ensure it didn’t happen again?”

How to Read the Answer:

  • 🟢 Green Flag: “It happened last year, and we realized we were under-scoping. We’ve since switched to longer sprint cycles to buffer for unknowns.”

  • 🚩 Red Flag: “We work hard here,” or “We are a startup, so it’s all hands on deck.” (Translation: We are disorganized).

The questions in this section separate the “Flashy Tech” they sell you in the interview from the “Legacy Code” you will actually maintain.

It is easy to have a “great culture” when the stock price is up. The true test is how they react when things break. You want to know if they look for a solution or a scapegoat.

Ask this: “Tell me about the last time a significant bug made it into production. How did the team react in the immediate aftermath, and what was the process for ensuring it didn’t happen again?”

How to Read the Answer:

  • 🟢 Green Flag: The phrase “Blameless Post-Mortem.” They focus on the system failure (e.g., “Our testing suite missed this edge case”), not the person who wrote the code.

  • 🚩 Red Flag: “We had a serious talk with the engineer involved,” or vague answers like “We just fixed it quickly.” If they can’t describe the process of learning from failure, you will likely be punished for making mistakes.

Every job description claims the role involves “solving complex problems at scale.” In reality, 80% of jobs are “maintaining a legacy CRUD app.” You need to determine the ratio of building vs. patching.

Ask this: “Can you walk me through the hardest technical obstacle the team faced in the last six months? Was the complexity in the scale, the business logic, or the legacy constraints?”

How to Read the Answer:

  • 🟢 Green Flag: They get specific about the nature of the problem. “We had a concurrency issue when we hit 10k users,” or “The business logic for this new tax calculation was incredibly knotted.”

  • 🚩 Red Flag: “Everything is a priority right now” or “Our biggest challenge is just hiring enough people.” These answers suggest the challenge isn’t technical—it’s organizational chaos.

This final check ensures you don’t hit a ceiling where the only way to get a raise is to stop coding.

At many companies, the only way to get a promotion past “Senior Engineer” is to become a Manager. This forces great coders to become mediocre managers. You want to verify that a “Staff” or “Principal” track actually exists.

Ask this: “Can you walk me through the career ladder for an Individual Contributor (IC) who doesn’t want to manage people? Specifically, do you have Staff/Principal engineers on the team right now who are equivalent in seniority and pay to Engineering Managers?”

How to Read the Answer:

  • 🟢 Green Flag: “Yes, our Principal Engineers report directly to the Director/VP and drive technical strategy without managing reports.”

  • 🚩 Red Flag: “Well, eventually you’ll need to take on some ‘Team Lead’ responsibilities to move up.” This is code for: You have to manage people if you want more money.

Remember: Finalizing a job offer should go beyond just monetary factors; understanding the company’s work environment, values, and long-term opportunities is equally important. The best interviews are two-way conversations that benefit both you and the company.

联系我们 contact @ memedata.com