Live data from Hacker News

Low-Level Programming University – A roadmap to becoming a low-level programmer

github.com

121–130 of 168 posts

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#121

Earlier quoted context omitted.

Could not have said it any better. Embedded development is dominated by hardware engineers who make decisions very often without the software development teams input, placing embedded folk square in the target of management angst as well. Choosing Broadcom chips without drivers, 3rd party experimental hardware who wont release data sheets, choosing USB chips that don't support host mode, miswired memory interfaces th…

Are you me? Honestly, that all sums it up even better. In an embedded role, you are always a second class citizen. After 6-12 months of planning by the hardware folks: "The hardware is all done. Where's the software? What do you mean it's not finished, you had all year...?" You're a complete afterthought, and it's only amplified when working with a team that doesn't really "get" that without access to the actual, fin…

OK, I've worn both hats - chip designer and embedded systems programmer - it makes me better at both - I get to be thye chip guy who understands software and the software guy who understands hardware - it means I get the interrupt setting/clearing logic race free and make sure all the registers can be read, and can make tradeoffs that minimise the amount of hardware we have to build.

The big issue is timing (and latency) - the chip guys are working on long timelines - they're already working on the next chip when the first chip's silicon comes back, their investment and attention is elsewhere, the software guys aren't going to rev up much before real hardware is in their laps, and certainly aren't going to spend any time on that second chip while they're still wrangling the first one - it's not so much a cultural gap between the groups as a gap in time

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#122

Earlier quoted context omitted.

Do you have a background in electronic engineering / good understanding of hardware issues beyond cpu caching ? Just trying to understand what $125k requires in this space.

Actually now that I think about it, being too stupid to know when I'm in over my head and being willing to dive into an impossible task are probably the most valuable skills I have.

dumb enough to jump, smart enough to not die... the secret to success.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#123
post #19

Earlier quoted context omitted.

I struggle to find good low-level devs. It is surprisingly hard to find good C / kernel / network programmers.

Where are you searching?

This goes both ways - where do C people look for job. As you know most competent people have one job or another, so it's equally important to be recognizable for the employed bunch. I do a fair bit of blog posts / outreach to good looking github profiles / conferences (smaller and larger).

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#124

Earlier quoted context omitted.

Are you me? Honestly, that all sums it up even better. In an embedded role, you are always a second class citizen. After 6-12 months of planning by the hardware folks: "The hardware is all done. Where's the software? What do you mean it's not finished, you had all year...?" You're a complete afterthought, and it's only amplified when working with a team that doesn't really "get" that without access to the actual, fin…

OK, I've worn both hats - chip designer and embedded systems programmer - it makes me better at both - I get to be thye chip guy who understands software and the software guy who understands hardware - it means I get the interrupt setting/clearing logic race free and make sure all the registers can be read, and can make tradeoffs that minimise the amount of hardware we have to build. The big issue is timing (and late…

Isn't hardware emulation common these days? Zebu, palladium, etc. Can emulate a chip and software, which can speed time to market.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#125
post #19

Earlier quoted context omitted.

I struggle to find good low-level devs. It is surprisingly hard to find good C / kernel / network programmers.

And, just out of curiosity, where are you?

The company I work for is in London / San Fran / Austin and couple other smaller locations.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#126
post #123

Earlier quoted context omitted.

Where are you searching?

This goes both ways - where do C people look for job. As you know most competent people have one job or another, so it's equally important to be recognizable for the employed bunch. I do a fair bit of blog posts / outreach to good looking github profiles / conferences (smaller and larger).

> where do C people look for job

Occasionally, threads about low-level work on HN - you should link to a job post :)

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#127
post #6

As someone who can code in C/C++ and was recently looking for work, I don't think someone should learn low level programming for a career. What I would consider simple PHP jobs were easily paying more than C++ jobs. If you look at everyone reinventing the wheel in electron and not caring about performance I don't think the situation is going to get better anytime soon.

Yeah, C/C++ is gradually becoming a lost art. Many game developers don't even bother with it anymore, instead just scripting out Unity.

C/C++ is not going away anytime soon in realtime audio DSP.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#128
post #30
post #19

Earlier quoted context omitted.

I struggle to find good low-level devs. It is surprisingly hard to find good C / kernel / network programmers.

Just out of curiosity, what would it take for you to conclude you had found a good c/kernel/network programmer?

Assuming a candidate without super-strong experience:

1) Good code sample showing non-trivial piece of code, ideally in C. (craftsmanship)

2) Reasonable github profile, showing ability to contribute to some opensource projects (which means: basic git skills, communication skills, testing) (craftsmanship)

3) Reasonable experience from CV (assuming we're not talking about hiring for junior role) (craftsmanship)

4) Genuine interest and experience in one of crypto or security or networking. (depth)

5) Debugging skills. Systemtap? Valgrind? (depth)

6) Basic understanding of different programming paradigms. Haskell, erlang, scala or prolog count. (breadth)

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#129
post #123

Earlier quoted context omitted.

This goes both ways - where do C people look for job. As you know most competent people have one job or another, so it's equally important to be recognizable for the employed bunch. I do a fair bit of blog posts / outreach to good looking github profiles / conferences (smaller and larger).

> where do C people look for job Occasionally, threads about low-level work on HN - you should link to a job post :)

Since you insist, this is one of many open positions: https://boards.greenhouse.io/cloudflare/jobs/589571

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#130

Earlier quoted context omitted.

OK, I've worn both hats - chip designer and embedded systems programmer - it makes me better at both - I get to be thye chip guy who understands software and the software guy who understands hardware - it means I get the interrupt setting/clearing logic race free and make sure all the registers can be read, and can make tradeoffs that minimise the amount of hardware we have to build. The big issue is timing (and late…

Isn't hardware emulation common these days? Zebu, palladium, etc. Can emulate a chip and software, which can speed time to market.

yes, but it's not cheap and is essentially a second parallel tapeout path that slows your chip design time - if you're building a CPU you likely build a high-level software model and code to that (with some register-virtualisation layer), then test against that as part of the chip DV (QA) process
Post reply on HN