Interview with Miroslav Bozic, Embedded Team Lead
First of all, what do you think are the qualities of a great engineer?
In most cases, a good engineer is a person who is ready to build personal expertise, continuously throughout their career. Since the changes in the technological world happen rapidly, a good engineer stays on top of recent developments in the industry and quickly improves his competence and knowledge.
Most of the time, engineers work with clients who have the finances and the ideas but not enough knowledge and expertise to explain in detail what they are looking for. So, to begin with, an engineer should have excellent communication skills. This involves the ability to translate complex technical language into plain English that most of the interlocutors can understand. Once the requirements are defined, a good engineer should pay attention to the details. The system should be seen from all possible angles and each potential error that can cause an entire structure to collapse should be reviewed thoroughly. This usually goes together with the ability to think logically.
A good engineer can make sense of complex systems and understand how things work and how problems arise.
A good engineer will combine excellent problem-solving skills together with strong technical knowledge, used to solve any problem that comes their way. This is a highly creative individual, who always thinks of new and innovative ways to develop new systems and get the existing ones to work more efficiently. Here in HTEC, above all else, we appreciate our engineers being good people. A great engineer is always an integral part of a great team, and an amazing team always represents the synergy of the amazing people working together towards the same goal, doing great things in the most efficient way.
How important is the talent there and how much depends on hard work?
Great engineers are people who like to be challenged and who provide additional value and make a difference every day. They have the sense and the ability to feel the problem they should solve. Yes, it’s all about talent, and great engineering team is built on talent. But, I have to say that without hard work, the chances of building an impressive engineering team are small. As I said, the technology is developing rapidly, and without hard work, neither one engineer nor a whole team of them would be capable of tracking this development using talent only.
When I say hard work, I mean two things. Firstly, from one point of view, every great engineer wants a chance to learn and grow. Learning and growing always come together with hard work. Secondly, happy engineers are those who feel challenged and noticed, and who believe they truly make a difference. So, talent is massively important, but so is the management of talent. Moving engineers from one project to another, release after release, and according to the priority is not productive. People build expertise and a strong sense of ownership for what they do, which leads to higher motivation and better output, so it is hard work to patently select the right people for the right projects.
Problem-solving skills are very important in HTEC. How do you find engineers that have those skills?
The main difference between the embedded system development and other technologies is based on the fact that the embedded system engineers are most of the time developing projects from scratch. What does that mean? It means that, if you want to develop the firmware, the hardware needs to be developed first. To develop the hardware, you will need to select the appropriate components, to connect these components properly and believe that neither will fail once the power supply is on. Keeping this in mind, you have to agree that the systems built from scratch are susceptible to errors and to solve any problem during the development you need to have developed the sixth sense for the problem-solving.
Sometimes, this is a small bug that can be fixed with a firmware patch, but sometimes it is something coming from the signal level and which should be examined with more patience. The knowledge of the system combined with the sixth sense for problem-solving is crucial here. Every engineer who wants to work in our team needs to have a clear understanding of these requirements and must love the job they are doing. Somehow, embedded development becomes a lifestyle. It's not a job that you choose to do from a sea of other jobs, you have to love it and be passionate about it.
Your team has a special dynamic and you seem to be quite close. How do you function together and how did you achieve that?
As I already mentioned, one embedded system is a combination of hardware and software. If one of these doesn’t work properly, the complete system could fail. To avoid this, a good engineering team needs to collaborate, get things done and communicate all the time. Most of the time we are making systems from scratch, which is always risky.
You need to pay attention to all the details and to carefully select components that will meet all the requirements. Mostly, projects last for several months and the first thing that should be developed and manufactured is the hardware of the system. Once the hardware is developed the device can be completed and firmware can be integrated and finalized. If some detail is missed, it could cause hardware failure, or the application will simply fail to run due to lack of performance. These are very painful situations that bring you to the beginning, which costs a lot of time and the money. This should be avoided by careful planning.
We have introduced a system design phase and each project starts with a requirements study and detailed system planning. During this phase, we read the requirements, communicate with the client, communicate with each other, define hardware and firmware architecture, etc. We do everything to avoid any problems that can come after several months of development and bring us to where we started.
After this phase, everything is defined. Major components are selected, and each team member can begin the implementation of their part. All parts need to work together, so we keep communicating and planning each task briefly. We are trying to be agile as much as possible. However, sometimes this can be hard since things happen much slower when you are developing hardware.
Which kind of problems are you solving together and what are some of the projects you have worked on?
Most of the time we are working on system design and integration for industrial and medical applications. We have worked on Sitara ARM9 based medical imaging system, used to measure the health of the skin. Another project to mention in the medical area is the telemedicine wearable 3 and 12 leads ECG monitor, HUMEDS, capable to record, store and upload heartbeat information to the cloud.
Except medical, we have designed several industrial devices. These include an emergency phone for elevators based on Sitara Cortex A8 embedded processor, a smart metering PLC modem and a data concentrator and series of intelligent routers for M2M/IoT/Industrial Internet and business connectivity solutions. The latest project I have been leading is SUBNETS, a DARPA funded project where we are designing and developing a closed/open loop neurostimulation device that will be implanted into the human body.
What was the most challenging project you have worked on as a team, and what did you learn from it?
In our team, each project is a challenge. Some are smaller, some are bigger. But since we are doing things from scratch, it is always challenging to get things done. Over the years, we have learned that it is important to work as a team. Communicate and debate, listen to each other and encourage others’ opinions. Once we make a decision, we move – together. No looking back!