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
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
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
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
Java, Spring, PostgreSQL, Spring Boot, SAML, AngularJS, Typescript, Webpack, JUnit, HTML, Bootstrap, NPM, Protractor
AngularJS, Javascript, Karma, HTML, Bootstrap, XBRL, Java, Spring, Spring Boot, SAML
Java, Spring, PostgreSQL, Spring Boot, AngularJS, Typescript, Webpack, JUnit, HTML, Bootstrap, Bower, Protractor
ServiceMix, Java, Spring, SVN, Maven
Java, Javascript, Backbone, Spring, PostgreSQL, Apache FOP, Maven, Scrum
.NET, Wpf, C#, C++, Dicom, XML
.NET, Wpf, C#, ASP.NET MVC, Javascript, HTML, CSS
Java, GWT, Android, Javascript, HTML, CSS
Seam, JSF 2, SQL, Hibernate, Javascript, HTML, CSS, JBoss
Microsoft Azure, SQL, .NET, Javascript, Ajax
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
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ä.
.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
suomi | äidinkieli |
englanti | erinomainen |
ruotsi | perusteet |
saksa | perusteet |
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