Software engineer and a proud father specialized in scalable server systems. I get kicks for writing protocol handlers and reading through database client source code just to see how everything works.
Programming is my passion. I have coded professionally with at least six different languages and still always love to learn a new one. Functional languages are something that I have a special interest in with most experience in programming Erlang and Elixir.
Being a server specialist I have lots of experience on cloud based systems like AWS. I have operated a system consisting of few hundred servers on Amazon's cloud. Automation is the key here.
When I'm at home I love spending time with my two beautiful daughters. Besides programming I have a passion for good food and love to cook for my family and friends. I've also set a goal for myself to run Boston marathon before I turn 40.
Senior Software Engineer @ From November 2015 to Present (2 months) Lead Server Programmer @ Coding a clustered and scalable server backend system for online mobile gaming. Setting up and automating the cloud infrastructure on AWS cloud. The game server cluster has been written using Elixir and Erlang. As a storage backend we use Couchbase distributed NoSQL database. I have also implemented the networking code for the game clients using Objective-C and C++. From December 2014 to November 2015 (1 year) Senior Server Developer @ Working mainly developing the backend server system for Apple AppStore title called the Supernauts (http://www.supernauts.com). I can proudly say that our system survived Apple featuring without any downtime. Supernauts achieved over a million downloads in five days.
Backend system game servers were running on Mono VM and hence written in C#. For persisting the user data we used a MongoDB cluster with sharing and replication enabled. We also used Amazon's AWS cloud infrastructure quite heavily (S3, ELB, ElastiCache, CloudFormation etc).
I also wrote a load tester for the backend system in Erlang. With a cluster of few Erlang nodes, we were able to achieve around 100k concurrent users on our system. From September 2013 to November 2014 (1 year 3 months) Lead Server Engineer @ Led the development of a Python based game logic server for mobile multi-player game on iOS platform called Tank Legions. I was also responsible for the main game server development that was written in Erlang. I also took part in developing a system for automatically generating 3D game worlds from map data (Open Street Map) using MapReduce.
My responsibilities also included planning and maintaining the server infrastructure hosted on Amazon AWS platform. Automated deployments were handled first using RightScale and later I wrote deployment scripts using Chef and Ironfan.
As my little pet project I also implemented and maintained an automated build system for the game builds using Jenkins, Xcode, Unity3D and TestFlight. From February 2012 to September 2013 (1 year 8 months) Software Engineer @ Led the development of website for mobile game called Shadow Cities. Work included developing a website at http://www.shadowcities.com including discussion forums and some game specific features. The site was integrated closely with the game servers, e.g. showing near realtime scores for the different countries playing the game.
I also designed and implemented an email campaign system for automatic email campaigns and user notifications. The service was integrated with SendGrid to handle the email sending.
Technologies and frameworks I used were:
* Python / Django
* Erlang
* MongoDB
* JavaScript
* RabbitMQ / AMQP From March 2011 to February 2012 (1 year) Principal Engineer, Internet Services @ Part of a development team whose task was to validate technologies to be used by the business units implementing Nokia's Internet services. Took part in developing the Nokia Account service used for single sign-on between all Nokia services and the Ovi Store, which is the Nokia's version of the App Store. From November 2010 to February 2011 (4 months) Senior Specialist, Internet Services @ From March 2008 to October 2010 (2 years 8 months) Research Engineer @ From May 2005 to February 2008 (2 years 10 months) Support Engineer @ From January 2004 to May 2005 (1 year 5 months)
Master of Science (M.Sc.), Computer Systems Networking and Telecommunications @ Helsinki University of Technology From 2000 to 2006 Teemu Harju is skilled in: Erlang, Python, Elixir, Couchbase, Amazon Web Services (AWS), REST, MongoDB, TCP/IP, C#, XMPP, Unity3D, Ansible, Chef, MySQL, Agile Methodologies
Websites:
http://blog.teemu.im,
https://github.com/tsharju