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
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
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
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
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
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.
.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
Finnish | Native |
English | Excellent |
Swedish | Basics |
German | Basics |
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