Sitemap

5 Things I Learnt Creating My Own Hardware as a Software Engineer

4 min readAug 25, 2025

Turning code into solutions has been my bread and butter in one form or another for over 10 years now. I can get lost for hours working on a little command-line utility or a fully fledged backend API. Working on software is my ultimate pleasure, or so I thought. Every now and again, I’d hear whispers from the dark side… “come play”, “you know you want to touch me”, “my soft moi — ” wait, wait, wrong fantasy. The world of electronics was always beckoning, teasing me to come over to the dark side. Although I actually studied electronic engineering, I quickly moved into a role as a software engineer, leaving the hardware world behind. That all changed a couple of years ago when I decided to take a peek over the wall with my first hardware project, an ESP32-based Bluetooth speaker. Ever since, I’ve been working on hardware improvements for my speaker or tinkering with new designs like a LoRaWAN-based bike tracker, wherever possible. Here are five things that I’ve learn from creating my own hardware projects as a software engineer.

1. Read the datasheet, and then reread it a couple more times

A datasheet is like a wise old man who has all the knowledge in the world, and despite all this knowledge, still decides to explain it to you in riddles. This magical document describes exactly how a component is intended to be used, how it behaves and what you need to do to break it. Depending on the component, it can range from a couple of pages to thousands of pages. Everything you need to know about the component can be found in the datasheet. It might not always be where you expect it; it might be some obscure footnote, but it’s all there. Reading the datasheet multiple times will help you avoid unnecessary hardware revisions, hours wasted debugging hardware and firmware. All in all, read the datasheet, and then re-read it a couple more times to avoid wasting time and money.

Press enter or click to view image in full size

2. It pays to get it right the first time

Being a software engineer, I come from a world where code is cheap and fixing or refactoring things here and there is the norm. Not 100% sure something is going to work as intended? Just push the changes, and we can fix them later if needed. The hardware world is not so forgiving, and this is something that I needed to get used to. Each hardware revision takes time and money to produce. Sometimes switching a pin on the controller means rerouting an entire section of the PCB, taking hours. Then this needs to be physically produced, which is not free. Fortunately, rapid PCB prototyping has become extremely affordable, but this doesn’t mean it’s free. You’re still paying 25–100 EUR for each mistake you didn’t catch before manufacturing your PCB. It pays to be thorough and try your utmost to get it right the first time. Yes, mistakes happen, and that’s normal, just don’t let careless rushing cost you money.

3. When in doubt, check for reference designs

Most manufacturers actually want you to use their component in your design. They will often include a reference design for the component you’re looking at, in one or more configurations where applicable. If you’re in doubt about how to use a specific component, i.e. a switching regulator or even a microcontroller, check the datasheet or supporting documentation for reference designs. These are pre-built designs, often with component values already specified. You can use these reference designs as is or use the design equations to tweak them to your desired requirements. For me, this was a great starting point for most of the components in my designs.

4. Not all component values come in all sizes

This might sound like a no-brainer, but this one took me a couple (yes, a couple) times to figure out. When selecting surface mount components like capacitors, inductors and power resistors, it’s important to remember that not all component values are available in all package sizes. It’s easy to design your PCB using 0805 (a common hand-solderable surface mount size) capacitors, but you might not actually be able to find capacitors with that value in 0805. This is especially true as the capacitance value goes up. Before choosing a specific package/footprint for a capacitor, inductor or resistor, make sure that the specific value is available in the package you intend to use. For most decoupling capacitors and pull-up/down resistors, this shouldn’t be an issue, but keep an eye out for capacitors and inductors around any power supply circuitry.

5. Capacitors are sneaky little liars

What if I told you that the little capacitance value on your favourite capacitor is actually a lie? The actual capacitance value of a capacitor is affected by both temperature and the DC voltage applied across the terminals. The latter is known as DC bias derating. Multilayer Ceramic Capacitor (MLCC) capacitors are particularly affected by DC bias derating and should be considered when designing. Something that I didn’t initially understand was that a capacitor's rated voltage is not the intended operating voltage, but instead the maximum rated voltage. Using a capacitor at or near this rated voltage not only reduces its lifespan, but often greatly reduces the effective capacitance. When designs include capacitors, ensure they are used well within their voltage limits and consider the DC bias derating of the capacitance value.

Conclusion

The world of electronic hardware design is a dark and mysterious place, but full of fun and adventure. If you’ve ever had the urge to work on something hardware-related, I would highly recommend taking the plunge. It’s a surprisingly accessible field, with tons of resources as free tools to help along the way. And of course, if you’d like to hear more or chat about your next hardware project, find me on LinkedIn and send me a message.

--

--

Keagan Ladds
Keagan Ladds

Written by Keagan Ladds

Software engineer @ Tesla & serial tinkerer, writing about the tech things that keep me up at night.

Responses (1)