Live data from Hacker News

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

news.ycombinator.com

51–60 of 174 posts

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

#51
post #17

Definitely do not join Microsoft and definitely do not join any windows related teams. Microsoft is hell. Every team is fully siloed. Culture wise it’s a wasteland and teams as a communication platform is awful

Sitting on the Microsoft campus at the moment... not a kernel developer. yeah, this is not hell. Not even a bit. Microsoft is great. It's an amazing place to make impacts in many different areas of technology. Work teams used to be more siloed, but that's changed a lot in the last 6-7 years. We regularly work across teams at GitHub and Microsoft to get things done with great cooperation. As for Teams vs. Slack vs. Di…

> When Robert Downey Jr. was trying to talk Gwyneth Paltrow into joining "Iron Man", he said to her something like, "do you want to work on art house films the rest of your life or do you want to be in something that people actually see?"

Sounds like a bastardization of Jobs on convicing John Sculley manufactured by a PR person:

Steve Jobs and John Sculley, then PepsiCo president, were sitting on a balcony overlooking New York’s Central Park. Jobs turned to Sculley and said, “Do you want to sell sugar water for the rest of your life or come with me and change the world?”

https://www.forbes.com/sites/carminegallo/2016/11/12/how-ste...

That's like asking someone who cooks at a fine-dining restaurant to work at McDonalds, "do you want to make pretentious food for 40 cashed up foodies and critics a day, or do you want to make food for hundreds of regular people a day?"

People pretending that Facebook, Google, Microsoft, et al are noble endevours are deranged. It's like rooting for Walmart to win the World Series of Retail.

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

#52
Here's my thoughts based on working on Windows in-box code (user mode only, though) across 2 different Windows component teams, totaling about 5 years with a break in the middle. (Split into multiple comments for readability. Some parts removed because other people said it better.)

Most importantly, MAKE SURE YOU KNOW WHAT THE JOB IS! Microsoft people don't try to be dishonest, but there can be misunderstandings between you and your future coworkers about your role, and if you take a job that turns out to be different from what you expected, you will be unhappy.

If you haven't already, you should ask the hiring manager more about what the team does. Try to get enough specifics that you might not know everything the manager refers to, but can easily Google what you don't know: "For example, in Windows 10 version 2004, we shipped the API and implementation for the Windows hypervisor feature that lets third-party VM host software like VirtualBox force their VM guests' virtualized RAM to be paged into the host machine's physical RAM all the time." (Not an actual feature, at least as far as I know.) At this level of detail, you'll be able to judge whether the work is really what you think it is.

Talk to your other interviewers to learn more about the work and the team, if they gave you their contact info or otherwise seemed inclined to hear from you. 3 out of 4 of them are likely going to be your peers, and the 4th is either the hiring manager, another mid-level to senior leader, or a team architect - all will be at least close enough to your team that they won't give you vague generalities.

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

#53

Here's my thoughts based on working on Windows in-box code (user mode only, though) across 2 different Windows component teams, totaling about 5 years with a break in the middle. (Split into multiple comments for readability. Some parts removed because other people said it better.) Most importantly, MAKE SURE YOU KNOW WHAT THE JOB IS! Microsoft people don't try to be dishonest, but there can be misunderstandings betw…

One reason I specifically suggest you confirm what your job is is that the teams that work on Windows in-box kernel-mode components aren't just Windows-specific teams anymore. They are part of the Microsoft Azure Edge + Platform division.

That name is misleading, but only partly so: shipping the Windows desktop and Windows Server products are a major part of that division's mission, but so is building Microsoft's internal-use Linux distribution CBL-Mariner, all of Microsoft's embedded and Internet of Things software products (Azure ThreadX RTOS, Windows IoT, etc.), and various Microsoft-internal software and hardware products.

It's very possible that the team you'd be joining would be working on an Azure product or Windows kernel-mode code for an Azure product, which means all your 5 issues could be a concern, especially:

> 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.

(Point 5 is even worse in Azure because you will get paged yourself if you're on-call. You can't just assume that the operations or site reliability engineering teams will take care of problems without pulling in the original engineers, especially when the product is new and buggy :)

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

#54

Bad stuff: 1. There will be a lot of infrastructure complexity in the kernel, just prepare yourself for that. Even worse bugs! You'll be fixing a lot of bugs, or looking at a lot of bugs, and most of these bugs are from other teams who are interacting with your component! Just order a copy of Windows Internals and get yourself familiar with how thing work. 2. Old ass engineering systems. Just as the interviewers said…

  >  Windbg is actually great and I will die on this hill.
Someone convinced me to try Windbg Preview about 2 years ago and I was in awe. I too will now die on the hill that it's an incredible cross-language debugger capable of a lot more than that.

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

#55
post #31
post #26

Earlier quoted context omitted.

Can you no longer use windbg to attach to a running kernel on a remote box, and debug the remote box from your development machine? I believe that's how kernel debugging is generally done.

That’s probably true, but sometimes you have to go one level deeper right? What happens when your debugger has crashed?

In 8 years on the Windows team I can't recall the debugger ever crashing. If it does, you open the debugger again and reconnect to the target machine.

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

#56

Here's my thoughts based on working on Windows in-box code (user mode only, though) across 2 different Windows component teams, totaling about 5 years with a break in the middle. (Split into multiple comments for readability. Some parts removed because other people said it better.) Most importantly, MAKE SURE YOU KNOW WHAT THE JOB IS! Microsoft people don't try to be dishonest, but there can be misunderstandings betw…

Even if you do work on Windows in-box code only, it might not be so easy. Here's another issue you raised with your old job:

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

I find debugging Windows issues fun, but it might not be for you. On rare occasions, you might be lucky even to have telemetry and logs, for customer issues that can't be reliably reproduced. "We noticed that 30% of our module's crashes in the last Windows Insider Preview Dev build had this new stack, so we used Watson Portal to request more crash dumps from devices that ran into that particular crash, and a week later, we've accumulated this set of dump cabs...."

On the other hand, if you get an automated email saying "test case XYZ broke due to a crash in your module", you'll probably get a live kernel debugger remote - an email link or copy-paste command to open a kernel debugger on the dead VM, preserved for your debugging. But of course, bugs aren't necessarily caught that early, and even if they are, finding things via kernel debugging is a needle-in-a-haystack problem because you're debugging the entire computer, not just one process.

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

#57
post #37

I think I can count the number of kernel changes I've submitted on one hand, but I work on core virtualization that involves a lot of pretending to be hardware and (these days) a lot of poking directly at hardware registers. I would say James Mickens sums things up nicely in "The Night Watch[0]." For example, you mention debugging with logs and metrics -- this snippet came to mind: “Yeah, that sounds bad. Have you ch…

This is breathtakingly brilliant, and I am grateful to now have the wisdomful humor of James Mickens in my life. Thanks!

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

#58
post #37

I think I can count the number of kernel changes I've submitted on one hand, but I work on core virtualization that involves a lot of pretending to be hardware and (these days) a lot of poking directly at hardware registers. I would say James Mickens sums things up nicely in "The Night Watch[0]." For example, you mention debugging with logs and metrics -- this snippet came to mind: “Yeah, that sounds bad. Have you ch…

As an aside: James Mickens is a treasure. If anybody reading this hasn't read any of his articles or watched any of his talks before stop now and do it. You won't be sorry.

https://mickens.seas.harvard.edu/wisdom-james-mickens

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

#59
post #23

The answers you will get here at HN will mostly be misplaced hatred against Microsoft, from people who hate MS, because someone else here at HN hates MS. I think what you should do is, if possible, arrange for a short call with some of the team mates that you are going to work with. Just a casual one about how the kernel team day to day work looks like there. If not with the team, then maybe with your manager. Unless…

I guess you're probably thinking about someone like me - someone who got started in 90s, or perhaps even earlier.

I don't hate the competent developers at Microsoft (of course they exist, there have been source code leaks) - I just very strongly dislike the machine that is Microsoft. I don't think the machine has reformed.

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

#60

Earlier quoted context omitted.

Sitting on the Microsoft campus at the moment... not a kernel developer. yeah, this is not hell. Not even a bit. Microsoft is great. It's an amazing place to make impacts in many different areas of technology. Work teams used to be more siloed, but that's changed a lot in the last 6-7 years. We regularly work across teams at GitHub and Microsoft to get things done with great cooperation. As for Teams vs. Slack vs. Di…

> When Robert Downey Jr. was trying to talk Gwyneth Paltrow into joining "Iron Man", he said to her something like, "do you want to work on art house films the rest of your life or do you want to be in something that people actually see?" Sounds like a bastardization of Jobs on convicing John Sculley manufactured by a PR person: Steve Jobs and John Sculley, then PepsiCo president, were sitting on a balcony overlookin…

McDonalds corporate actually employs chefs to develop new menu items, and a large part of the process is figuring out how to work within the constraints of being able to consistently reproduce a menu item at thousands of locations, sourcing the necessary ingredients via the McD supply chain. I'm sure it's an interesting problem and a chef working at a fine-dining restaurant may very well find it a nice change of pace compared to feeding a small number of rich, pretentious jerks.
Post reply on HN