HACKER Q&A
📣 Xophmeister

How much domain knowledge is enough?


I am attempting a promotion, but the process has raised numerous red flags that concern me. I’ve posted two to The Workplace[1,2], but my final apprehension is more opinion-based, which I believe the HN community would have a good insight on.

I work for a scientific research institution as a software engineer. I have minimal knowledge in the details of the science being done, but the software engineering requirements are orthogonal to this. I’ve picked up a bit and I’m generally interested, but in the six years I’ve worked there, it hasn’t come up enough to warrant the investment. Indeed, there are dedicated staff on the team — two with PhDs in the subject and one with decades of experience — exactly for this purpose.

My manager’s argument is that, for the promoted role, I would have to significantly increase my domain knowledge. To an extent, I agree that domain knowledge is useful to perform the job — as a force multiplier — and I don’t have a problem with absorbing some. However, where does one draw the line? Maybe this is facetious, but ultimately it’s all ones and zeros! While it could be argued as diminishing returns in comparison, I believe a better investment (in terms of force multiplication) would be investing further in my engineering skills; especially when a complementary resource readily exists.

The obvious answer to my question is, “The amount of domain knowledge you need is the amount your manager wants.” Fair point, but I am trying to analyse the calculus of all this. Paradoxically, employers want employees that are fungible (so they can be easily replaced), but also specialists (so it’s harder for them to move elsewhere). I’m wary — given my other misgivings — that investing energy into a niche domain that I’m not wedded to will make me less employable overall.

[1] https://workplace.stackexchange.com/q/164629/67054

[2] https://workplace.stackexchange.com/q/164632/67054


  👤 gregjor Accepted Answer ✓
Domain expertise isn’t just a “force multiplier.” It makes you more likely to understand the problems and deliver useful solutions without someone telling you what to do step by step. Remember that failing to understand requirements is the most common cause of expensive software development mistakes.

Imagine two taxi drivers, both equally skilled at driving a car. One knows the city intimately, the other doesn’t. Which driver offers the most value, the most likely best route to your destination? Which driver can avoid traffic problems, or suggest a popular restaurant?

Domain expertise makes you more valuable to your employer, less replaceable. It also shows future employers you have some commitment to the business, not just in your own technical interests. It lets you contribute at different levels. There’s more to programming than writing code.

In my own work as a freelancer, domain expertise and taking an interest in the customer’s business, not just in their code base and technical problems, literally separates me from the hundreds of thousands of technically competent programmers who could do the work. And it helps me retain customers long-term, and get referral business, thereby reducing my need to constantly find new customers — a big non-billable and stressful drain for a lot of freelancers.


👤 detaro
I think this is very dependent on the environment and how the group works, and at the end also to the involved personalities and how your boss thinks the group should work. And I think this is something to ask about: why do they expect you to have more domain knowledge, and why do they think that's more important to prioritize?

How would they describe your "promoted role" in what you do? Is their expectation that you'll work with less input from domain experts because that's what they see as the bottleneck (do they want those domain experts to focus on other things? do they think you are taking to much of their time? ...)?

Does the institution literally have a rule about domain qualifications being needed for advancement? (in scientific labs even credential requirements for non-science roles are not uncommon)

Do they just think your software skills are good enough and if you improve it should be on the other side?