← Back to context

Comment by Quothling

1 day ago

I'm from Denmark and I've been an external examiner for various CS educations for the previous 13 years now. Some of them teach you a lot about how the hardware works, others mainly teach you design patterns. Five years ago the latter was in high demand, because a lot of software development frankly doesn't need computer science (until it does). Now there is almost no demand for them.

Honestly, i've received a formal MSc education in the hardware aspects, including for designing embedded electronics products. Spent the most part ofy career in the software industry designing enterprise software and feel like i never needed to use them, except maybe early in my career when i was reviewing tech stacks and determined that .NET would be among the winning horses, precisely because it'd take care of that for me almost all the time.

What i see today is the opposite of what you see : product owners not knowing a thing about software engineering but being able to vibe code prototypes handed over to the dev team are rock stars.

They are closely followed by senior software developers having more of an architecture & design background than a low-level computer science background. Most businesses are looking for builders these days.

Where what you say may converge with my observation is that to be able to do to things such as proper database query optimization, even using AI assistance, you need to be able to understand the concepts of working memory set, cache misses etc...

I've found huge problems, like database servers being grossly underprovisioned (like, 60% cache hit, 4gb RAM server for a 700gb dataset with an 50gb circa hot data set). SSD were used and only latency was measured, so no one realized how problematic the situation was (including a consulting shop they hired to help them manage their DBs - backup, maintenance etc...).

However, having a high affinity with hardware is not a driver / computer science of hiring decisions from what i can see in the enterprise software world. But it would make sense for it to become the case within 10 years. I suspect that you work in a niche where performance optimization matters a lot.

  • > However, having a high affinity with hardware is not a driver / computer science of hiring decisions from what i can see in the enterprise software world

    I think the way I worded it was maybe a little too close to just being about hardware, because performance do matter a lot in the energy industry. I do think it applies to SWE in general. You mention .NET and I've met C# developers with years of experience who couldn't tell you the difference between IEnumerable and IQueryable. I've met even more experienced Python developers who don't know what a generator is. Stuff like that, not having knowledge of the tools they use. I guess you could argue that those are bad developers, but I don't personally think that has been the case for most of them. Still, you'd rather have someone who thinks about these things rather than eventually using batches once they run into memory issues.

    I also think these changes are appearing faster in non SWE enterprise. As you said, product owners who are AI explorative (for the lack of a better word) are rock stars. We see this a lot in our finance and risk departments, where domain experts now write fairly decent software with AI. My team has build them tools so that they build things the same way, use the same developer setups and pull the pre-approved external packages or are offered alternative ways of doing things. A few years ago this would've been done by these domain experts "ordering" the software they needed from our SWE team, and if they hadn't already been mostly laid off due to Putin's invasion of Ukraine changing the markets, I belive they would've been now because of AI.

    Because frankly, a lot of the software that gets produced in these areas, don't need computer science, until it does, and the domain experts can make the software they need so much faster than before by vibe coding it. From my perspective it's not that much of a difference in the quality of the code that gets produced. I also had to help with performance and security when we had more software engineers on staff. Though now I do it more through writing and distributing AI agent applications rather than writing a C binary or optimising the code directly.