At Very, our goal is to break through the stereotype of “hardware is hard”, and build embedded systems at a rapid and predictable pace (we’re already making headway thanks to an awesome framework called Nerves).
To do this effectively, we’re happy to employ some of the industry’s best embedded development experts. Check out what makes embedded developers different, the skills they need, and the five essential items any successful embedded developer should have on their desk.
What’s Different About Embedded Systems Developers?
The IoT development process is complex and requires a highly collaborative, multi-disciplinary team of software engineers, product designers, and mechanical and electrical engineers to bring IoT devices to life.
Critically, IoT development teams also need embedded systems developers to manage the hardware itself and the control systems that operate it. Rather than concerning themselves too much with lines and lines of code, they’re focused more on the intersection between IoT and mechanical engineering or electrical engineering. Instead of working with algorithms and data, their goal is to make the physical connected device work.
Embedded developers have technical expertise in hardware design for embedded systems including schematic capture and PCB layout. In addition, they should be prepared to work with manufacturers and PCB design subcontractors as necessary. Deep expertise in firmware development may also put you at an advantage if you’re seeking an embedded development position, as IoT firmware security and OTA updates are incredibly important yet notoriously difficult to get right.
Skills Necessary for Embedded Development
To be a successful embedded developer, you’ll need skills in a variety of languages and technologies, including:
- Embedded C/C++, leveraging the Arduino framework where possible
- IoT platforms like PlatformIO for embedded C/C++ projects
- Python for scripting and build automation.
- Nerves for embedded Linux
- AWS IoT for MQTT pubsub for large-scale deployments
- Elixir/Phoenix for ultra-low latency web sockets and generic web backends.
Other software tools you might leverage throughout various projects include:
- React & React Native
- Swift & Objective C
- Ruby on Rails
- Serverless Framework
Additionally, make sure you’re familiar with networking systems. Network failure is ever-present on remote wireless links, so you should have experience in how to deal with network failures and designing embedded applications to perform reliably when they occur..
5 Essential Items on Your Desk for Embedded Development
While most home offices just need a monitor and keyboard, embedded development is a different style of work altogether. Having a proper desk setup for embedded development is a must to keep yourself unblocked and productive. There are a few things that are necessary for embedded applications.
1. Proper Lighting for Your Development Environment
Let's get the basics first. Proper lighting is a good foundation to get you started. There’s nothing more frustrating than trying to hook something up or get a small wire into a breadboard with inadequate lighting. Small LED strips with switches are pretty inexpensive these days.
2. Powered USB Hub
Another item that is a must for your desk is a powered USB hub. These are often overlooked until you are trying to hook something up and realize you are out of USB ports, especially when developing with a MacBook (cough cough). One other reason to have one is that during development, you are having to hook up and unhook USB devices quite often. A powered USB hub just makes things a lot easier in that regard.
3. Multiple Development Boards
Now, let's get into the meat of things. Having multiple development boards you are working with on your desk at one time is a necessity. Why multiple? When developing, you may have one development board pulling an update or doing another action when you need to change something else. This can block you and increase your development time. Not to mention having multiple boards perform the same action can sometimes reveal problems you wouldn’t have seen otherwise. This can also help you rule out issues you may be having as well.
If you happen to be using a Raspberry Pi or Raspberry Pi Zero, we have custom-made Very branded mounts for these boards that also have mounting tabs for a breadboard! These can be downloaded and printed absolutely free. You can find them here.
Speaking of breadboards, they are also essential to an embedded developer. Having a breadboard with jumper cables can speed up your development time and also create situations on your desk the device might experience in the field. Not to mention all the other applications for which a breadboard can be used.
5. FTDI tty Serial to USB Converter
Lastly, an FTDI tty serial to USB converter is a must. It can let you interface to the device if you haven’t set up wireless connectivity yet. You can also communicate serially over USB sometimes. So, if you didn’t have this when you needed to communicate to the device, you would be blocked until you set up wireless connectivity.
Becoming an Embedded Software Engineer
Becoming an embedded software engineer is an exciting task, and these skills and must-have items for your desk will help you speed up your development and keep your wheels rolling.
If you’re looking to add embedded development experts to your team, Very is here to help with your next IoT development project. Get in touch today.