Learn Data Skills
Esa Kalliomäki

Esa Kalliomäki

NLP, LLMs, ML Engineering | Espoo


My Portfolio Highlights

My New Course

Extreme Gradient Boosting with XGBoost

My New Project

Analyzing Car Reviews with LLMs

Data navigator, guiding organizations through the sea of information.

My Work

Take a look at my latest work.


Find Movie Similarity from Plot Summaries


Advanced Deep Learning with Keras


Feature Engineering for Machine Learning in Python


Project: Clustering Antarctic Penguin Species


Developing Machine Learning Models for Production

DataCamp Course Completion

Take a look at all the courses I’ve completed on DataCamp.

My Work Experience

Where I've interned and worked during my career.

M47 Labs | Jun 2022 - Apr 2023

Language Engineer

In my most recent project I have worked as a subcontractor for Apple, implementing parts of new features and analyzing and fixing bugs in the Natural Language component of Siri in Finnish. This is a large codebase and a virtual assistant with a wide range of functionalities managed with Git and GitHub. For new features, I adapted the given product requirements to fit the Finnish language and locale. For the components that relied on pattern matching I modified and created new rules, while for the parts relying on machine learning I analyzed the available training data, looked for possible annotation issues and worked together with language curators to ensure the quality of the training data, at times combining with pattern matching in order to ensure the correct performance . Part of the role is also being able to tell which is the cause of a reported issue, as well as prioritization without direct knowledge of the direction of overall product development.
Show More

Mc Kinsey & Company | Aug 2020 - May 2022

Senior Software Engineer

As part of the Innovation Squad, I was the technical lead on an help desk automation project which achieved an f1-score of 0.94. After shadowing a helpdesk agent as they did their job, I contributed the idea and technical perspective when we chose which problem to tackle with product stakeholders on a Lean UX Canvas. I worked with the database team to get the required Servicenow data into Snowflake, constructed queries and cleaned the data, decided on and trained a model based on BERT and deployed it on AWS in a Linux Server with FastAPI. and I got to be part of working on a Lean UX Canvas with product stakeholders to decide what we wanted to tackle in the first place. Finally I worked together with ServiceNow developers to incorporate the automation backend into the existing ticket handling system. I provided consultation and evaluated various proposed ML-based solutions, including the selection of a new external chatbot vendor, facilitating meetings, and ensuring alignment between product features and technical requirements. I conducted exploratory analysis on the old chatbot's usage patterns and fostered collaboration between the Innovation Squad, Data Science, and other Machine Learning Teams, promoting synergy in NLP projects and facilitating the deployment of experimental applications in Kubernetes

4MAX retail | Jun 2019 - Jan 2020

Machine Learning Developer

transfer learning to work with limited data and tested the prototype model concerted to tflite on several edge devices, some requiring Docker containers. I also built a fraud detector that was able catch 57% fraud with the same rate of false positives as the current system, using an innovative approach where customer behavior was translated into several dimensions of time series data that I fed into a LSTM model. With this Tensorflow - Keras model I used Hyperas for automatic hyperparameter optimization to find the best performing option. The model was on a Linux server timed to keep training itself regularly to adapt to new data. In my free time I made a video presentation explaining the value of my model to the business side, which landed me a one-on-one with the CTO of Tesco CZ.

Hypersonica | May 2018 - May 2019

Machine Learning Consultant

I was hired to add more personalized and monetized search suggestions to the Hypersonica front page, with word2vec and various other Python NLP, ML and scientific libraries (sklearn, NLTK, Polyglot, NumPy). Making these solutions scaleable to different markets, and self-adjusting to changes in search trends. Analytics for fraud prevention and reportation. Project co-owner on internal data dashboard project. Researching stakeholder requirements, having a dialogue with other co-owner to have a comprehensive set of use cases and analyzing input parameters to find which ones are the most essential for understanding. This job requires a lot of flexibility, and I would do the occasional excel report for investors if no one else was available.

Decissio | Feb 2018 - Apr 2018


Working with a database of thousands of companies, I used word2vec and TF-IDF to calculate a company vector for each company, which could then be used to find competing companies, as well as calculating a similarity score for given companies. I coded the whole backend, which is a flask app served with nginx. Used postman for testing. I was also experimenting with what was possible with word vectors when looking at them as a vector space in the mathematical sense.

Unnamed chatbot project | Dec 2017 - Feb 2018


My primary role as a co-founder was to use libraries such as TensorFlow ans Keras in training a chatbot to provide answers based on a data-set sourced from an adult text chat line. Following the work of others who were pursuing university degrees in the field, I prepared the data, then used a seq2seq LSTM architecture, adding features such as dropout as well as a custom later implementing an attention mechanism. While the bot was starting to sound more and more human and I was next planning to implement consideration for conversational contexts, I left this project due to time constraints.

Monster | Sep 2016 - Feb 2018

Associate QA Engineer

I was hired internally to QA Monster's search products (both semantic and keyword search), with a focus on those serving European languages: debugging, providing support to different teams across the company for search related questions. I also played a pivotal role in the introduction of Italian- language search, working closely with the developer and getting my first taste of Data Science when evaluating data sets that were the results of queries run with different stemming and synonym options and order on Lucene/Solr/ Elasticsearch libraries. This significantly improved clickthrough rates in the market. Also worked on Data analytics from Splunk and SiteCatalyst aided by self- made tools using Python libraries the NLTK, Polyglot and Word2Vec, and was on mh path to teach myself Data Science, NLP and Machine Learning. I was still maintaining and developed new automation tools with both Python Java and Selenium, for making job postings for or user accounts that would work as required test data.

Monster | Mar 2016 - Aug 2016

QA Intern

I was hired to primarily do manual front- and back-end testing of Monster's services for the State of Ohio, regression testing and writing test cases using SpiraTest. We were an agile team that used Jira. I soon realized much of that could be automated if I just worked on my Python skills, and soon developed tools that were shared with my coworkers. I was told I was a great asset to the company by the head of the fraud department after they accidentally ran their fraud detection program in the QA environment, and we got to know each other due to the automated, yet varied accounts that I was creating in bulk got flagged and my account frozen.

IDC | Feb 2016 - May 2016

Sharepoint Administrator

Building Sharepoint accordance with users’ needs. This requires communicating with end users about what they could do with SharePoint, and what kind of set up would be the best match for how they do their work. I also produce some training material as well work with permission groups etc.

DHL IT Services Prague | Jan 2014 - Jan 2014

Associate Service Desk Analyst

First-line IT support for DHL employees in Finland. This involved work like password resets with Citrix, Unix etc. I also wrote some programs with VBScript to automate some tasks that came up repeatedly (there were restrictions as to what programs were installed, so I couldn’t do them in Python as planned). We had to respond quickly to real-time issues from another country and handle users with various knowledge and patience levels in a professional manner.

Adecco Finland Oy | Jun 2009 - Aug 2009

Electronic Assembler

I worked for one summer for a subcontractor of Nokia in cell phone assembly. This was shift work, including double shifts at times to keep up with orders. The work was fast-paced, and required using ones own judgement as well as that of the plant QA to reconcile quality requirements with productivity goals. gained experience dealing with the hardware side of things - albeit mainly with what is now outdated technology. But some of the software used to root current smartphones still works and looks like what we’d use the Salo factory.

Sandvik Mining and Construction | May 2008 - Aug 2008

Database Systems Management

I was given printouts of computer-generated SQL queries from the old database report software, which I interpreted so I could functionally recreate them on the new software's drag-and-drop interface. It was often like working on reducing algebraic formulas.

My Education

Take a look at my formal education

Bachelor of Science (B.Sc.), MathematicsTurun yliopisto | 2013

Powered by

  • Work
  • Courses
  • Experience
  • Education
  • Create Your Data Portfolio for Free