2 ms·
Perhaps we’ve understood the original comment differently. I took it to mean writing a driver that uses an existing DMA API to talk to a controller. But yes,
by Cyph0n 8y ago
Perhaps we’ve understood the original comment differently.
I took it to mean writing a driver that uses an existing DMA API to talk to a controller.
But yes, I agree: implementing such a DMA interface from scratch — even with an existing controller — is not a trivial problem. Testing and verifying said implementation would also be difficult.
Well, I hope that one day I can make 1M/yr! For now, 3 months into my first job, I’m fairly satisfied with where I’m at :)
I’m considering shifting into kernel development next. Given your experience, would you advise going down that career route? Any tips for a career in low-level development?
- deanmoriarty 8y agoIn my opinion (which is not shared by many these days) understanding things at a reasonably low level is critical, I firmly believe that makes you a better programmer, even if you end up doing frontend development. My experience with the kernel has always been mostly tangential, typically a byproduct of what I do day to day, which is working at a SaaS startup at scale and wearing many hats, from backend development (Java/C++) to infrastructure management. As I find performance problems, many times I find myself digging into the kernel code and exploring parts of the networking stack (e.g. finding out the specific behavior of a socket option), virtual memory management (e.g. finding out some quirks about the page fault management system), ... Sometimes that leads to some small kernel patches and I've done several during the years, so that's typically my limit. The v4l driver I mentioned above was 6-7 years ago when I was in college and took a part time job working on that with a very talented team. Apparently FAANG likes those kind of background, especially if you can get into a more SRE-type role where they are actually not looking to quiz you only on dynamic programming algorithms, but also on your ability to reason with system design, low level systems and performance, at least that's my experience.
- josh2600 8y agoI am talking about doing a DMA interface from scratch.