Kai Sellgren

Kai Sellgren

Software Consultant from Finland

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

Founder
Upsoft Ltd
April 2016 — Present

To pursue more control, freedom and business, I decided to establish a company and work under it as a software consultant.

Software Consultant
May 2014 — April 2016 (2 years)

I worked as a software consultant for one of the most innovative software consulting houses in Finland.

Founder
Cindela Ltd
January 2013 — August 2014 (1 year 7 months)

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.

Senior Software Engineer
August 2011 — January 2013 (1 year 6 months)

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.

Software Engineer
April 2010 — June 2011 (1 year 3 months)

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.

Software Engineer
Armoured Brigade (Finnish Army)
September 2009 — April 2010 (8 months)

Recommendations

David Notik
"Finding and retaining great people is perhaps the most difficult and most important feat for any company. You surpassed all my hopes and expectations on every level. I couldn't ask for a better lead engineer and all around great person to work alongside as we began building the platform I've been working towards for a long time. I am truly grateful, both on a professional and personal level, for all the time and energy and honest dedication you have put forth."
David Notik
Founder of Woven
Mikko Peltola
"Kai knows the technical details and is enthusiastic with what he does. He is fast to pick up on new things and works hard to keep his skills at the cutting edge. He doesn't just keep the knowledge to himself, but seems to really enjoy sharing the gathered information with people around. Working with him is easy, you can trust things to be done. I recommend Kai to any challenge he is willing to accept."
Mikko Peltola
Sr Technical Project Manager at Sujuwa
Christoffer Niska
"We worked with Kai together at Nord Software and back then he taught me a thing or two about prototypal inheritance in JavaScript. That said, he knows his way around JavaScript among many other languages. In general Kai is a passionate developer who writes useful tools in languages such as Dart and Scala."
Christoffer Niska
CTO at Nord Software

Programming Skills

JavaScript (ECMAScript)

Expert - 9 years

Deep knowledge of RxJS, React, NodeJS, ExtJS, Dojo, Backbone, jQuery, Express, BaconJS. Understanding of hoisting, event loop, and ES6 specs.

Scala

Very Good - 3 years

Writing pure functional code with immutability. Built Scala Git, a complete rewrite of Git version control in pure Scala.

Rust

Very Good - 2 years

One of my current favorite languages. Working on rust_git and comp_sci projects.

Dart

Expert - 2 years

Used professionally and for hobby projects. Top contributor (rank #3) on StackOverflow for Dart with 125+ answers.

Kotlin

Very Good - 1.5 years

Strikes a good balance of pragmatism and modern features. Used for hobby and professional projects.

Java

Very Good - 5 years

Professional use for many years. Important language to master despite personal preferences.

C++

Comfortable - 3 years

Used for hobby projects. Go-to language for game development.

C#

Comfortable - 2 years

Used for work and hobby projects. Familiar with .NET and WPF technologies.

PHP

Expert - Extended use

First language for dynamic websites. Used Symfony, Yii, and Composer. No longer actively using.

Notable Open Source Projects

Scala Git

Scala

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.

Rust Git

Rust

A Rust re-implementation of the Git version control system.

Materialism

Kotlin

A voxel game engine written in Kotlin and OpenGL. Features random terrain generation along with basic movement and rendering.

Computer Science Libraries

Rust

Computer science with Rust. Articles, algorithms, data structures and other programs written in Rust.

Mailer

Dart

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

C#, .NET, WPF

A powerful graphical user interface for Git that runs on Windows. Standalone product requiring no Git installation, featuring data binding and MVVM architecture.

Animation

Dart

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

JavaScript

Like Tic-Tac-Toe, but 5-in-a-row to win. Features an AI based on the Minimax algorithm that is hard to beat.

Other Technical Skills

Cloud Solutions (AWS, Google Cloud) PostgreSQL Redis MongoDB MySQL Docker Git (Expert) Linux Servers HTML5 & CSS3 SASS/LESS Regular Expressions nginx Web Development Payment Systems HBase Memcached

Languages

English

Fluent, Good Communicative Skills

Finnish

Mother Tongue