Who would be the winner of a ‘happy with my work even after 20 years’ contest if implemented globally within the software engineers?
… We would place our bets on several baskets, yet for sure a significant part would weight on the embedded software developer basket. While the rest of the professionals – say, business managers, artists, lawyers, doctors etc. – might believe that the only thing software engineers need to know is how to code and to stay updated to the latest technological developments, there is a huge part of their work that is kept in shadow – intentionally, dare we joke? J So that the competition does not become too tight? J – and that is the source of immense work satisfaction: diversity of tasks throughout one’s career.
The keywords that describe best what an embedded software engineer does are plenty – all conveying towards something that most of the employees of the world aim for. Novelty. Exercise vocation. Create. Connect.
Our 20-year experience in the field made us believe that embedded software engineer is a vocation. It is known for being a niche discipline within electronic engineering, more so than, say, desktop development. Yet it remains highly competitive at all levels. This is, with high degree of certainty, what makes an embedded software developer have a genuine passion and interest for technology and troubleshooting technical problems.
Why do most talented IT engineers become embedded software developers?
IoT devices are now part of our everyday lives and the general pace of technological change and innovation continues to gather unthought-of speed. There has never been a more exciting time to be a part of the embedded software community and become a professional in the field than the days we live in.
The demand for advanced and intelligent technology is largely consumer-driven and, as such, companies adapt their products and create new ones continuously. The need for qualified, experienced embedded software developers becomes implicit… and strong.
So what does an embedded software developer do?
He or she is responsible for designing, developing, optimising and implementing the software that is programmed into devices built around a microprocessor. They write code to solve problems and implement systems that make a physical hardware device work through software. From the concept right through to delivery; from the briefing, writing, testing and fixing stages to final release: these all fall into an embedded software developer’s ‘to do’ list.
To become an embedded software developer one needs a degree in computer engineering or a related field, as well as expertise in C/C++ programming, software configuration management (using tools such as Perforce, Git or SVN) and knowledge of specialised techniques for embedded programming.
Additionally, we, at VON Consulting, recommend for such positions that the future embedded software engineer in a client company’s team has a proven ability to read electronics schematics and troubleshoot problems and, ideally, experience with project management and software development life cycle.
Certainly, the basics presented below are a requirement, and we list them for the sake of accuracy that an embedded developer would always fancy:
- Communication protocols
- Algorithms
- Memory
- Design patterns
- Basic electronics
- Build environments
- Concurrent/parallel programming
- Real Time Operating Sytems
- Microprocessor and microcontroller fundamentals
Similar to business intelligence analyst and DevOps engineer, an embedded software engineer would preferably feel comfortable collaborating with other teams and third parties – e.g. clients. Ideally, they participate in briefing meetings with the latter, following that they will be proposing solutions and keeping them informed as the project progresses.
Individualistic embedded developers are also good assets to companies, working on specific topics, yet the preference goes towards team-players. Like almost anywhere else in our interconnected world.