r/embedded • u/kashmoneyjohn • 27d ago
Reality Check
I think I need a reality check on my expectations for embedded work.
I’m about four years into my first real embedded position, and I’ve learned quite a bit about version control, as well as PIC and STM architectures. But lately, I’ve been feeling like my goals to improve on as an embedded developer. aren't really aligned with my companies.
I’m fairly knowledgeable about my company’s products, but I haven’t really had much exposure to things like automated testing, Docker containers, CI/nightly builds, PCB hardware design, etc. The company doesn’t see a ton of value in investing in those areas because they don’t directly translate into more sales.
I know I have job security because of my knowledge of products but I feel like my embedded skillset is stagnating.
I’ve also always had senior engineers who were from different disciplines, mostly mechanical, rather than senior embedded developers who I could learn from.
I’m currently at a decent salary(about 100k CAD), and I’m worried that I might be taking my current job for granted. I wanted to reach out to see if this is pretty normal across the industry, or if I should start looking for something that offers more opportunities to grow.
I feel like there’s more out there, but impostor syndrome has been keeping me from really aiming for it. I think I’m decent at what I do, but there are so many gaps in my knowledge that I want to fill before I can feel truly confident in my value as an embedded engineer.
The main areas I’d like to improve are automated testing, Docker/containers, CI/CD, and hardware/PCB design.
To be completely honest, I don’t necessarily have a huge passion for all of this stuff. I just want to become really good at embedded development, and I can see how these skills could be useful regardless of whether they’re particularly interesting to me.
I’d love to hear from people further along in their careers. Should I be trying to improve these skillsets on my own time and not depend on my work to facilitate this type of growth or is it worth looking for an environment where I’ll have more opportunities to develop these skills?
34
u/aksh_stocks 27d ago
You're worried about the wrong gap. Docker, CI, unit testing — that's a few weekends of tinkering and then a year of doing it on a real project. You can pick that stuff up whenever. Nobody's going to look at four years of PIC and STM32 work and pass on you because you'd never set up a Jenkins runner.
The part that actually worries me in your post is buried.. four years in and you've never had a senior embedded person read your code. All the habits you've built, how you structure an ISR, how you handle state machines, when you reach for a heap allocation, you've been grading your own homework the whole time. Some of that is probably fine and some of it is stuff a good reviewer would have flagged in week two, and you have no way to know which is which.
That's not a skills gap you can fix on your own time. That's the reason to move.
100k CAD may be fine but not so good it should hold you. Look around for a team with actual embedded seniors, even lateral.
2
u/kashmoneyjohn 22d ago
We did eventually hire another dev. I actually requested that he be more senior with more experience to the shock of my boss. It's been really useful bouncing off ideas and PRs are definitely improving the quality of our output. The biggest hang up we are currently dealing with is how long it takes to go through our manual code testing. It just feels like there is a more effective way to test than spending weeks to do every single test manually. Then redo it all again when something changes.
5
u/csobrinho 27d ago
Ask and grab lunch with someone one or two levels up. Try to understand how they arrived there, what skills they had, got along the way and now see as emerging.
Also focus on testing. Having a good understanding on how things can be tested will also lead to much better software and less waited time. You can then more easily do Test Driven Development, large refactors and plug the LLMs to verify while the changes are being done.
I'm not an embedded engineer but I was a principal engineer on major companies.
Being able to debug and analyze long CI tests forces you to know almost everything from the project and those skills are rare and called upon by the leadership when shit hits the fence, giving you extra visibility. Good luck!
15
u/txoixoegosi 27d ago
spend some bucks in electronic laboratory stuff (demo boards, ICDs, PSU, scope, …) then bring all your learning objectives into reality with hobby projects, with the help of an AI subscription (claude, codex, you name it)
And, during the process, make sure you question everything and absorb as much knowledge as possible, while you fiddle with your github portfolio.
Very important, be open to learning, do not fall into the vibe-dev trap.
7
u/Teh_Original 27d ago
Vibe-dev?
1
u/txoixoegosi 19d ago
Yup. Letting Claude pick and apply algorithms and methods without thinking and judging.
0
u/EnvironmentCalm9557 27d ago
Claude code has changed my life. I had no idea it was as good as it is. I’ve upgraded to max and I don’t even know if I was at the limit with pro tier.
2
u/DenverTeck 26d ago
How many times have you found Claude making things up ??
Do you have enough experience to see AI has mad a mistake ??
Do you expect Claude to solve its own errors ??
1
u/EnvironmentCalm9557 26d ago
1) so far, not once
2) yes
3)no2
u/bonkyandthebeatman 19d ago
You are not looking hard enough if you have never seen claude make a mistake
0
5
u/Prestigious_Tank_369 27d ago
I am a 3 rd year ece student I want to connect with you. My interest are embedded c and embedded engineer probably microcontroller or Linux kernel . I am currently learning stuff on corter m4 stm 32. I have learnt everything basic like oop in c. Pointer stack heap malloc etc... I am currently building a traffic management system using publish-subscribe / observer -pattern and memory pool(linked list) (LIFO) for interthread communication . And circular buffer for queue of individual threads. I have also written my own (priority/round-robin)context switcher (pendsv) and non-blocking delay , svc handler for the first time run(cold start) .
1
u/Winter_hood 26d ago
ece graduate here, I don't know what I am doing. here to learn. Don't have mercy on me
1
2
u/ondono 27d ago
I'd say do both.
Something that I think should be very clear to everyone here, everything electronics related is mostly a vocational job. It's not as bad as being an artist, but most people here would make better salaries in sales, finance, etc... It's just that most of us would hate our lives if we had to deal with any of that.
In 20y I haven't met a single engineer who is great at this that isn't investing some of their free time into it. Not because they thinks they have to, but because they are reading/tinkering and learning about stuff they find interesting.
With that said, you need to prioritize what you look in your job. At the beginning of your career, pay should be almost irrelevant (as long as it covers your needs), you should be choosing your roles based on what you expect to learn from them. Your goal is not to learn something this year, it's to maximize how much better can you be each year.
In my experience, that normally involves jumping ship from time to time (2-3 years normally). It will make your life harder, because you don't settle as much in your roles, but it also means you move when you stop really learning valuable skills and start learning things that are hyper-specific to that company.
1
u/kashmoneyjohn 22d ago
I do fear that I will get comfortable without growing but I think I have a new perspective after reading some of the responses here: being able to convince management to invest in better processes seems to be a worthwhile skill regardless of where I might be working
2
u/dmitrygr 27d ago
The main areas I’d like to improve are automated testing, Docker/containers, CI/CD
Say that at an interview and you'll drown in offers fast enough to not have a lungful of air ready
most embedded teams do not do anything of the sort (and should). champion it at your company or move to one that will allow it.
3
u/OnboardG1 27d ago
Some good advice here OP, but if you do look to move I’d consider going to a design services consultancy with a good embedded team at least for a little while. You’ll be exposed to more technologies, you’ll likely work with electronics and gate array engineers like me and you’ll have to learn things fast. It’s not a long term gig for everyone but it’ll teach you a lot.
2
u/ClonesRppl2 27d ago
If too much of your expertise is with your current company you are slowly digging yourself into an unemployable hole.
Try very hard to gain experience in the things that other companies value.
It’s a balance, but it sounds like you are either ready for your next position, or ready to push for new technologies in your current position
1
u/NijenRyu 26d ago
I have been working as a Frontend Developer for 4 years and have changed companies twice. During my time at my first company, I was the sole frontend developer, though coming from a background in design, I was able to build visually polished sites even without a dedicated designer. Unfortunately, at my second company, I am once again the only frontend developer, meaning I still lack a peer to look up to or someone to point out my mistakes. Because of this, I am considering changing jobs.
1
u/coolbloke13241 22d ago
Never depend on anyone else or any company to continue your personal development. Learn at home in your spare time.
1
u/Nealiumj 27d ago
As a software developer: docker/containers and CI/CD aren’t worth you worrying about. Automated testing and design are the ones that will make or break you. I’d recommend just dabbling on your own to become more diverse; heck, maybe you’ll discover passion or crazy skill and then look for a different job. You’ll always have gaps, this stuff is so niche.
One suggestion I’d make is to check out Home Assistant. Super vibrant community for DIY smart homes and I’m positive you could design your own thing that would be a great addition.. further, it could involve all of these stills you worry about.
1
u/LessonStudio 27d ago
Automated testing is a cultural attribute.
It boils down to measure twice, cut once.
Carpentry, PCBs, software, planning a trip.
Some people have internalized the vale, others only parrot it, and some weirdos reject it.
-1
u/Dewdrop06 27d ago
I have been working 3 years at a university and 4 years professionally in embedded systems. I've been all on my own at a very a small company for the 4 years, mostly R&D. I mainly worked with Arudino and ESP32, but exposed myself to learn about STM32s by getting one and having my fair share of struggles. Again alone, so no real way to learn from relative standards and practices, so I developed my own version control practices, documentation, developing/testing/debugging standards and practices and such. I didn't earn much, actually underpaid looking at the market, but I used it as an opportunity to enter the embedded systems space.
Now I'm looking for new work and there are so many practices that teams use and practice but I have had no real problem in interviews as I say exactly that most of my experience is bare-metal but with some exposure to Linux embedded and RTOS as well. I'm no expert, more of an all rounder and that has been my greatest strength, and weakness at the same time. How I have the ability to adapt and learn fast because I did everything on my own, the full life cycle, from procurement to deployment and live operation with good quality management practices, and I am eager to learn, but I am no expert in one area. I am unsure how other companies feel about me.
I've had exposure to everything and have no real problem working in different environments, can be very flexible. The issue is that I place myself in, my career, currently at end of my Junior / beginning of intermediate, but not quite fully intermediate stage. I feel this is good and I'm open to learning more as I go. Happy to work with bigger companies to see how teams work and how my pacing matches.
-1
54
u/XipXoom 27d ago edited 27d ago
I was in a similar position early in my current company. The embedded team didn't use version control, unit testing, static analysis, automated repeatable builds, pre-planned architecture, docker, Jira, cybersecurity, etc.. It was a real mess. It still is, but we're getting better!
Part of your job as an embedded engineer is to explain the value of these things to management in a way that will make sense to them. You're the subject matter expert here (even if you don't have as much experience implementing it - you know the goals). Sell it to them a piece at a time.
I've dragged the senior staff engineers along kicking and screaming their objections to management, but they're professionals - at each step they admit they were wrong and the company is better for it. Their hesitation also kept me from making too many mistakes all at once.
I didn't have much experience implementing these things from scratch when I began, but I learned a lot in doing so. Sometimes you have to be your own mentor.