Henrik Huttunen

Innostun uuden luomisesta ja ongelmien ratkaisemisesta, etenkin kirjavataitoisessa ryhmässä. Pyrin rakentamaan vaivattomasti käytettäviä ja turvallisesti ylläpidettäviä ohjelmistoja.

Työkokemus

Evident Solutions Oy

Ohjelmistokehittäjä
2010–

Teen mielelläni erilaisia, pienimuotoisiakin ohjelmistoprojekteja. Tekeleitä asiakasprojektien ulkopuolelta: metronomi, shogi-lautapeli, lyriikat Youtube-videoihin, kenttäeditori 2D-peliin ja muistiinkirjaussovellus. Mukavuusalueeni ulottuu käyttöliittymäprotoilusta tietokantakyselyihin.

Solita Oy: Jatkokehitysprojekti heräte- ja mittaustietojärjestelmälle

Ohjelmistosuunnittelija

2022–2023

Jatkokehitetty järjestelmä vastaanottaa hyvinvointitietoja asiakkaiden laitteilta. REST-rajapinnan kautta vastaanotettuja tietoja esitetään web-sovelluksessa.

Kehitin mikropalveluarkkitehtuurin komponentteja ja suunnittelin niiden sovellusarkkitehtuuria. Päivitin pilvi-infraa sekä priorisoin kehitystyötä. Osallistuin integraatiosuunnitteluun ja toteutin tietojen vastaanottorajapintaa. Päivitin suuren määrän aiempaa toteutusta ja build-määrityksiä ajan tasalle. Toteutin mittaus- ja herätetietojen visualisaatiota käyttöliittymään.

Opin eritoten Kuberneteksesta ja asiakkaan osallistamisen tärkeydestä. Työskentelin projektissa pääosin etänä, ja se kesti osaltani noin puolitoista vuotta.

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

Hitachi High-Tech Analytical Science: ExTOPE ID

Pääsuunnittelija

2021

Toteutin mobiilisovelluksen, joka luo reaalimaailman kappaleista ja niiden mittaustuloksista virtuaalisen identiteetin. Sovellus pyytää mittaustulokset lähiverkossa olevilta analysaattoreilta, lukee QR-koodin kappaleesta ja vie yhdistetyt tiedot palvelimelle.

Sovellus toimii sekä iOS- että Android-laitteissa. Tutustuin mikä teknologiavalinta sopisi monialustakäyttöön mm. luomalla prototyypin selvittääkseni Flutterin kelvollisuutta mDNS:ää ja QR-koodilukua varten.

Toteutin käyttöliittymän asiakkaan esiversioiden pohjalta niin että sovellus noudattaa kohdealustojen vaatimuksia. Hienosäädin sovelluksen ulkoasua ja toimintaa säännöllisen palautteen perusteella.

Mobiilisovelluksen ensimmäinen julkaisukelpoinen versio valmistui noin kolmessa kuukaudessa jona aikana opettelin uuden monialustakehyksen ja kielen. Mobiilisovelluksen lisäksi jatkokehitin palvelinkoodia.

Työskentelin koko projektin ajan etänä. Viikottaisissa videopalavereissa keskustelimme etenemisestä ja suunnittelimme seuraavia vaiheita. Pääosin viestimme Slackissa.

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

Traplight: Battle Legion

Ohjelmistokehittäjä

2020–2021

Jatkokehitin web-työkalua mobiilipelin konfigurointiin ja ylläpitoon. Projektin aluksi lisäsin uusia ominaisuuksia sekä tein lukuisia pieniä korjauksia ylläpitäjien ja pelisuunnittelijoiden tarpeisiin. Myöhemmin vastuullani oli aloittaa näkymäkerrosteknologian päivittäminen Reactiin.

Olin projektissa noin 3 kuukautta yhteensä. Työstin kaikkia arkkitehtuurikerroksia mutta pääosin selainsovellusta. MongoDB:kin tuli tutuksi, mutta skaalautuvuuteen liittyvää ymmärrystä en kerennyt kartuttaa. Tein töitä itsenäisesti etänä omaa harkintaa soveltaen. Sekä QA-testaaja että kehittäjät ilmaisivat tyytyväisyytensä laatuun.

Tässä projektissa koin vahvasti kuinka vuosien mittaan karttunut kokemus vauhdittaa tutulla teknologialla kehittämisessä sekä uuden oppimisessa.

Scala, jQuery, CSS, React, MongoDB, PlayFramework

Finnpilot Pilotage Oy: Pilotweb

Ohjelmistokehittäjä

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 Oy: Palveluohjain

Ohjelmistokehittäjä

2016
Jatkokehitin ja ylläpidin Palveluohjainta. Kyseessä on sovellus, jonka kautta kansalainen voi varata aikoja henkilökohtaisiin hoitokokonaisuuksiin ja ilmoittautua ryhmätapahtumiin. Lisätietoa: http://www.palveluohjain.fi Olen kehittänyt pari täysin uutta toiminnallisuutta, selvittänyt ja korjannut tuotanto-ongelmia, sekä kirjannut ja edistänyt lukuisia parannusehdotuksia. Olen monin paikoin kohentanut järjestelmän sisäistä laatua refaktoroimalla koodia ja lisäämällä yksikkötestejä. Kirjoitin järjestelmän pääkäsitteille käyttöliittymätestit ja toteutin kansalaisen Suomi.fi-tunnistautumisen.

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

Digia Oyj: XBRL

Ohjelmistokehittäjä

2015
Tekemämme sovellus vastaanottaa XBRL-muodossa finanssitietoja. Toteutin pääosin selainsovelluksen näkymän Verohallinnon tietojen täydennykselle ja autoin myös vastaavanlaisen PRH:n näkymän teossa.

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

Solita Oy: Hyvis

Ohjelmistokehittäjä

2014–2015
Toteutimme kansalaisille suunnatun ajanvarausjärjestelmän sairaanhoitopiireille. Suunnittelin ja toteutin toiminnallisuuksia ryhmä- ja moniajanvaraukseen kokonaisuudessaan. Teknisiä parannuksia ja korjauksia tein monilta muilta osin, mm. vastasin pääosin sovelluksen build-järjestelmän kehittämisestä sekä koodin siirtämisestä javascriptistä typescriptiin. Toteutin myös toiminnallisuutta, jolla palvelimen rest-määrittelystä saadaan automaattisesti selainpään kutsutoteutukset.

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

TAMK: Integraatio hr-järjestelmästä opiskelijatietojärjestelmään

Ohjelmistokehittäjä

2014
Toteutin TAMKille integraation, jossa HR-järjestelmän henkilökuntatietoja siirretään oppilastietojärjestelmään. Toteutus koostui useammasta itsenäisestä, OSGi-yhteensopivasta osasta, jotka otettiin käyttöön ServiceMix-ympäristössä.

ServiceMix, Java, Spring, SVN, Maven

Terveyden ja Hyvinvoinnin laitos: Oikeuslääketieteen tietojärjestelmä

Ohjelmistokehittäjä

2013–2014
Osallistuin puolen vuoden ajan projektiin, jossa kehitimme tietojärjestelmän oikeuslääketieteen päivittäiseen käyttöön. Kehitin sovelluksen useita eri kerroksia: näkymiä ja bisneslogiikkaa sekä tein erinäisiä sekalaisia tehtäviä, mm. tulostustoiminnallisuutta.

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

Lääketieteellisen kuvantamissovelluksen uudelleentoteutus

Ohjelmistosuunnittelija

2013
Uudelleentoteutimme alunperin C++:lla tehdyn lääketieteellisen työpöytäsovelluksen .NET:lle. Sovellus tallentaa ulkoisen videolähteen avulla kuvia ja videoita tutkittavasta potilaasta. Kuvat potilastietoineen arkistoidaan PACSilla.

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

Käyttöliittymäkomponentin prototyyppailua ja selvitystyötä

Ohjelmistosuunnittelija

2013
Toteutin toiminnallisia vaatimuksia vastaavan prototyypin kalenterikomponentista sekä web- että työpöytäsovellusta varten. Selvitin käyttäjän älykorttipohjaiseen digitaaliseen tunnistautumiseen liittyviä vaatimuksia. Projektin pituus oli muutama viikko.

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

Runteq Oy: Juoksutekniikan analysointipalvelu

Ohjelmistosuunnittelija

2012
Toteutin Android-demon mm. kiihtyvyysdatan tallentamiseen. Osallistuin palvelun yleiseen suunnitteluun ja toteutin web-palvelun Javalla (GWT, Postgresql). Web-palvelua varten toteutin Javascript-pohjaisen juoksuanimaatiotyökalun.

Java, GWT, Android, Javascript, HTML, CSS

Innolink Research Oy: Tuotannon automatisointi

Pääsuunnittelija

2011–2012
Vastasin projektin teknisestä toteutuksesta. Lisäksi osallistuin järjestelmän määrittelyyn ja testaukseen. Projektin toteutusteknologioina olivat Java EE ja Seam 3.

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

Solutive Oy: Suunnittelujärjestelmä liikkeenjohdolle

Pääsuunnittelija

2010–2011
Yrityksen liiketoiminnan suunnittelua ja johtamisen ohjaamista tukeva sovellus. Olen ollut mukana määrittelyssä projektin alkuvaiheesta saakka. Olen suunnitellut ja toteuttanut pääosan ohjelmistosta (n. 5 kk), sekä olin mukana käyttöliittymän ideoinnissa. Järjestelmä on toteutettu Microsoft Azure -pilviympäristössä (.NET).

Microsoft Azure, SQL, .NET, Javascript, Ajax

Pienimuotoisia sivuprojekteja

Pääsuunnittelija

2010–

Olen harrastuksen ja oppimisen vuoksi luonut muutamia sivuprojekteja. Projekteissa useimmiten on ollut käytössä Javascript/html/css. Erään projektin puitteissa tutustuin Amazon AWS:ään. Muutama esimerkki luomuksistani ovat: Vim-tutoriaali, Arimaa-lautapelin tutoriaali, canvasta käyttävä Pathman-pelin kenttäeditori sekä muistiinpanojen hallintasovellus. Canvasta olen käyttänyt myös Runteq-projektin animaatiotyökalussa. Tutuksi ovat tulleet myös Angular ja React/Redux.

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

Novaloc Oy

Ohjelmistosuunnittelija
2008–2010

Aloitin Novalocilla tutustumalla web-kehitykseen, minkä jälkeen siirryin pian alihankintaan. Noin vuoden jälkeen palasin takaisin Novalocille.

Resurssinhallintasovellus

Ohjelmistosuunnittelija

2009–2010
Alusta varastossa olevien tavaroiden ja niiden myynnin hallintaan. Toteutin laaja-alaisesti eri osa-alueita. Sovelluskehys tukee suomalaisen elintarvikevälittäjän päivittäistä liiketoimintaa.

Web-lomakejärjestelmä

Ohjelmistosuunnittelija

2009–2010
Web-ilmoittautumislomakkeita kokouksia varten luova sovellus. Malliesimerkki työlään toisteisen välivaiheen siirtämisestä tietokoneen harteille. Osallistuin suunnitteluun ja toteutukseen.

Reklamaatiosovellus

Ohjelmistosuunnittelija

2009
Sovellus reklamaatioiden jättämiseen ja niiden käsittelyyn. Toteutettu laajentamalla Jira-tehtävänhallintaohjelmistoa.

Matkailupalvelusivusto

Ohjelmistosuunnittelija

2009
Matkailuaiheisia palveluita yhdistävä julkinen web-sivusto. Toteutin laaja-alaisesti ohjelmiston eri osa-alueita, mm. Webservice-integraatioita ulkopuolisiin järjestelmiin.

Koulutus

Turun yliopisto

Filosofian maisteri

2003–2008
Suoritin yleiseen tietojenkäsittelyyn liittyvän kandin ja maisterin tutkinnon. Ainoana sivuaineena minulla oli matematiikka.

Osaaminen

Yleistä

Olen toteuttanut useita web-sovelluksia tietokantatasosta käyttöliittymävempaimiin. Voit tutustua open source -projekteihini: https://github.com/egaga

Tutuimmat web-teknologiat ovat Javascript, Java ja SQL, mutta C++ ja .NET (Asp.NET MVC, C#, LINQ) sujuvat myös. Työpöytäsovelluksen tekeminen onnistuu Wpf:llä.

Avainsanat

.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

Kielet

suomi äidinkieli
englanti erinomainen
ruotsi perusteet
saksa perusteet

Suosittelijat

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