Simon Kaier, Developer in Munich, Bavaria, Germany
Simon is available for hire
Hire Simon

Simon Kaier

Verified Expert  in Engineering

Software Developer

Munich, Bavaria, Germany

Toptal member since August 4, 2020

Bio

Simon is a full-stack developer with over five years of experience building web applications, 1.5 of which were at Google. He started programming in 2012 with Java and now specializes in Angular, React, gRPC, GraphQL, Node.js/NestJS, MongoDB, and PostgreSQL. His favorite programming languages are Kotlin, TypeScript, JavaScript, and Java, and he likes containerization with Docker. Simon prefers Agile projects and Scrum procedure models. He is an enthusiastic developer, eager to improve and learn.

Portfolio

Google
TypeScript, Kotlin
Future Value Group
CSS, Angular, Swagger, Redux, TypeScript, GitLab, Git, WebStorm, ASP.NET, C#...
Incedo Services GmbH
Figma, CSS, REST APIs, Vue, Node.js, Angular, MongoDB, GraphQL, JavaScript...

Experience

  • Node.js - 4 years
  • Angular - 3 years
  • GraphQL - 3 years
  • TypeScript - 3 years
  • Docker - 3 years
  • NestJS - 2 years
  • MongoDB - 2 years
  • Hasura - 1 year

Availability

Part-time

Preferred Environment

Slack, GitLab, WebStorm, Teams, Confluence, Jira, GitHub, Linux, Windows, MacOS

The most amazing...

...thing I've developed is Snippeter.net, a community driven snippet manager where one can share, comment on, and save their code snippets.

Work Experience

Software Engineer

2022 - 2023
Google
  • Built components for the web, which are now used in well-known public-facing Google products. I did this work for the material design organization.
  • Advanced a Figma integration into a company-internal product for text and design management, reducing latencies for synchronization by 45%.
  • Mentored a new-grad employee, helping to get them ramped up and productive.
Technologies: TypeScript, Kotlin

Freelance Full-stack Developer

2020 - 2021
Future Value Group
  • Migrated charts, diagrams, and input forms from an old .NET WinForms application to Angular 10. The .NET application has grown over the past 20 years, and its WinForms need to be replaced by something more recent.
  • Integrated an Angular application into the old .NET application using CefSharp. The purpose of this application is all sorts of financial risk analysis.
  • Developed a REST API using ASP.NET inside that .NET application to transfer data between the embedded Angular instance and the rest of the application.
  • Rewrote an Angular 6 application to Angular 9 (later Angular 10) and completely restructured it to scale better. Scalability is ensured by having a highly modular architecture using NgRx for the complete state.
  • Migrated and rewrote two chart views from amCharts 3 to amCharts 4 to work with Angular 10. AmCharts3's API is not compatible with amCharts 4.
  • Learned C# and ASP.NET to be able to work on an old .NET codebase consisting mainly of VB and C#.
Technologies: CSS, Angular, Swagger, Redux, TypeScript, GitLab, Git, WebStorm, ASP.NET, C#, AmCharts, Angular Material, NgRx

Full-stack Developer

2019 - 2020
Incedo Services GmbH
  • Designed the front-end and back-end architecture for a document management system for an automotive company.
  • Documented and communicated work with the client on Jira and Confluence.
  • Developed KPIs as microservices using MongoDB aggregations for a dashboard to enable the client to monitor their most important data.
  • Built Excel import and export capabilities inside a Node.js/NATS-based microservice system. This helped the client to migrate data from their old system.
  • Created highly dynamic Vue.js components to visualize data coming from micro services. Main visualizations have been charts and graphs.
Technologies: Figma, CSS, REST APIs, Vue, Node.js, Angular, MongoDB, GraphQL, JavaScript, TypeScript, Docker, GitLab, Git, WebStorm, NestJS, REST

Full-stack Developer

2019 - 2019
AEB SE
  • Helped our Swedish colleges to develop Angular apps for clients using the platform we developed in Stuttgart, Germany. I was located for 3 months in Malmö in order to do that.
  • Developed an Angular application for entering and modifying packaging information in a supply chain management application.
  • Helped to improve the communication between the German and the Swedish team.
Technologies: Slack, CSS, Node.js, Angular, GraphQL, TypeScript, Docker, GitLab, Git, WebStorm, ArangoDB, Camunda BPM

Working Student Full-stack Developer

2017 - 2019
AEB SE
  • Created reusable Angular Components using Storybook for later use in customer projects.
  • Managed work items and communication with clients on Jira/Confluence.
  • Created GraphQL endpoints using Apollo server running on Node.js with TypeScript while consuming other GraphQL endpoints (e.g. data layer or process layer).
  • Built client-specific web applications using Angular leverage the data and process models provided by AEB's back-end infrastructure.
  • Styled an Angular components library for company internal use with LESS and later SCSS to match a common style.
  • Maintained, fixed, and improved Angular components in a Storybook library to always match the latest version of Angular.
Technologies: Slack, CSS, Node.js, Angular, GraphQL, TypeScript, Docker, GitLab, Git, WebStorm, ArangoDB, Camunda BPM

Experience

Snippeter.net

https://www.snippeter.net
Snippeter.net is a platform where you can store or share your most exciting code snippets.

It has community features such as sharing snippets, commenting on them, and leaving reactions.

The focus of this project is JavaScript and you can run JS code directly from the snippet in the browser and see the results.

Snippeter.net is built using Angular in the front end and Hasura (GraphQL to PostgreSQL Engine) in the back end. It's hosted on AWS RDS and EC2.

It's built with high snappiness, responsiveness. fast response times in mind and fully open-sourced: https://github.com/sn-kaier/snippet-manager

Mandelbrot Fraktal Explorer

A Java Swing application to visualize and explore the Mandelbrot set.
The main focus was smooth color grading using splines and deep zoom using DoubleDoubles (a technique where two 64 bit doubles are combined to represent a more accurate floating-point number).

Mandelbrot renderings are computationally heavy.

To enable the user to zoom into the fractal smoothly without having to wait 10+ seconds for every frame to render some performance improvements were made:
1: Rendering on all available cores.
2: Incremental rendering (splitting the image into individually rendered chunks).
3: Determination of the "most interesting" areas/chunks using the previous frame to be able to render them first.

Other approaches for performance have been leveraging the GPU using OpenCL and distributed computing on multiple machines.

Lessons learned: Consumer GPUs are optimized for 32-bit floats. Their 64-bit floating-point operation performance is usually not significantly higher than the one of a CPU.

Living Room RGB LED Lighting Control

For my own room, I put ~18 meters of RGB LED strips in the shadow gaps around the whole room and soldered them + wired them to the Teensy.

On a Teensy controller (comparable with Arduino but more powerful), I programmed different light modes in C (running light, wavelike evaluations with several colors, etc.).

The Teensy was hooked up to a Raspberry Pi via USB which was running a Node.js server to communicate with a mobile web application over the wifi.

The web application was built using Vue.js and hat basic functionality to control the light: brightness, four different light modes, color choice, and an on/off switch.

The overall setup looked like this:
LED strips --> Teens micro controller/C --> Raspberry Pi/Node.js --> Smartphone/Vue.js

Bachelor Thesis: Dynamic Incremental Visualization of Persons and Their Context from Message Data

The practical part of my bachelor thesis at the University of Stuttgart was comparably large.

The task was the extraction of names of persons from large data sets consisting of twitter messages using natural language processing tools and the subsequent dynamic extraction, Incremental representation of the data over a time axis.

I developed a back end that would process the text data and expose the results in a useful way through a REST endpoint.

Key technologies included Kotlin (JVM), Stanford NLP (to extract names), and MongoDB for storing and retrieving data using aggregations.

For the visualization, I implemented a web application using Angular and D3.js.

Final Grade: 1.0 (Highest marks)

Web-Based Graph Visualization

A project at VIS Institute (University of Stuttgart) as one of three other working students. The goal was to be able to interactively explore small to medium-sized graphs in a web application.

I worked for three months on that project and during this time my responsibilities were:
1: Identifying and containing performance bottlenecks.
2: Implement an adjacency matrix visualization.
3: Algorithmically recognize and display groups (closely networked nodes).

Android App for Indoor Navigation at The University of Stuttgart

As the third semester project, two fellow students and I had to compete against 30 other teams to build the best indoor navigation app for the computer science building.

My responsibilities in the project were:
1: Creating a virtual map of the building.
2: Building an application to model a graph for the floors and stairs using Java Swing.
3: Implementing a suitable pathfinding algorithm using Dijkstra.

Results:
We were the winning team and gained a prize of over 150€ per person.
We stood out because we used Wifi triangulation to track the user's position during navigation and we had a 3D live view of the building similar to AR.

Education

2014 - 2019

Bachelor's Degree in Software Engineering

University of Stuttgart - Stuttgart, Germany

Skills

Libraries/APIs

Node.js, REST APIs, Vue, NgRx

Tools

WebStorm, Git, GitLab, Mongoose, Docker Swarm, Figma, GitHub, Jira, Confluence, Slack, Skype, Camunda BPM

Languages

GraphQL, TypeScript, Java, JavaScript, HTML5, CSS, SCSS, HTML, SQL, PL/pgSQL, Kotlin, C#

Frameworks

Angular, NestJS, Redux, Angular Material, Swagger, Spring Boot, OAuth 2, ASP.NET

Paradigms

Agile Software Development, Test-driven Development (TDD), REST

Platforms

JavaFX, Docker, Amazon EC2, Windows, Linux, Amazon Web Services (AWS), MacOS

Storage

MongoDB, Hasura, Database Modeling, PostgreSQL, ArangoDB

Other

Apollo Server, Time Complexity Analysis, Containers, OAuth, Teams, AmCharts

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring