Experience

ICEYE

Lead Software Engineer (2019 -)

I am team lead and responsible for major technical decisions and architecture for ground segment and satellite constellation control software. Work requires multiple programming languages, frameworks and understanding of cloud, embedded and bare-metal systems with a strong spacecraft engineering domain knowledge. My core responsibility has changed a few times, but currently focusing on ground stations communications optimization. I also acted as a scrum master for over a year. My team works directly with satellite operations and spacecraft engineers.

Ground Segment Software Engineer (2017 – 2019)

Ground segment software is used for the satellite mission operations. This includes, for example, telemetry and beacon handling, pass calculations and working with a large infrastructure with multiple different technologies and frameworks. I continued in this position directly after finishing my master’s thesis.

Master’s Thesis Worker (2016 – 2017)

I was working as a software engineer and simultaneously writing my master’s thesis about development and engineering analysis for mission critical satellite flight software. Master’s thesis was finished in May 2017.

Software Engineer (2014 – 2015)

I was employed at ICEYE before it was an official company and part of Aalto University. My major role was to develop satellite on-board computer software focusing on data handling software following ECSS-E-70-41A. I was also involved in ground segment development at its early stages.

Eficode

DevOps Consultant (2015 – 2016)

I was a consultant in DevOps unit, which produces solutions for third generation software development with virtualization, modern software production tools, continuous integration and test automation. I was involved in projects such as an autonomous payment terminal test robot based on CNC mill frame and OpenCV, automatic acceptance testing library for a mobile game, creating CI/CD pipelines for different fields of industry and Robot Framework coaching material.

Aalto-1 (Aalto University)

Research assistant (2013 - 2015)

In 2013, I was employed as a research assistant in Aalto-1 student satellite project to develop on-board computer software from scratch. I also made my bachelor’s thesis based on my work in autumn 2013. After this, I worked as a freelance developer for the project. In 2015, I was hired again for the university to help finishing satellite communication software for OBC before launch, while simultaneously working for Eficode.

Miscellaneous

I did various different internships, summer jobs etc. between years 2005 and 2012.

Education

Aalto University School of Electrical Engineering

Master of Science, Technology (2014 - 2017)

Major: Control, Robotics and Autonomous Systems
Minor: Space Technology

Thesis: Embedded software development methods for mission critical satellite operations

Courses included: control theory, robotics design, automation design, physics, artificial intelligence, spacecraft engineering, remote sensing

Bachelor of Science, Technology (2010 - 2014)

Major: Automation and Systems Technology
Minor: Industrial Engineering and Management

Thesis: Lento-ohjelmistojen kehitysprosessit nanosatelliiteille

Courses included: automation design, mathematics, physics, programming (C, C++, Matlab), control theory, electrical design, mechanical design, economics, marketing, project management

Technical skills

My full stack goes from ground to space. Seriously, dropping some buzzwords here to give some kind of understanding of my stack for those who know these words. Also writing some my views about writing software.

Buzzword bingo

Python, C, C++, Matlab, Simulink, Kubernetes, Docker, Robot Framework, Git, Falcon, Tornado, FastAPI, AWS, Podman, CI/CD tools (Jenkins, Github actions, …), STK, ODTK, Robot Operating System. SQLAlchemy, PyOrbital, SQL/NoSQL (PostgreSQL, MongoDB, …), Bash, XML/XSD, GNU/Linux (cloud, bare-metal, embedded), FreeRTOS

Principles

I consider Python and C as my main languages to work with. I embrace SOLID and ATDD principles when developing software, even if I’m far from perfect with those. I’m trying to find a proper middle-ground in modern and classical software development practices, when working with cloud infrastructure and embedded software. I tend to follow agile, scrum etc. when managing software projects, but having waterfall at my side and avoid agile to turn into “unplanned and ad-hoc”.

I use VSCode IDE when writing software. My distro of choice is either Arch Linux or Ubuntu, and KDE Plasma is my choice of DE.

Languages

Finnish Native
English Full working proficiency
Swedish Limited working proficiency
German Elementary proficiency

Volunteer experience

I have been actively part of various organizations where I learned the basics of my organizational skills and project leading - and still going strong. I have experience especially in event producing, where largest of them have involved thousands of participants. For full list of experience, I can provide additional list of positions upon request. These positions include, for example,

  • Member of board (including chair of board) in over 5 different organisations
  • Multiple professionally produced events, such as Laskiaisrieha sports event, world’s largest sauna WiikonWappuSauna and phenomenal Tempaus2016 for promoting comprehensive schooling around Finland
  • Leading different teams, usually from 5 to 30 members
  • Received several awards for distinguished volunteer work

Currently I’m a vice-chair at Guild of the Round Tower (Pyöreän Tornin Kilta)

Other

Developing a Linux-based nanosatellite on-board computer: Flight results from the Aalto-1 mission

Combining rapid development and ECSS standards: on-board computer development for the ICEYE mission

  • Co-author, conference paper, Sep 2014
  • Published in Tartu Conference on Space Science and Technology, Sept. 22-24, Tõravere, Estonia. 2014