What is a low-level software engineer?
After our first episode on the job of embedded systems engineer, for this second episode of our series “Job Of The Month”, we would like to shed some light on the practice and career of low-level software engineers.
Our consultant, Richard, has agreed to share with you his career path and to tell us more about his job.
Richard, when has a kid, did you wish to become an engineer?
Surprisingly, as far back as I can remember, I wanted to become a chemist. Then later on, I became an electronics engineer because I wanted to reprogram cars with my brother.
How did you become an engineer?
In reality, my career choice was defined by my passions. As a little boy, I was fascinated by computers and their environment, from video games to PC repair, and so I wanted my job to be related to this field that I am passionate about.
With the idea of becoming a electronic technician in mind, I decided to study both fields: electronics and computer science.
From there, I started with a STI in Electrical Engineering and then a DUT in Electrical Engineering and Industrial Computing for 2 years. Finally, I completed an Engineering Degree with a specialization in Electrical Engineering over a period of 3 years, including 2 × 6 months of professional internships:
- 6 months in development of an HMI interface for an electric tramway
- 6 months at T&S, developing an electronic control card for a car door, on a FlexRay communication network.
What is a low-level software engineer?
To be honest, this is a very generic question. To simplify, a low-level SW ENG is a person with knowledge in low-level software (DEV in C / ASM) and programming rules.
Today, if I were to put a name tag on my job, it would be : Software Engineer specialized in BSW Autosar Stack & Network System (CAN & Flexray)
What does this barbaric title mean 😊 ?
To begin, to have an overview of the terms used, we usually break down a product into 3 sub-parts:
- The application software layer
- The low-level software layer (BSW: Basic Software)
- The Hardware (HW) layer
In a few words, I work on the low-level layer of a SW, which is more commonly called in our domain “BSW” (Basic Software). Inside that layer, all the functionalities will allow our SW to communicate with the outside (the other electronic boards of the network).
My specialization is focused on the part that manages the communication with the network and more specifically the “FlexRay”.
In a very simplified way, the goal of this practice y is to allow our software to communicate with the outside world, thus to transmit and receive information on the network.
What does a low-level software engineer actually do? What are his daily assignments?
Honestly, I do not know if there is a single standard answer for our field of work. The engineering profession is a generally dynamic one, and every day we are confronted with different and new problematics, so we don’t have a “typical” day.
In our daily life, we still have to communicate. This is critical! Especially when we work on “big” projects. In these environments, there is a huge organization, so you have to communicate with countless people to successfully complete your project.
The second major aspect is the technical analysis and understanding of the system environment.
Then, an aspect focused on “doing” with implementation, integration, testing, etc.
And finally, reporting (project manager, customer, etc.) which will again lead to communication.
What other "professions" do you interact with on a daily basis?
We are brought to exchange with many bodies of work, be it at the application, hardware (HW), or software (SW), Dev basic software (BSW) level (Diagnostics, OS, MCAL, Mode Mngt, Memory etc…)
What tools do you use to get the work done?
We use many tools on a daily basis, here is a non-exhaustive list:
- ALM / ClearQuest / JIRA / Worx : Planning and Project Management
- Autosar Configurator Tool (Ecu Workx, AEEE, DaVinci)
- Doors : Requirement Management
- Vector CANoe – CANalyzer / Customer Internal Tool : Testing & Measurement
- C : Programming
- Autosar Standards
- MISRA Rules
Do you need special skills to be good at your job?
To be a step ahead in my job, you need to have a good sense of analysis and above all excellent communication skills.
What do you like the most in your job? the least?
As already explained in the above, what I like most is the dynamics of the activities, because I am also involved in project management.
What is sometimes difficult is to define the limits of our working time because we are often involved in multiple activities and the investment to be made is often difficult to anticipate.
Would you have any advice for someone who would like to become a low-level soft engineer?
You really have to be passionate about embedded software, work in a team, and especially like to communicate.
How do you feel at T&S?
After a 10-year career, I feel very comfortable at T&S.