Personal Projects

CatScanner Link to heading

  • Collaborated in a team of 8 members to develop an autonomous drone navigation system for object localization in a predefined field.
  • Worked in an Agile environment following Scrum practices, ensuring effective teamwork, task management, and project delivery.
  • Explored multiple machine learning algorithms to improve object recognition and navigation efficiency.
  • Applied control theory and Pixhawk hardware to ensure stable drone movement and precise object detection.
  • Performed rigorous testing and debugging to ensure reliability as we can’t afford to crash the drone.

My Sama Crash Link to heading

My Sama Crash began as a group project for the course ELEC-A7151 Object-Oriented Programming with C++, but it quickly grew into something much more meaningful to me. Originally built in SFML, the project focused on simulating urban traffic with a modular design that used classes like Building, Vehicle, Road, and Passenger. As we developed it, I took on the role of Scrum Master, organizing sprints, managing Git workflows, and guiding the team’s efforts—a role I found both challenging and enjoyable.

What makes this project special to me is how much I learned through it. It was my first real dive into proper Git branching, pull requests, and agile development. The modular architecture not only helped the team collaborate effectively but also made it easier to refactor and improve individual components as we iterated. On the technical side, it pushed me to work with modern C++ concepts like smart pointers, the Rule of 3/5, and unit testing, while documenting the code with Doxygen taught me the value of clarity and maintainability.

After the course, I’ve taken it further by porting the project to OpenGL, which is a whole new challenge. Moving from SFML to a lower-level graphics library has been an excellent opportunity to rethink the architecture, refactor the code, and improve my understanding of rendering and performance optimization. This process has also deepened my appreciation for clean, modular design as I adapt existing features to fit the new framework.

Looking back, My Sama Crash has been a defining project for me – not because of what it does, but because of how much it taught me about collaboration, problem-solving, and stepping up to lead. It’s a project that has shaped the way I approach programming and continues to push me to grow.

Light in Joulu Link to heading

As part of the CS-C2105 Programming Studio A course, I proposed and led the development of a 3D Lens Simulation tool in Scala 3. Initially, the project wasn’t intended to be in 3D, but I saw an opportunity to enhance it by adding this feature, which is why I went for it. I also considered reaching out to the optics research group at Aalto University to gather their input on what features would be valuable in such a tool. However, I ultimately decided against it, as the scope of implementing ray tracing and managing the project on my own was already quite challenging.

In less than six months, I designed a system that models the behavior of light beams interacting with optical elements like mirrors and lenses, using rigorous mathematical models to ensure accurate results. The project involved complex coordinate transformations and optimizations to facilitate smooth transitions between different view modes, such as TopView and Camera. This work gave me significant hands-on experience in optical physics, real-time simulation, and 3D graphics programming. Looking back, I found the analytical model fairly elegant, but in retrospect, I would have likely used meshes to simplify the process.

Beyond the technical challenges, the project also helped me develop strong problem-solving and debugging skills, as many issues couldn’t be tested with unit tests. Managing the project independently offered me valuable experience in project management, from the initial design to final execution, and taught me how to tackle complex problems from scratch. It was my first “real” programming project, and has provided me with important lessons in both software development and problem-solving, which I’ll carry into future challenges.

PURGE Link to heading

PURGE (Planetary Unused Retrieval and Garbage Elimination) is the result of my first Junction hackathon in 2024, where our team aimed to solve sustainability issues using space data. We developed a proof-of-concept to tackle space debris and satellite sustainability. Our solution involves SpaceX’s Starship and a custom-designed satellite capable of capturing defunct satellites in low Earth orbit (LEO) and returning them to Earth for safe decommissioning.

While we didn’t win due to a lack of implementation compared to other teams, the experience taught us a lot. We improved our brainstorming and critical thinking skills, learned to better understand the needs of a product owner (PO), and recognized the importance of clearly defining and specifying our proposal to align with project goals.

This project showcased a scalable and sustainable solution inspired by Northrop Grumman’s MEVs, NASA’s robotic arms, and the upcoming ClearSpace-1 mission, addressing a critical challenge in space operations.