We’ve had Iasonas with us at Cegeka for nearly a year, bringing his wealth of experience from embedded systems to full-stack development. Join us as he shares his journey, how challenges turned into opportunities, and the impact of Cegeka’s supportive culture on his growth.
Just like in the movie 'Cloudy with a Chance of Meatballs', I’ve had my fair share of stormy challenges, but somehow, I always end up with a buffet of unexpected opportunities raining down on me—who knew coding could be this deliciously unpredictable?
Iasonas Filippopoulos, Senior Software Engineer
Hi Iasona! Tell us a bit about yourself.
I studied Electrical and Computer Engineering at NTUA and later earned my PhD in hardware/software co-design. I’ve spent over 10 years abroad working as a software developer in various industries, and I recently returned to Greece. I chose to join Cegeka because it’s a local company with a global focus, which really appeals to me.
So you joined Cegeka nearly a year ago. How has your experience been so far?
My experience has been quite a journey! The beginning was challenging since my team had just taken on a new client, NN Insurance, and we were under a lot of pressure to prove ourselves. However, after we successfully delivered the first MVP, things took a positive turn It really showcased our capabilities and helped us build a strong relationship with the client. Overall, it’s been a rewarding experience, and I’m excited to keep pushing forward!
With a strong background in both hardware and software, how do you combine these areas in your work as a Senior Software Engineer at Cegeka?
While I primarily focus on software in my career, having a solid understanding of hardware is definitely beneficial when writing code. I come from a time when memory management wasn’t automatic in many languages, so that knowledge helps me write more efficient and optimized code. Nowadays, with cloud platforms and Infrastructure as Code (IaC), developers have more control over the hardware our software runs on. My background allows me to make informed decisions about performance and resource management, ensuring our solutions are not only functional but also efficient.
You have a Ph.D. in embedded systems design. How does your academic experience influence your approach to software development today?
My Ph.D. in embedded systems design shaped how I approach software development by emphasizing the importance of understanding how hardware and software interact. While working at BaseN (which does IoT), we faced significant memory issues due to high data volume from sensor inputs. Drawing on my PhD, I analyzed memory usage patterns and identified inefficient data structures. I replaced ArrayList with a custom memory-efficient data structure and implemented object pooling to reuse frequently created objects. This reduced the application's memory footprint and minimized JVM's garbage collection pauses, leading to improved performance and faster response times
What advice would you give to someone starting out in Java development?
My advice would be to focus on the fundamental principles of programming rather than getting too caught up in specific languages or frameworks. Popular languages evolve—Java syntax has changed significantly since Java 8—and you’ll likely work with multiple languages throughout your career. By mastering the core concepts, you’ll be better equipped to adapt to any language you encounter.
What challenges have you faced working with Java technologies, and how have you overcome them?
One challenge I’ve faced is dealing with performance issues in large-scale applications, particularly around Java’s garbage collection, which can lead to unpredictable pauses. To overcome this, I focused on optimizing memory usage and tuning garbage collector settings for our specific use cases. Keeping up with the evolving Java ecosystem can also be challenging, but I stay proactive by engaging with the community, participating in forums, and continually learning about new features and best practices.
Why did you choose to become a full-stack developer, and what advantages has this brought you?
It all happened by accident! At my second job in a tiny startup, our small team meant that I had to wear many hats. I jumped into various roles, and it was exciting to see the entire development process unfold before my eyes. This hands-on experience sparked my passion for full-stack development. In my following roles, I also embraced DevOps, writing Terraform for infrastructure, diving into Java for back-end tasks, and exploring TypeScript for the front-end. This versatility not only makes my workday more dynamic but also allows me to connect the dots across the development landscape!
If you could describe your journey in tech with a movie title, what would it be and why?
It would definitely be 'Cloudy with a Chance of Meatballs.' Because just like in the movie, I’ve had my fair share of stormy challenges, but somehow, I always end up with a buffet of unexpected opportunities raining down on me—who knew coding could be this deliciously unpredictable? 🍔🌧️
Can you share a memorable project or achievement you’ve had during your time at
Cegeka that you're particularly proud of?
Absolutely! One project I'm particularly proud of at Cegeka is the delivery of a financial transformation layer for NN. This initiative played a key role in helping them phase out their legacy systems, including a challenging COBOL codebase. By modernizing their financial infrastructure, we were able to streamline operations, reduce costs, and set them on a path towards greater agility and efficiency.
Lastly, how would you describe Cegeka’s culture and the impact it has on your work and personal growth?
Cegeka’s culture is vibrant and supportive, especially considering our local branch is only two years old. It’s impressive how quickly we’ve fostered a sense of community. The events—like our Halloween festivities, summer party, and Christmas celebration—are not just fun; they’re fantastic opportunities to connect with colleagues and build friendships. On a more serious note, the culture also emphasizes support and open communication. When I faced challenges in the beginning, having someone to talk to made all the difference. This blend of camaraderie and support has greatly impacted my work and personal growth, creating an environment where I feel valued and empowered to thrive.