Trainee C++ Software Engineer
In this episode of the Spyrosoft People series, we’re visiting our office in Zagreb to talk with Božidar – an embedded software development intern. We’ve asked him to share his experiences during the interview process and tell us a bit about his Spyrosoft internship tasks.
Božidar, the stage is yours!
A little bit about me
Hello, my name is Božidar. I’m currently doing an embedded software developer internship in Spyrosoft in Zagreb. Ever since I left elementary school, I have been interested in technology and how people all over the world can benefit from it – from making their lives easier to making their work more efficient.
That led me to pursue my career in mechatronics in high- school and eventually made me continue the same path in college. As we speak, I am finishing my sixth out of six semesters at the Zagreb University of Applied Sciences, after which I will have a Bachelor’s degree in mechatronic engineering.
Since mechatronics is an interdisciplinary branch of engineering, throughout my high-school and college we had a lot of subjects covering a wide area of expertise, ranging from mechanical, electronic and electrical engineering systems, telecommunications, computer science etc. The subjects that intrigued me the most and seemed the most interesting to me were related to embedded systems.
About the embedded software engineering internship
Since the current semester is my last, we had to have professional practice in a company for the duration of 144 hours, which divided by 8 hours gives us 18 days. I started searching for a company that would accept me as an intern, mostly looking for firms on popular Croatian site joberty.hr, Facebook and LinkedIn.
After some time, I found that Spyrosoft was advertising job listings in one of the IT groups in Croatia and, although they weren’t searching at that time for any junior embedded/ C++ developer, I tried my shot and contacted them anyway for professional practice. My current colleague Boris soon contacted me and said that they were interested in accepting me as an intern and asked if we could arrange an interview.
The interview process
When I first arrived in the office for the interview, some of the people were having a break and were sitting on the couch talking to each other. I remember that it made an impression of a relaxed and nice atmosphere. I had to wait for around 5 minutes until recruitment specialists Boris and Maja came and then we proceeded into the conference room where we discussed my professional practice.
The interview was really nice. I felt welcomed by them. We were mostly talking about my experience in programming and embedded systems in general, what would I like to do/learn during the internship, how I see my career in the future, etc. After around 20 minutes, we were done with the interview and they accepted me for the internship. We also made arrangements about my starting date. It was nice of them to understand and take into account my college obligations. So I was allowed to pick when and how many hours per week I wanted to work. I even got the option to work from home if I wanted. Also, I forgot to mention that the internship was paid, which is quite a good benefit.
My first days as an embedded software engineering intern
My internship started and I was assigned a mentor – Dajana. Dajana is an experienced software engineer with a demonstrated history of working in the information technology and services industry. She has worked in the IT industry for more than 5 years and it is nice to have someone with that experience by my side.
I started working on my internship project/task, which I had previously discussed with Dajana before I even started working as an intern. One thing I liked about Dajana is that she didn’t impose the task on me without giving me a choice. Instead, she asked me in which direction I wanted to go with the task and what would I like to learn. She told me it would be easier for all of us if we worked on a task that we liked to work on, not only because it is easier and more productive, but it is also more enjoyable.
The internship task
After talking with Dajana, I concluded that I didn’t want to do firmware programming (e.g. writing drivers for various devices, sensors, peripherals etc.) for my internship task, so she didn’t give me a task that included it. My task was to read data with Esp32 microcontroller from BME680 sensor and to send them via Bluetooth Low Energy(BLE) to my mobile phone every few seconds.
Dajana prepared the whole code for reading data(temperature, pressure, humidity and gas resistance) from BME680 and then it was my turn to implement the BLE communication with a mobile phone. Previously I had experience with mbed LPC1768 from NXP Semiconductors and with microcontroller STM32F446RE using their mbed operating system and its framework, so to program esp32 microcontroller in ESP-IDF which is a completely different development framework was a new challenge to me. After about 3 weeks of learning about new technologies and fixing errors, I finally was able to finish my task.
Here in the picture, you can see custom characteristics, each one showcasing different values from BME680 sensor on my phone:
Of course, none of it would have been possible if I didn’t have my mentor, Dajana, who guided me and sometimes helped me with my errors. Sometimes when Dajana wasn’t there with me, I asked some other colleagues for a little assistance and they were all willing to help, which was nice of them.
Student job at Spyrosoft
After officially finishing my 18 days of internship, I continued to work at Spyrosoft as a student. Since it was my last semester, I didn’t have many classes to attend, except for Fridays. I asked Boris if that would be a problem, but he let me work flexible hours whenever it suited me, which is good for a student like me. Shortly after, I was boarded on an internal project in which Dajana was still my mentor.
I was really excited to take part in that project because I wanted to see how work looks like in the ”real world”, where everything is organised, and to see that the thing you are programming has a meaning and purpose. Working on an internal project with a team of 5-7 people is very different from the internship, not only because we had meetings 2-3 times per week to talk about our progress and discuss what to do next, but also because it gives a sense of responsibility for the tasks you were given as you want the project to be successful.
To sum up
I really like that in Spyrosoft, employees’ wishes are heard and the managers try to accommodate your personal needs . Doing an internship in Spyrosoft and now working as a student is a great starting point in my career, and if I had a choice, I would do it all over again. I can see how a serious IT company works, how it is organised and experience the nice work culture inside it.
When starting the job, I wasn’t sure what my job would look like, but now I’m fully aware of it. Although, at times, it may seem that there are some problems that can’t be solved and programming becomes really hard, if you don’t give up and keep the problem-solving mindset, in the end, every problem can be solved and you will feel good about yourself. All in all, challenges make life interesting and if you combine it with a passion for programming, then there is no better combination.