Bună ziua!
Welcome to a glimpse into my daily life, my name is Cristian Soare. In this blog, I will take you with me on a typical day in my life. As an embedded software developer working through CodeHive for Sentistic, I work together with two others on the firmware side of our project. Besides my job at Sentistic, I am in the final year of my bachelor’s in Computer Science and Engineering at TU Delft. Currently, I’m also working on my minor in Public Administration.
I heard about CodeHive last year through one of my friends. He told me that CodeHive offers part-time jobs, and as an English speaker, it is easy to apply, compared to other companies that need you to do so in Dutch. When my summer job ended, I started to apply on CodeHive for part-time jobs. My current job was the first one I applied to! There are a lot of data-centered jobs, but I am not a data expert such as I am an embedded software expert. This job was focused on embedded software, therefore a great match for me. I have been working for Sentistic since October 2023, one day at the office and 4 hours remotely.
My work
Sentistic is a company that makes next-generation motion sensors. It enables motion sensors to accurately locate people in a space in a fully anonymous way. Currently, it is mainly used in offices and universities to measure the utilization of space, and in stores to learn about their customers’ shopping patterns by tracking their journey within the shop. With this information building managers can allocate spaces efficiently and save on costs such as energy bills.
What makes Sentistic’s approach unique, is that they do not use any sort of camera. The technology is still IR-based, like a regular motion sensor. By combining a next-generation chipset with image processing algorithms, this is made possible. Something that I, as an embedded software engineer, also work on.
My task initially was to try and find a way to test the code of the device. In coding, there is writing, testing, and implementing. When we say testing we don’t mean testing the device but a test that runs when you finish the code. It checks what you’ve done and shows you where you messed up. For embedded software it is very hard to do that as embedded uses the hardware (the sensor) a lot. It is hard to write tests that run on your laptop that call on the functions of the device that you don’t have on hand. There is an on-device test that they offer but it is not very practical: If the test breaks you’re not sure what happened because it changed on the device. We have tried different approaches, after which I found a solution using a separate framework from the microcontroller. From the devices we take the data from the sensor and turn it into something useful. It registeres electricity in electron volts, we transfer it into temperature, contour the people and then send it to the cloud.
Friday’s at the office
On Friday all the people working from The Netherlands come to the office (we also have a hardware development team in Portugal). The office is in Purmerend in an e-sports stadium. As the commute from where I live is quite long, I usually open my laptop on the train to do some work. If I’m feeling sleepy I will get some extra snooze time on the train… Sometimes I will get a Redbull from the machine in the e-sport stadium upon arriving at the office if I need the extra energy.
As trains sometimes are canceled or delayed the first hour is used as the ‘arrival hour’. Everyone arrives between 9:00/10:00 because at 10:00 we have a stand-up with the whole team. During this meeting, we discuss what we’ve done in the past week and plan some more meetings with specific people. We have those right after the stand-up and then the day starts. I open up my laptop and start coding. As the office is one big room with multiple desks, other people’s meetings can be quite distracting, so my noise-canceling headphones help me focus on my tasks. We all work on tickets that are in the management tool until about 12:30: lunch time
Each week our lunch is one of three: tosti’s and sandwiches we make at the office, ordering from a “eethuis” snackbar and picking it up or, my favorite, O’tacos. For some reason, they have a location in Purmerend and happen to be the only restaurant that does delivery here. Some of my colleagues had never tried it, and now everyone loves it!
After having lunch we all go back to work. I focus on finishing my tasks and wait for the product manager to be available so I can demo it to him. He then will tell me if he needs something else from me, if not I check out the backlog, and work on that. If I finish backlog tasks I demo it again. Sometimes I get stuck, that happens sometimes, so I limit myself to trying for an hour. After I have exhausted Google I will ask the product manager, even only telling him might help me understand. Besides, he is very eager to help and enthusiastic – he’s like my rubber duck.
At my previous job, I learned about the rubber duck technique, a proven studying technique. You explain your problem to the rubber duck and by doing that it might help you understand the problem.
Most weeks we go home after 17:00, sometimes 18:00, depending on how many tasks you have or if you want to catch up on some hours. This one time me and the other developer were both stuck and that week I was busy with work so I had to catch up on some hours. Our product manager was trying to motivate us, so around 20:00, he ordered us some pizza. Whenever we leave late he will drop us off at Amsterdam Central, making my commute a lot shorter.
After work, I like to wind down by either going to Amsterdam to meet up with some friends or I go home and watch some TV. Some weeks require me to study for exams even after work, but I’m not very focused after a day of work so it’s not very productive.
What helped me
When I started as a developer I struggled with new code bases. Now I try and make it as easy as possible for new developers who might do it in the future. By improving the way we write, it will be more intuitive.
For starting developers I think it’s useful to know the basic concepts like CI/CD, understanding the infrastructure, and knowing how the cloud works. Try to look at every part of the tech stack, at least the basics of it, not only focusing on the embedded systems. Otherwise, I wouldn’t know as much as I do now, and I would have focussed only on my initial task, closing doors for myself without noticing it.
A bonus tip for commuters: do not trust the NS app. Just check the displays at the station.
My plans
For my study I still need to do a softer project, you go to a company, they propose a project for you, and work on that. Luckily I think I might have already found a project! My product manager might have a project within Sentistic, separate from my current work.
I will have to find a team of five students and work on it, sort of like an internship, and propose it to TU Delft. So it is still a work in process. However, I can’t suppress my excitement to work for Sentistic on a different project. This won’t be embedded as most of my peers are not focused on embedded but on data.
For some behind-the-scenes footage make sure to check out the CodeHive Instagram ‘Day in the Life’ highlight!
Zi frumoasă,
Cristian Soare