How to Learn Embedded Systems While Working Full-Time: Lessons from an Amazon Robotics Engineer

I’ve followed Steve Branam on LinkedIn for a while and have always admired his steady growth through high-performing companies like iRobot, Dojo Five, and now Amazon Robotics. The embedded systems field is notoriously conservative when it comes to adopting new tools and programming languages, yet the demands of the industry continue to evolve. Upskilling isn’t optional; it’s an essential part of our job. I reached out to Steve to learn how he keeps pace with emerging technologies while juggling the responsibilities of a full-time role. His thoughtful, no-nonsense approach offers a roadmap for anyone looking to grow their skills without burning out.

Steve is currently a Senior Software Development Engineer at Amazon helping to create the next generation of fulfillment robots.

Interview with Steve

Can you give a bit of information about your background and current role?

I started out in college in 1978 to be a mechanical engineer, but dropped out early sophomore year. You can read about that and how I dealt with it in How To Ace Calculus.

The one course where I really did well freshman year was Fortran programming. I got a job as a computer operator on the basis of that. There I learned Pascal and assembly and had lots of opportunities to play with the system. Then I learned C and 10 years later C++. I’ve had a variety of jobs that were mostly some form of embedded system, in data communications and consumer products, plus some backend cloud server work. You can go to your favorite electronics retailer and buy products from iRobot, SimpliSafe, and Sonos that have a little bit of my code in them. Now I’m a senior Software Development Engineer at Amazon Robotics.

How did you structure your learning? Did you follow a course, read books, or build projects?

I’m mostly self-taught, first via books, then with online tutorials and videos. Throughout I’ve always built small personal learning projects to get hands-on practice at whatever I was studying. Overall, it was fairly unstructured. Before the Internet I would find random interesting books at the bookstore that would be helpful. Things got more structured with the vast array of information available online. I could find material on specific subjects. I could also order any book online, so they became much more accessible.

I like to get material from multiple sources, because each teacher will have a different coverage, depth, emphasis, and presentation. Broad coverage means filling in the gaps. I also look at footnotes and bibliographies and chain backwards through materials. To get through the volume of information, I’ll do a first-sentence-of-every-paragraph skim to get an overview, then go back to parts and read them fully for focused information. See Using Speed Reading Skimming.

As I’m sure you’ve found, teaching is a great way to learn. See Sodoto: See One, Do One, Teach One. That’s part of why I write a lot, because it helps me organize my thoughts and dig into details. I write up a lot of informal “engineering notes” documents at work in whatever wiki system they have.

What resources (books, courses, tutorials) were most helpful to you?

I’ve always been a lifelong learner and reader. Books have been my favorite medium. But modern technology has made formal and informal video instruction explode, so I watch a lot of videos (thank you for all your fantastic lessons!). I also read a lot of online tutorials and listen to podcasts.

How did you manage your time while working full-time?

I look for random available time slots. Might be 20 minutes in the morning before work, half an hour in the evening, an hour or two on the weekend. That can add up to 2-10 hours a week. I always have a couple books open around the house, though sometimes I won’t come back to one for days or weeks. I use the pomodoro technique when I need to invest some extra time (see Using The Pomodoro Technique). I try to do things in parallel when I can, so I might read a book while riding as a passenger, watch a video while working out, or listen to a podcast while driving or doing housework. I often do videos and podcasts at 2x speed, slowing down and going back over a part if needed. That’s one of the great things about modern media, you have multiple to choose from to fit the time available.

What were some of the biggest challenges you faced while learning?

Time is always the biggest challenge. I’m infinitely curious and love to know how things work under the covers. I want to be able to consume far more information than I’m able to. I have a 6-foot stack of books waiting to be read. I’m jealous of Bill Gates’ reading speed, reported to be 150 pages per hour with high comprehension.

There will be times when I’m not getting something, maybe because I don’t have sufficient background to understand it. That’s when I go looking for other resources to fill in the background or provide a different take on the material.

How did you stay motivated, especially during busy or difficult periods? 

I enjoy the learning process. Just knowing and understanding more makes me feel good. That’s reinforced by the fact that many times over my career that knowledge has later proved useful for work, might be a few weeks or months or even years later. That’s true even of random things I went off and learned about, serendipitously they become pragmatically useful. One of my favorite quotes, from Louis Pasteur: “Chance favors the prepared mind.” So I know that some portion of what I learn will be directly useful. That’s the ROI on the time and effort I invest learning it.

How did applying what you learned help reinforce your knowledge? Did you build any personal or professional projects?

Hands-on application always helps. That’s what really drills the knowledge into your head. I’ve always done little throw-away learning projects. The end product isn’t the valuable part, the process of doing it is. That gives me the opportunity to fumble through the mistakes and misunderstandings and clear them up.

Have any of your learning efforts led to opportunities, either in a new job/role or in your current role?

Yes! Back in the early 90’s after seeing layoffs in the industry (the only thing new about current high tech layoffs is the scale), I made a conscious decision that any new job I took had to include something that was new to me. Could be new programming language, new technology, new methods, new processes and practices, new hardware. That meant I was always growing my knowledge, allowing me to leapfrog from one job to another with new capability. My current role is robotics at Amazon. I learned the basics of that working at iRobot. I got the knowledge for getting that job at Sonos and Simplisafe. I learned things I needed for those jobs at Juniper Networks. I learned what I needed there at Digital Equipment Corporation. I got that job based on experience I gained at Texas Instruments, where I got that first computer operator job. That has given me the versatility to remain marketable through varying industry conditions. Just with Amazon over the years, I’ve had recruiters contact me about roles at AWS cloud, Project Kuiper communications satellites, and Amazon Robotics.

What advice would you give to someone who wants to start learning embedded systems while working full-time?  

I have a blog post! Several, in fact! This one is a good starting point, with links to others: Skills For Embedded Systems Software Developers. Embedded systems work is multidisciplinary, so you need a combination of software and hardware, electronics and mechanics. It’s also insanely broad, with many specializations. Expect to need at least 6 months if you already have some good background, but more likely 1 to 2 years. It’s possible to get entry with a limited subset of knowledge and then build from there on the job, similar to what I did. The challenge is picking the right subset to match the available positions.

The key thing is to invest some time and money in books and hands-on practice materials. It doesn’t have to be a lot of money, a few hundred dollars US can be a good start. We live in a time when a vast amount of knowledge is available at low cost, and the hardware needed to do things hands-on is cheap and accessible. Mix study time with hands-on time. Don’t be afraid of mistakes. They make great learning opportunities, and are good preparation for the demands of embedded system work. It takes a lot of patience and high tolerance for failure. It’s the combination of Thomas Edison and Nikola Tesla: “Genius is one percent inspiration and ninety-nine percent perspiration.” and “Just a little theory and calculation would have saved him ninety percent of his labor.”

What are you currently teaching yourself (or what do you have plans to learn next)?

I’m currently diving into robotics control. That means having to re-learn some of the math I learned 40 years ago and then never used. So in addition to an advanced text on robotics, I got Linear Algebra for Dummies and The Manga Guide to Linear Algebra (remember, multiple sources, and teach me like I’m a 5-year-old!). I’m also learning Rust, as well as reviewing Bjarne Stroustrup’s latest editions of his C++ books (the language has evolved a lot since I first learned it).

Is there anything I missed that you’d like to tell other people about upskilling for professional roles (especially in embedded systems)?

Persistence is key. I’ll repeat that embedded systems work takes a lot of patience and high tolerance for failure. That’s rewarded by the dopamine hit you get when that LED finally blinks. Or the robot moves the way you want it to. The physical feedback you get of actually seeing something happen because you made it do that is one of the great satisfactions and draws of embedded systems. All the pain and frustration of getting there vanishes.

Final Thoughts

Talking with Steve reminded me that there’s no single path to becoming great at what you do; it’s a series of small, intentional steps. Whether it’s reading a few pages during breakfast, experimenting with a weekend project, or jotting down thoughts in a work wiki, it all adds up. What matters most is showing up with curiosity and persistence, even when it’s hard or progress feels slow.

If you’re looking for a place to start, don’t wait for the perfect course or the ideal free weekend. Pick something small and dig in. Stay curious. Keep building. And trust that the work you’re putting in today will pay off tomorrow.You can find more of Steve’s reflections and resources on his blog or by connecting with him on LinkedIn.

Leave a Reply

Your email address will not be published. Required fields are marked *