Hacker News new | ask | show | jobs
by cjbprime 1977 days ago
I went from being a kernel engineer to a JavaScript application engineer, and JS was more satisfying to do over a long period of time for me -- the "recompile, reboot, retest" loop taking several minutes each time for testing kernel changes that can't be tested in a kernel module was extremely frustrating, compared to the amazing browser devtools for modern JS.
4 comments

Lucky, you don't work with Angular. Compiling a tiny TODO-app is slower than compiling the entire Linux kernel:

https://github.com/angular/angular/issues/37293

I really starting hating Angular due to performance issues.

> the "recompile, reboot, retest" loop taking several minutes

Surely full-time kernel developers must have tons of shortcuts that can speed this up compared to the regular build process, no? There just was an article about booting a VM in hundreds of milliseconds on the frontpage for example.

Most of the time I worked on drivers with kernel modules, so the fast path is just build && rmmod foo && modprobe foo && test. That's fine.

But I was working for a hardware manufacturer too (One Laptop Per Child), making its own laptop designs and doing board bringups on them, and when the point is to test real hardware you don't get shortcuts like using a VM. :)

The shortcut we had for trying to maintain productivity while testing real hardware was actually to stop using Linux: we had a port of Open Firmware that was the first thing run on new hardware, and then running tests (e.g. bisecting how large the timeout on a device request needed to be) could be done in a live OFW Forth REPL, and then ported to Linux from there.

Wow, these are two quite different jobs. What about the the differences in project management, planning and a sense of accomplishment though? (Sure, it depends on the other factors too.)
There was a difference, but it was smaller than the job satisfaction increase from better tooling for me.
Also feel that pain linking large projects in Rust.