Have you recently seen our job post on social media and wondered what it’s like to be a Software Engineer at Mediaan? Or have you decided to pursue a career in Software Engineering and simply wanna know more about it? In this blog, Ricardo shares a glimpse of his life as a Software Engineer at Mediaan, how his typical day looks like, how things have changed in the Software Engineering industry, and what advice he has for future Software Engineers. Let’s get to the interview!
1. Could you please introduce yourself?
My name is Ricardo Kloth, and I’m 32 years old. I live in Heerlen together with my girlfriend Debby and our pets (one of them has become a team mascot during the COVID-19 period; shoutout to Pip, my pet rabbit!). I’ve worked at Mediaan for almost three years now, as a Software Engineer and UX/UI Designer.
2. What made you decide to become a Software Engineer?
As a kid, I was always fascinated by technology and art, so naturally, I gravitated towards a creative field or digital product development. I pride myself on having design-, conceptual- and software-skills. For me, whether it’s writing software or designing a user interface, both share the same goal: the process of creating. I always knew that whether I choose to attend an art academy or software engineering studies, I eventually wanted to combine both. For me personally, programming seemed harder than the creative fields, and I needed someone to teach me. So, a formal education in Software Engineering was the best way to reach my goals.
Ultimately, the end goal for me would be to give back. Something that I aspire to do is to eventually open a sort of center or non-profit for at-promise youth, providing a safe environment and teaching programming, game development and other media and hopefully it will lead to a positive impact.
1. Could you please introduce yourself?
My name is Ricardo Kloth, and I’m 32 years old. I live in Heerlen together with my girlfriend Debby and our pets (one of them has become a team mascot during the COVID-19 period; shoutout to Pip, my pet rabbit!). I’ve worked at Mediaan for almost three years now, as a Software Engineer and UX/UI Designer.
2. What made you decide to become a Software Engineer?
As a kid, I was always fascinated by technology and art, so naturally, I gravitated towards a creative field or digital product development. I pride myself on having design-, conceptual- and software-skills. For me, whether it’s writing software or designing a user interface, both share the same goal: the process of creating. I always knew that whether I choose to attend an art academy or software engineering studies, I eventually wanted to combine both. For me personally, programming seemed harder than the creative fields, and I needed someone to teach me. So, a formal education in Software Engineering was the best way to reach my goals.
Ultimately, the end goal for me would be to give back. Something that I aspire to do is to eventually open a sort of center or non-profit for at-promise youth, providing a safe environment and teaching programming, game development and other media and hopefully it will lead to a positive impact.
3. What kind of education and experiences did you need prior to starting your current job?
I got a bachelor’s degree in Embedded Software Engineering, which is comparable to Computer Science, but with a focus on microcontrollers. Eventually, I felt that Embedded Software Engineering wasn’t for me: a little too much right-brain and not enough left-brain. However, the fundamentals that I learned during this study have been very valuable to me. A solid basis in requirements analysis & specification, software architecture, software design, design patterns, data structures and algorithms, separates software engineers from programmers. To me, Software Engineering is so much more than writing code. I really like the mental exercise of creating a framework or architecture for an application or software that spans multiple systems. Making sure that it’s maintainable, robust, scalable and modifiable, while adhering to the requirements. For me, this is the true art of Software Engineering.
4. What led you to Mediaan?
I was at a point in my career where I needed more variety in my job and I knew Mediaan way back during my study. Working in a wide range of industries on various projects, for different clients & teams, and traveling to different locations was quite daunting. It required me to step out of my comfort zone. But now, moving to a new project has become something I look forward to, because of the new challenges that lay ahead. In a way, it is a shortcut to growth because I continue learning from new experiences and new situations.
5. How does your typical day at Mediaan look like?
When I am working from home, I start my day with a 25 min jog. After freshening up and having breakfast, I log into the projects I’m working on. I use this time to check the status of my current project and plan my day. This also includes supporting other team members or doing code-reviews. In the morning, teams usually have their daily stand-ups, where we discuss the progress of the projects we’re working on. We also discuss any impediments and see if we can resolve them at a later time. I try to plan my meetings in the morning, to make sure that after lunch I can get a stretch of ‘uninterrupted’ time to work. During lunchbreak, I go for a walk or find other colleagues or friends for an online game or chat. Or when I’m at the office, we usually take a stroll to the local supermarket and when returning we’ll go for a few rounds of Super Smash Brothers on the big screen. After lunch is focus time.
6. What do you like the most about your job?
I love my craft and there is nothing like getting immersed in a problem or creating a software product and having all of its pieces slowly come together. Though working as a Software Engineer can be intense, I love the diversity aspect of my job! Working with different projects parallelly gives me a fresh state of mind each time.
Besides working for our clients, I also work a lot with students. This year, for instance, I was assigned as a product owner to lead three teams of students during the Fontys Partner in Education program. For a semester, the students had to develop a system consisting of several applications using the Scrum methodology. Helping students find their way in the agile process, helping them with technical & non-technical issues, and teaching & coaching them, all of this gives me a lot of energy! I was also involved in the Mediaan IT Masterclass as one of the tutors for the web development masterclass. Together with my colleagues, Rik and Ceriel, we created the Charlie Chatlin challenge, where students learned about web development and my favorite technologies: component-based interfaces and modern state-management using Vue and Vuex.
7. How has the Software Engineer role changed in recent years?
From my perspective, the Software Engineer role has changed on many levels. From a technical perspective, we are no longer only Software Designers, but also System Designers. We are no longer taking care of the application itself, whether that be frontend or backend. Now that everything is being virtualized in the cloud, we are also DevOps Engineers, Infrastructure Engineers or System Designers. The software we write today spans multiple machines, systems, or infrastructure in a very scalable and distributed fashion.
On the organizational level, thanks to the agile processes, but also a paradigm shift in how we view work in general, software engineers are now at the forefront of innovation with the rest of the team and everyone’s expertise. Personally, I’ve come to enjoy this dynamics a lot. I think the team and the way it functions is the most important thing and supporting others is extremely important.
8. What attributes make a Software Engineer successful?
Obviously, the type of switches in your mechanical keyboard! I personally use Cherry MX Blue switches. The louder my keyboard is, the better my code is going to be. Gotta give it the credit!
No, all jokes aside, I think some communication skills and a cooperative mindset are very valuable. This might sound a bit counter-intuitive because I’m sure we all have this stereotypical image of a programmer in our heads. So why? Well, for many reasons: working within a multidisciplinary team, asking for requirements and clarification, communicating with non-technical people – the list really goes on and on. Good news! All of this can be learned, and these skills will last you forever. My personal challenge right now is finding the balance between pragmatism and perfectionism. I think healthy perfectionism is a desirable trait but once you get stuck in perfectionism-mode, things can spiral downhill quickly. I’ve found myself working overtime on tweaks and little things that only I would recognize. Great software engineers have the ability to make both quick & dirty hacks, elegant & robust solutions, and the instinct to choose which is appropriate at a given time.
9. How can firms best attract and engage the best Software Engineers?
I think first and foremost that if the firm truly believes in the competence, craftsmanship, and trustworthiness of its employees, that this will radiate outward in everything they do, and people will pick up on that. With that as a basis, I would be looking for flexibility, autonomy, being able to work from home, and getting the freedom for creativity. Also, given that our field moves very fast in terms of knowledge and technologies, the company should support its engineers so they can stay up-to-date within the realms of their interests. This means for example taking part in knowledge sharing, courses and going to conferences around the world.
Software engineers have become very diverse over the years: there are people who are hardcore analytical, people who have a creative side, and people who had a recent career switch, let’s say someone who moved from psychology into engineering. I feel this diversity is very complimentary to the products we build today because a lot of different fields are now involved. Everyone brings something unique to the table, and therefore the company should nurture everyone’s individual ability.
10. What advice do you have for junior and future Software Engineers?
KISS! That means, “Keep It Simple Stupid!”. Or as our famous Dutch pioneer of Computer Science, Edsger Dijkstra said it best: “simplicity is prerequisite for reliability”. This is very true and applicable on so many levels. For instance, at the coding level, I would much rather see readable and simple code, than the complicated one-liner that no one will understand. For me this is the first thing I look at when doing code-reviews: is it readable?
Also, I think it’s important to keep the fundamentals in mind and keep working on your skills and craftsmanship. Especially in web development, there is a lot of noise when it comes to new frameworks, methodologies, and paradigms. Don’t swallow every bit of information you read on Medium or other media as the truth or the next big thing. Be open, try new things, but keep a healthy dose of skepticism. Form your own opinion of what makes sense to you, your team, and your project. Or like Public Enemy used to say: “Don’t Believe the Hype”. I would advise to reserve some time for yourself and/or your team to research and play with new technologies. This way you have time dedicated to exploring new waters, and thus keep innovating your software, whilst not bringing it into your project without any basis.
As someone new to the field, focus on building software, and working on your programming skills. Trying to keep up with every new kid on the block, will result in not developing your skills as best as possible. The true danger is the cycle of ending up believing that a problem can only be solved if you just had this new technology available. Another tip for new programmers on this topic is that a framework’s main purpose is to provide a mental model to us humans. It is a way to divide a complex system into logical parts that make sense to us, so that we can keep developing, maintaining, extending, or changing the system. Keep that in mind when exploring new frameworks: “Does this mental model make sense to me, my team, and my project?” (Also: KISS!). The conclusion? It’s all about a healthy balance. Designate that time to explore because it’s important, but work on those fundamentals. There are new technologies, frameworks or paradigms that are solid and worth finding. But in the end, it’s not about the tools itself. It’s about what you can do with them.
It’s also good to have a passion project or maybe even do micro-hacks. The goal? Simply have fun. You will find different challenges than in your day-to-day coding and hopefully find yourself totally immersed. Doing something you love as a job can sometimes make you forget why you started in the first place. It’s important to stay in touch with that feeling and your intrinsic motivation.
Are you a Software Engineer looking for a new challenge and does Ricardo’s story inspire you? Perfect! We have several job openings that might be interesting for you! Check out our job page. We hope to welcome you as a new member of our Mediaan family!