3 ms·
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,
by cjbprime 6y 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.
- jjjeii3 6y agoLucky, 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 https://github.com/angular/angular/issues/37293 I really starting hating Angular due to performance issues.
- almost_usual 6y agoAlso feel that pain linking large projects in Rust.
- mike_k 6y agoWow, 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.)
- cjbprime 6y agoThere was a difference, but it was smaller than the job satisfaction increase from better tooling for me.
- the8472 6y ago> 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.
- cjbprime 6y agoMost 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.