Introduction
I am a passionate software consultant from Finland who enjoys spending time in the field of architectures, designs, security and programming. The web is my greatest passion, although I have written a fair amount of code for desktop and other types of software, as well. I love designing architectures and writing code for larger web-based software.
I am self-educated, and keeping up to date and strengthening my skills play a big role in my everyday life. I have found programming to be a lifestyle rather than a career choice.
My preferred programming languages include Rust, Scala, Dart, C#, and ECMAScript (JavaScript). I use other languages as well if they fit the problem. As for databases, having used many, I like PostgreSQL (for relational) and Redis (for key-value) the most.
I am an avid cloud user and have worked professionally with Amazon AWS and used Google Cloud in my spare time. My goal is to automate testing, deployment and shipping processes, usually with tools like Docker.
Work Experience
To pursue more control, freedom and business, I decided to establish a company and work under it as a software consultant.
I worked as a software consultant for one of the most innovative software consulting houses in Finland.
In December 2012, I decided to quit my full-time job and founded a company to work as an independent contract-based professional. My primary motivation was to learn new and improve myself.
I used Skype video calls for communication around the world in English, often ranging between 6-12 hours a day. I spent most of my time building complex web software using Dart, PostgreSQL and MongoDB. I became a top contributor (rank #3) on StackOverflow for Dart with 125+ answers and built a great reputation within the Dart community as an active "Dartisan".
Throughout the year I also built several open source libraries for Dart and contributed to other open source projects, most notably the Dart MongoDB database drivers. GitHub's activity shows that I made 2700+ contributions in 2013.
I worked on projects for Outotec who provides solutions for sustainable use of earth's natural resources. I built numerous tools and products for them, ranging from sales tools to product management tools. The sales tools helped them to quickly produce sales quotations out of several criteria, saving them days of time.
I was part of a small team to produce E-autokoulu, an online driving school management software. Later on I worked on VIIA, which is an online human resource management service.
Recommendations
Programming Skills
JavaScript (ECMAScript)
Deep knowledge of RxJS, React, NodeJS, ExtJS, Dojo, Backbone, jQuery, Express, BaconJS. Understanding of hoisting, event loop, and ES6 specs.
Scala
Writing pure functional code with immutability. Built Scala Git, a complete rewrite of Git version control in pure Scala.
Rust
One of my current favorite languages. Working on rust_git and comp_sci projects.
Dart
Used professionally and for hobby projects. Top contributor (rank #3) on StackOverflow for Dart with 125+ answers.
Kotlin
Strikes a good balance of pragmatism and modern features. Used for hobby and professional projects.
Java
Professional use for many years. Important language to master despite personal preferences.
C++
Used for hobby projects. Go-to language for game development.
C#
Used for work and hobby projects. Familiar with .NET and WPF technologies.
PHP
First language for dynamic websites. Used Symfony, Yii, and Composer. No longer actively using.
Notable Open Source Projects
Scala Git
A pure Scala implementation of the Git version control written from scratch. Can parse Git repositories, understands all five types of objects (blob, commit, note, tree, tag), and can manipulate repositories in many ways such as read and write branches, commits, trees and tags.
Materialism
A voxel game engine written in Kotlin and OpenGL. Features random terrain generation along with basic movement and rendering.
Computer Science Libraries
Computer science with Rust. Articles, algorithms, data structures and other programs written in Rust.
Mailer
Compose and send emails from Dart. Supports plain-text and HTML emails, Unicode, attachments, security filters, SMTP servers like Gmail or SendGrid, SSL/TLS, and pre-configured services like Amazon SES.
Git GUI
A powerful graphical user interface for Git that runs on Windows. Standalone product requiring no Git installation, featuring data binding and MVVM architecture.
Animation
Standard animation capabilities including stopping, delaying animations, pre-made effects, animation queues, and a powerful inbetweening engine supporting linear animations to quadratic and sine patterns.
Gomoku
Like Tic-Tac-Toe, but 5-in-a-row to win. Features an AI based on the Minimax algorithm that is hard to beat.