
Simon Kaier
Verified Expert in Engineering
Software Developer
Munich, Bavaria, Germany
Toptal member since August 4, 2020
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
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
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
- 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.
Freelance Full-stack Developer
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#.
Full-stack Developer
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.
Full-stack Developer
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.
Working Student Full-stack Developer
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.
Experience
Snippeter.net
https://www.snippeter.netIt 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
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
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 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
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
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
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring