Live data from Hacker News

Ask HN: Has anyone here worked on the Windows kernel?

news.ycombinator.com

1–10 of 174 posts

Ask HN: Has anyone here worked on the Windows kernel?

#1
Or any other kernel, professionally?

I've been offered a position at Microsoft to do kernel development work. This would be a big transition to me, coming from a services background (backend only).

The job's main draw to me is doing low-level work. I did some in my very first job, but for the past 10+ years, due to a number of circumstances, I've been in the services world. I really liked being a C programmer and I've kept an eye on things over the years, and did some hobby projects (on x86 and some embedded stuff as well).

There's a lot about my current job that I treasure, despite the work itself not being interesting to me about 99% of the time. It's a remote job, the work-life balance is stellar, and I get 25 days of vacation a year (this is in the US), which allows me to spend a lot of quality time with my wife.

However, I'm considering leaving because I've been having significant motivation and performance[0] issues for the last two years. Through a lot of soul searching and even help from a therapist, I've identified that the source of my issues is the nature of the work itself. Building services is just something that doesn't give me a sense of accomplishment, and I'm not attracted to the stuff at all. Some issues I've identified are:

1. Infrastructure complexity, especially since moving to Kubernetes. I refuse to touch it at this point.

2. Debugging exclusively via metrics and logs, since I can't just attach a debugger to a running server.

3. Designing systems in general. Some people love the challenge of distributed transactions, eventual consistency and all that jazz, but it just rubs my brain the wrong way. I'm not interested at all in that problem space [1].

4. The insane amount of work required to stand up even the smallest microservice: infrastructure provisioning, certificates, security reviews, GDPR compliance, etc.

5. Anything I build will end up paging some poor soul at 3am some day when something is down or under heavy traffic.

So, what I'm wondering is: what are the things that would make me say "ugh" on the day-to-day as a kernel developer? Is there a chance I'll be happier, or would I just be trading one miserable set of problems for other equally miserable problems?

I tried asking that to every person who interviewed me, but I only got somewhat vague answers like "the build can take a long time depending on what you're doing", etc. Someone complained about windbg.

[0] Even though my reviews have been good, I know deep inside I'm not doing even 10% of the good work I could do before.

[1] Ironically, I've acquired a ton of knowledge about it and I'm one of the "go to" people within my org.

Re: Ask HN: Has anyone here worked on the Windows kernel?

#2
As someone who shares your preferences, you should absolutely go for it I would say, even just for the learning experience. Many devs would metaphorically kill to work on an OS kernel team. If it turns out to not be that great after all, you’ll have no difficulty to return to Kubernetes-land ;), or rather more likely, find a different low-level oriented dev job with that Windows kernel experience.

Re: Ask HN: Has anyone here worked on the Windows kernel?

#6
Kinda seems like if you hate it you could go back to building services really easily. No real downside to giving it a shot! Unless I'm missing another trap door it feels very reversible. :)

You might even be able to return to your old company if you hate it. Tell them directly "hey I need to give this a shot but I'd love to check-in in a year".

Re: Ask HN: Has anyone here worked on the Windows kernel?

#7
post #5
post #3

Quoted post unavailable.

K8s is like 4-wheel drive. It allows one to get stuck further off the main road.

I don't see how the analogy is applicable. To illustrate what I mean, you could have also said: "K8s is like a train. It's big and heavy, will carry most things that you need it to", and it would be just as much of a non sequitur. Analogies are usually worthless to an argument (and therefore should be worthless to your opinions), unless one is able to demonstrate why thinking about an idea with an analogy is applicable.

There's zero reason to think that Kubernetes is like a 4-wheel driven car for the same reason to think that Kubernetes is like a train, or Kubernetes is like a virus, or Kubernetes is like a snowman; it's completely unrelated.

Re: Ask HN: Has anyone here worked on the Windows kernel?

#9
The design is very different than *nix. The entire ecosystem is different. I think experience with both is eye-opening. There may even be a couple of grizzled old graybeards left who followed DaveC over from DEC. I don't have a clue now.

If you can read and enjoy these books, consider it:

https://docs.microsoft.com/en-us/sysinternals/resources/wind...

The ugh!: You will be a tiny cog in a big machine, spending very little time writing code, mostly banging your head over someone else's bugs. And M$FT still has a certain stink to it these days and that may cling to you.

Re: Ask HN: Has anyone here worked on the Windows kernel?

#10
post #7
post #5

Earlier quoted context omitted.

K8s is like 4-wheel drive. It allows one to get stuck further off the main road.

I don't see how the analogy is applicable. To illustrate what I mean, you could have also said: "K8s is like a train. It's big and heavy, will carry most things that you need it to", and it would be just as much of a non sequitur. Analogies are usually worthless to an argument (and therefore should be worthless to your opinions), unless one is able to demonstrate why thinking about an idea with an analogy is applicab…

What pendantry is this? The only thing that you could take away from OP's comment is that they made a metaphor, and since you can make a metaphor about anything, the chosen metaphor says nothing?

That's like saying, well, you can use words to construct a lie, therefore, all words are untrustworthy.

He's saying that k8s can be powerful, but that that power can be destructive if not wielded correctly.

Personally? k8s is powerful. But you need a team to manage it, and if you're the poor sob who wants to write software but gets stuck managing k8s (due to its complexity) half the time, you're not going to be very happy.

Post reply on HN