Embedded Artistry

embeddedartistry.com · Company blog · on HN since 2018

Embedded Artistry is a consultancy blog on embedded systems, firmware, software practices, and hardware product development.

What HN saysCommenters call it the single best resource on embedded development and cite its post on what happens before main() in C programs.
25HN people shared it
8linked it in comments
26stories submitted
468story points
12 months agolast shared
2018people per year2026

Most-shared posts

  1. 1
    A general overview of what happens before main() (2019)
    4 people · 216 points · first shared 2020 · 42 comments on HN
  2. 2
  3. 3
    Timeless Laws of Software Development (2018)
    2 people · 2 points · first shared 2019 · 1 comments on HN
  4. 4
    -Werror Is Not Your Friend
    2 people · 1 points · first shared 2022 · discussion on HN
  5. 5
    Embedded Rules of Thumb (2018)
    1 people · 168 points · first shared 2020 · 60 comments on HN
  6. 6
    Reclaim Your Data: Freeing a Wi-Fi Sensor from the Cloud
    1 people · 46 points · first shared 2024 · 16 comments on HN
  7. 7
    We Document Software Projects
    1 people · 4 points · first shared 2021 · discussion on HN
  8. 8
    Programmers: Let's Study Source Code Classics
    1 people · 3 points · first shared 2019 · discussion on HN
  9. 9
    Life After Burnout
    1 people · 2 points · first shared 2025 · discussion on HN
  10. 10
    What Is the Proper Balance Between Working and Learning?
    1 people · 2 points · first shared 2020 · discussion on HN
  11. 11
  12. 12
    Warnings: -Weverything and the Kitchen Sink
    1 people · 2 points · first shared 2018 · discussion on HN
  13. 13
  14. 14
    -Werror Is Not Your Friend
    1 people · 2 points · first shared 2018 · discussion on HN
  15. 15
    Useful Resources for Embedded Systems Developers
    1 people · 2 points · first shared 2018 · discussion on HN

What HN people wrote when they linked it

auxym · 2022-09-19
Today, probably not. Historically? Definitely. It wasnt that long ago that bare assembly was still dominant in embedded, long after general computing. Somewhat obviously, assembly programs were closely coupled to the hardware. Nowadays C is probably still dominant is C++ is starting to get widespread acceptance. The best way to decouple the HW and SW is still a topic of active discussion from what I can tell. For example, https://embeddedartistry.com/blog/2022/07/11/how-our-approach-to-abstr…
server_bot · 2021-04-28
Nope. But you should check out Embedded Artistry[1], its the single best resource I've seen on a field that's mysterious even to most professional programmers. Have you spent any time doing Arduino projects? While not representative of real-world firmware work, Arduino is very accessible/cheap and will teach your transferable skills (e.g. C programming for interfacing with HW). I'd encourage you to really put some time in before you commit to anything embedded - because the amount of jobs and the range of companies you can work at is much, much lower than "mainstream" development (say, building web applications). [1] https://embeddedartistry.com/beginners/
analog31 · 2023-01-11
It's easy to overlook for those who program mostly on higher level systems. There was a recent HN thread that I think pointed to this article on what happens before main() in C programs: https://embeddedartistry.com/blog/2019/04/08/a-general-overview-of-wha… On microcontrollers, there are often some preliminaries that are programmed into nonvolatile settings of the hardware, such as the type of clock oscillator. On a microprocessor like the Z80, your circuit was supposed to ensure that things like the clock oscillator and power supplies were stable before releasing the RESET pin.
still_grokking · 2022-12-27
The Therac-25 used a PDP-11 computer. So I assumed the software was written in C. It wasn't? I would also assume that most embedded software (e.g. in cars, spaceships, weapons, etc.) is written in C. But I see now it's indeed hard to come up with definitive sources. A few failures can be found here (and it's easy to google some more): https://embeddedartistry.com/fieldatlas/historical-software-accidents-… But sadly no reference to the used languages anywhere there. So I forward the question as I'm now also unsure: Has anybody definitive sources that prove the absence of C code in the known fatal accidents?
hemapani · 2022-09-07
this book is a very good discussion about debugging, "Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems", https://embeddedartistry.com/blog/2017/09/06/debugging-9-indispensable…
nurettin · 2020-07-22
The code to parse and populate commandline arguments comes from the linker, and is part of the generated binary, not the standard library. Here's a much better explanation https://embeddedartistry.com/blog/2019/04/08/a-general-overview-of-wha…
blondin · 2020-01-19
i actually wrote that down as side project idea yesterday! glad to see someone doing it. i have a different set of documents in mind though. my list is more developer oriented. here's the kind i wanted: - project readme (from simple to very involved) - pull requests - open source licenses (i think GitHub does this right?) - code of conduct - code testing template - benchmarks i also bookmarked these links: https://embeddedartistry.com/templates https://www.sans.org/security-resources/policies (this one is an old one i had not sure how i even stumble upon it...)

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close