Henrik Huttunen

I find programming and problem solving very satisfying. In day to day work, I strive for deliberate decisions and robust code. I enjoy working with people that have various kinds of skills. I regularly read articles about current programming technology, and enjoy playing with new libraries and languages.

Work experience

Evident Solutions Ltd

Software Developer
2010–

I'm involved in different kinds of software projects, including Evident's in-house development. My comfort zone extends from UI prototyping to getting my hands dirty with database queries.

Solita Ltd: Further development of wellness data system

Software Designer

2022–2023

Was part of a small team developing a wellness data ecosystem and a web application build on top of the ecosystem. Developed and refactored components in a microservice architecture. Implemented a couple of data visualization charts.

Streamlined and modernized a considerable part of the code and the build system. I learned how to deploy applications to a Kubernetes cluster running in a cloud environment.

Working remotely, my involvement in the project lasted one and a half year.

Google Cloud, Terraform, Typescript, Dalesbred, Spring, Keycloak, Vue, D3, Kubernetes, Kotlin, Java, PostgreSQL, GitHub Actions, Gradle

Hitachi High-Tech Analytical Science: ExTOPE ID

Lead Developer

2021

Implemented a mobile app that gives virtual identity to real world objects. The app queries measurements from handheld analyzers via http, scans a QR code from a sticker on the object, and uploads the integrated data to the backend server.

First step was to compare different technologies to implement the app for both Android and iOS platforms. I prototyped to check mDNS and QR-scanning library support for the most promising candidate which by my analysis was Flutter.

The app reached a maturity in about three months by which time I had learned a new mobile toolkit and a language. At first I implemented code to demonstrate most of the needed features in a functional form. The layouts were based on images from the client, and I improved some of them by making sure that we conformed to the design specification of the target platforms. Later I re-shaped the code until it got sensibly structured and maintainable. I also developed the backend code.

I participated in this project fully remotely. We mostly communicated via Slack, sometimes sharing live screen of the app. We also had weekly one-hour video conferences to inform client of the progress and to plan ahead.

Flutter, Dart, Kotlin, Ktor, Angular, iOS, Android, Material Design

Traplight: Battle Legion

Software Developer

2020–2021

My sole role was to improve a web admin tool of the mobile game Battle Legions. During the three months in the project, I initially implemented some new features and improved existing ones using server-side rendering and jQuery. Later, I was responsible for adding React compatibility and migrating existing features to React.

I worked on every layer of the architecture, including the writing of basic MongoDB database queries, but didn't dive deep into the scaling aspect of the application.

The QA engineer and the developers were satisfied with the quality of my work. This project opened my eyes how greatly previous experience impacts productivity.

Scala, jQuery, CSS, React, MongoDB, PlayFramework

Finnpilot Pilotage Oy: Pilotweb

Software Developer

2016–2020

Saimme ylläpidettäväksi ja jatkokehitettäväksi Finnpilotin useita vuosia toiminnassa olleen luotsaustietojärjestelmän. Tein säännöllisesti parannuksia vanhaan toteutukseen, osin päivittäen sitä uudelle teknologialle. Tein viilauksia ja uusia toiminnallisuuksia mm. meklarien käyttämään Pilot Onlineen (https://pilotonline.fi), kutterikuljettajien työnkirjaussovellukseen, luotsinvälittäjien luotsien organisointityökaluun, luotsien luotsausprosessin mobiilisovellukseen, raportteihin ja moniin muihin käyttötapauksiin.

Asemassani en niinkään osallistunut määrittelyyn, mutta testasin ja katselmoin jatkuvasti toteutusmuutoksia ja -uudistuksia. Tein ison osan työstäni etänä, mistä syystä kehityin tavassani ilmaista ajatukseni kirjallisesti, esimerkiksi esittämään omat ideani ja tekemiseni rakenteellisemmin ja täsmällisemmin. Kehityin myös huolellisemmaksi.

Projektin kesto oli pitkä ja seurasin arkkitehtimme visioimia pieniä ja suuria muutoskaaria lähtökuopasta toteutukseen — mm. palvelun tiukat riippuvuudet ajoympäristöön riisuttiin pois mikä auttoi saamaan palvelun versionhallinnan kautta konfigoroituna pilviympäristöön. Nämä ovat hyödyllisiä muistikuvia tulevalle työlleni, kun joudun itse vastaamaan pidemmän ajan kehityspäätöksistä.

Suurimpia oppikokemuksia oli hyväksyttää lähes kaikki toteutukseni pätevämmällä kollegalla. Sisäistin miten merkityksellistä on saada viestitettyä aikeensa välttäen tulkintavirheitä, kuunnella toista herkällä korvalla sekä kehittää toteutuksen päätöksiä varten hienovarainen tapauskohtainen arviointikyky; hyväksynnässä arvioitiin sekä korkean tason mallinnusta että yksittäisiä matalan tason päätöksiä, ja näin miten pienilläkin virhearvioinneilla saattaa olla suuri vaikutus.

Kotlin, Java, SQL Server, Typescript, Hibernate, SQL, JSP, Docker, JPA, Angular, Material Design, Sass, CSS, Swift, UIKit, IntelliJ IDEA, Spring Boot

Solita Ltd: Palveluohjain

Software Developer

2016
The project Palveluohjain enables citizens to reserve private and group appointments, provided by health care and social districts. See: http://www.palveluohjain.fi I was part of a team that maintained its deployed version and further developed it for new use cases. I implemented a couple of new features, investigated and fixed production problems, and also reported issues and made progress on them. I've improved the quality of the system in many ways, by refactoring code and adding unit tests. I wrote comprehensive automated browser test-suite, and implemented Suomi.fi authentication for citizens.

Java, Spring, PostgreSQL, Spring Boot, SAML, AngularJS, Typescript, Webpack, JUnit, HTML, Bootstrap, NPM, Protractor

Digia Plc: XBRL

Software Developer

2015
The application receives financial data in XBRL format. I was mostly responsible for implementing frontend for complex Verohallinto form filling. I also made small contributions to other parts of the frontend system.

AngularJS, Javascript, Karma, HTML, Bootstrap, XBRL, Java, Spring, Spring Boot, SAML

Solita Ltd: Hyvis

Software Developer

2014–2015
Hyvis (later known as Palveluohjain) is a service where health care districts provide their services for which citizens can make appointments. I designed and implemented features for group and multi reservations. I also made large amounts of technical improvements and fixes, e.g. maintained the build system for the project and transformed javascript code to typescript. I also partly implemented automatic generation utility that creates frontend http services from rest api.

Java, Spring, PostgreSQL, Spring Boot, AngularJS, Typescript, Webpack, JUnit, HTML, Bootstrap, Bower, Protractor

TAMK: Integration from HR to student registry

Software Developer

2014
TAMK needed an integration from its HR system to the student registry. The implemented modules were OSGi compatible, and run inside ServiceMix container.

ServiceMix, Java, Spring, SVN, Maven

National Institute for Health and Welfare: Forensic information system

Software Developer

2013–2014
I was half a year in a project in which an application was developed for forensic daily operations. I developed frontend and server business logic, and worked on miscellaneous tasks, such as printing functionality of a death certificate.

Java, Javascript, Backbone, Spring, PostgreSQL, Apache FOP, Maven, Scrum

Medical imaging software, re-implementation

Software Designer

2013
We ported a medical desktop software from C++ to .NET. The application captures screenshots and video from the examined patient using an external video source. The collected data is archived using PACS.

.NET, Wpf, C#, C++, Dicom, XML

Prototyping of UI component, and various consulting, a couple of weeks

Software Designer

2013
Implemented a web and desktop prototype for a scheduler that simulated functional requirements. I investigated and reported how a smart card based digital user authentication could be implemented. The project duration was a couple of weeks.

.NET, Wpf, C#, ASP.NET MVC, Javascript, HTML, CSS

Runteq Ltd: Service for analyzing running technique

Software Designer

2012
Created a small demo for Android to get acceleration data. Moreover, I was a participant in the design of the production system. I was solely responsible for implementing the web platform in Java, along with a Javascript based tool for making animations of a runner.

Java, GWT, Android, Javascript, HTML, CSS

Innolink Research Ltd: Production automatization system

Lead Developer

2011–2012
I was responsible for the technical implementation. I did also a part of the specification and testing tasks. The project was implemented with Java EE and Seam 3.

Seam, JSF 2, SQL, Hibernate, Javascript, HTML, CSS, JBoss

Solutive Ltd: Planning app for business

Lead Developer

2010–2011
Cloud service for businesses to plan resourcing and support management. I designed and implemented most of the software (about 5 months), and was involved in user interface design. The software runs on Microsoft Azure (.NET).

Microsoft Azure, SQL, .NET, Javascript, Ajax

Side projects

Lead Developer

2010–

For fun and learning purposes I have created some side projects, mostly written in Javascript/html and css. In one project, I learned some basics of Amazon AWS. Some of the projects are: Vim tutorial, tutorial for Arimaa the board game, a 2D level editor implemented using html5 canvas, and a note management app. Html5 canvas is also familiar from animation utility made for the Runteq project. I've familiarized myself with basics of Angular, Elm, and React/Redux.

HTML 5, Javascript, CSS, Typescript, Amazon AWS, Elm, AngularJS, React, Swift, SwiftUI

Novaloc Ltd

Software Designer
2008–2010

I began my career in Novaloc by learning web app development. I was soon subcontracted to Solita and got back after a year.

Resource managing

Software Designer

2009–2010
I was part of a team to implement platform for managing stocking.

Form generator

Software Designer

2009–2010
We created a web app for making forms for conference appointments.

Reclamation app

Software Designer

2009
I created application for making reclamations. It was implemented by extending Jira issue tracking software.

Travelling site

Software Designer

2009
Different kinds of travelling services in one web site. I implemented a wide range of functionality, e.g. webservice integrations to external systems.

Education

University of Turku

Master of Science

2003–2008
I graduated with general Computer Science Master's degree. The only minor subject was mathematics.

Skills

General

I have implemented web applications from database layer to different kind of user interfaces. Take a look at my open source projects: https://github.com/egaga

I'm most familiar with Javascript, Typescript, Java ja SQL but C++ ja .NET (Asp.NET MVC, C#, LINQ) are familiar, too. I've developed also a desktop application with WPF.

Keywords

.NET, ASP.NET MVC, Agile, Ajax, Amazon AWS, Android, Angular, AngularJS, Apache FOP, Apache Tomcat, Backbone, Bootstrap, Bower, C#, C++, CSS, D3, Dalesbred, Dart, Dicom, Docker, Elm, Flutter, GWT, GitHub Actions, Google Appengine, Google Cloud, Gradle, HTML, HTML 5, Hibernate, IntelliJ IDEA, JBoss, JPA, JSF 2, JSP, JUnit, Java, Javascript, Karma, Keycloak, Kotlin, Ktor, Kubernetes, Material Design, Maven, Mercurial, Microsoft Azure, MongoDB, NPM, Open Source, PlayFramework, PostgreSQL, Protractor, React, SAML, SOAP, SQL, SQL Server, SVN, Sass, Scala, Scrum, Seam, ServiceMix, Spring, Spring Boot, Swift, SwiftUI, Terraform, Typescript, UIKit, Vue, Webpack, Wpf, XBRL, XML, iOS, jQuery

Languages

Finnish Native
English Excellent
Swedish Basics
German Basics

Referrers

Hannu Ahonen, Sovelluspäällikkö, Finnpilot Pilotage Oy, +358 50 586 8471

Tuomas Pylkkänen, Tuotekehityspäällikkö, Hitachi High-Tech Analytical Science, +358 40 120 7160