

So I have frequently worked in projects where I don’t know how end users interact with the software. I can make code hum without knowing how it fits into the ecosystem. Sometimes that’s all the job is because that’s the structure.
That said, I can contribute a lot more if I do understand the bigger picture. Domain knowledge helps me triage. It helps me propose effective alternatives. I’d say it is critical for understanding separation of concerns and deciding what compromises to recommended practices are reasonable.
I reject this principle. You can write code without domain knowledge, but software by itself has no purpose until it meets users. And to write software that works best for users you have to understand them.




There are certain positions I would probably be very good at from a technical perspective that I avoid because I know my myself. I could never work for the CIA or FBI for example. I don’t want to know their secrets because they could have me weigh a duty to execute my job and protect my family against my duty to humanity. I don’t know which principle I would betray, if grappling with it didn’t kill me first. Some might think that’s an easy choice but the personal cost is extreme — look at Snowden.
No, keep me far away from that shit. Let me grapple with intellectual problems all day long, but moral quandaries paralyze me.