summaryrefslogtreecommitdiff
path: root/experience.tex
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2025-10-22 00:05:38 +0200
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2025-10-22 00:05:38 +0200
commitc12ff31cf8a2acd06bffa08e588e915f9ff28bf8 (patch)
tree416cbb9ca9a405a8d7ff25b336eaf39d2024777a /experience.tex
parent6a9111525d70265db877dcd9c7e69f776bc79e7b (diff)
Diffstat (limited to 'experience.tex')
-rw-r--r--experience.tex113
1 files changed, 41 insertions, 72 deletions
diff --git a/experience.tex b/experience.tex
index c4ae483..b976c13 100644
--- a/experience.tex
+++ b/experience.tex
@@ -1,58 +1,57 @@
\section{Experience}
-\vspace{-0.2cm}
-% According to Google Recruiters, use the XYZ formula - Accomplished [X] as measured by [Y], by doing [Z]
\company{Software Engineer}
{Nexure/Electrolux AB}
{Stockholm, Sweden}
{Aug 2021 -- present}
{
-Designed and maintained backend services for Appliance Repair Service Platforms using functional programming principles in Kotlin, supporting Sweden/NA launches and EU expansion.
+Backend engineer on Appliance Repair Service platforms (Sweden, North America, EU)
+within a 100+ microservice ecosystem. Primary contributor to 10+ services, introducing
+functional programming patterns to Kotlin codebases.
\vspace{0.25em}
\begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
- \item \textbf{Functional Architecture}: Implemented immutable data models and \textbf{railway-oriented} error handling in Kotlin, mirroring Haskell Either monad and patterns.
- \item Event-Driven Systems: Built audit trails and transaction synchronization scripts for insurance processing (bordereau), handling 10K+ daily events – directly applicable to event sourcing.
- \item Cloud-Native Infrastructure: Deployed Kubernetes services on EKS using Helm/Terraform, managing stateful PostgreSQL workloads and AWS data services (SQS/SNS).
- \item Data Integrity: Optimized complex SQL queries for PostgreSQL and resolved cross-database inconsistencies.
- \item Security and Auth: Engineered JWT validation libraries and permission APIs, securing microservices with Auth0.
- \item \textbf{Tech Stack}: Kotlin (functional paradigms) \textbullet\ PostgreSQL \textbullet\ Kubernetes/EKS \textbullet\ AWS \textbullet\ Terraform \textbullet\ Event-Driven Architecture \textbullet\ Auth0 \textbullet\ Datadog
+ \item \textbf{Functional Programming:} Applied railway-oriented error handling,
+ immutable data models, and shared type libraries across services, bringing Haskell's
+ Either monad patterns to Kotlin. Emphasized type safety and composability in API design.
+ \item \textbf{Service Development:} Built subscription, payment, and user management
+ microservices with Kotlin/Ktor. Developed RESTful and WebSocket APIs with asynchronous
+ event processing via SQS/SNS for non-blocking workflows.
+ \item \textbf{Security \& Access Control:} Engineered JWT validation library for Auth0
+ and permission enforcement APIs with resource-level access control, verifying user
+ permissions and resource ownership across services.
+ \item \textbf{Infrastructure:} Configured Kubernetes resources (deployments, services,
+ secrets, ConfigMaps) and contributed Terraform resources (SNS, SQS, ingresses) to
+ shared infrastructure codebase.
+ \item \textbf{Tech Stack}: Kotlin (Ktor) \textbullet\ PostgreSQL \textbullet\
+ Kubernetes/EKS \textbullet\ AWS \textbullet\ Terraform \textbullet\ Auth0
\end{itemize}
}
-% \company{Software Engineer}
-% {Nexure/Electrolux AB}
-% {Stockholm, Sweden}
-% {Aug 2021 -- present}
-% {
-% Designed and maintained backend services for Appliance Repair Service Platforms using functional programming principles in Kotlin, supporting Sweden/NA launches and EU expansion.
-% \vspace{0.25em}
-% \begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
-% \item Developed \textbf{subscriptions engine} and \textbf{user management service} using \textbf{Kotlin} and \textbf{Ktor}, enabling features like recurring payments and user account management.
-% \item Contributed to \textbf{Auth0 migration} of users from legacy to new platform, ensuring seamless transitions without user intervention.
-% \item Developed \textbf{synchronization scripts} to update \textbf{APIs}, roles, and permissions in \textbf{Auth0}, ensuring consistency across dev, staging, and prod environments.
-% \item Introduced \textbf{type library} for shared business logic across \textbf{microservices}, enhancing code consistency and maintainability.
-% \item Built \textbf{JWT deserialization} library and \textbf{APIs} for permission-based checks on \textbf{HTTP} and \textbf{WebSocket} endpoints, securing all public-facing services.
-% \item Introduced \textbf{railway-oriented} and \textbf{workflow-oriented programming}, improving error handling and process clarity in \textbf{microservices}.
-% \item Supported two in-house platform launches in Sweden and North America for \textbf{Appliance Repair Service} features, with ongoing EU expansion.
-% \item Contributed to \textbf{infrastructure} via \textbf{Terraform} for \textbf{AWS} resources (RDS, SNS, SQS).
-% \item Enhanced legacy platform with \textbf{Appliance Repair Service} features, including bordereau for insurance transactions,
-% tax calculation updates, and cross-database record corrections, improving system reliability.
-% \item Tech stack: \textbf{Kotlin} (Ktor), \textbf{Kubernetes}, \textbf{PostgreSQL}, \textbf{MongoDB}, \textbf{Helm}, \textbf{Terraform}, \textbf{AWS}, \textbf{CI/CD}, \textbf{WebSocket}, \textbf{Auth0}, \textbf{DataDog}.
-% \end{itemize}
-% }
-
\company{Machine Learning Engineer (Cybersecurity)}
{Saab AB}
{Stockholm, Sweden}
{Aug 2020 -- Aug 2021}
{
\begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
- \item \textbf{Event-Driven Architecture}: Architected \textbf{Kafka-driven microservices} for sensor data ingestion and processing, replacing batch-based database fetching and improving system responsiveness.
- \item \textbf{Automated Model Deployment}: Developed modular Python pipelines for training and evaluating deep learning models, enabling \textbf{automated selection} of optimal models to production. This system streamlined the transition from research to deployment.
- \item \textbf{Cloud-Native Optimization}: Reduced Docker image sizes from 2GB to 73MB using multistage builds and Alpine Linux. This improved CI/CD pipeline efficiency, slashing average build times from 10–30 minutes to under 10 seconds with \textbf{Tekton}.
- \item \textbf{Distributed Systems}: Engineered a \textbf{graph-based sensor fusion microservice} to correlate data across sensors, enhancing complex pattern analysis for anomaly/threat detection.
- \item \textbf{DevOps Leadership}: Spearheaded development tooling practices, deploying and maintaining a private PyPI server to enforce versioning and resolve dependency conflicts, improving team productivity.
- \item \textbf{Tech Stack}: Python, Kafka, Kubernetes, PostgreSQL, Redis, TensorFlow, Tekton, Docker.
+ \item \textbf{Event-Driven Architecture:} Architected Kafka-based microservices for
+ sensor data ingestion and processing, replacing batch-based database polling. Enabled
+ multiple services to subscribe to incoming data streams for parallel processing and
+ pattern analysis.
+ \item \textbf{Sensor Fusion System:} Developed graph-based microservice for correlating
+ data across heterogeneous sensor systems, enabling downstream services to perform
+ complex pattern analysis and anomaly detection.
+ \item \textbf{ML Pipeline Infrastructure:} Built modular Python pipelines for training
+ and evaluating deep learning models with automated metric-based model selection for
+ production deployment.
+ \item \textbf{DevOps \& Infrastructure:} Redesigned Docker build strategy across all
+ Python microservices, reducing image sizes from ~2GB to ~73MB using multistage builds
+ and Alpine base images. This eliminated persistent storage issues in self-hosted Docker
+ registry and reduced CI/CD build times from 10-30 minutes to seconds in Tekton.
+ \item \textbf{Developer Tooling:} Deployed and maintained private PyPI server for <10
+ developers, eliminating circular dependencies and enforcing proper package versioning.
+ Significantly improved code quality and development workflow across the team.
+ \item \textbf{Tech Stack}: Python \textbullet\ Kafka \textbullet\ Kubernetes
+ \textbullet\ PostgreSQL \textbullet\ Redis \textbullet\ Tekton \textbullet\ Docker
\end{itemize}
}
@@ -62,39 +61,9 @@ Designed and maintained backend services for Appliance Repair Service Platforms
{Aug 2018 -- Aug 2020}
{
\begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
- \item \textbf{Signal Processing}: Built simulation software for realistic radar/communication signal environments, enabling training and evaluating machine learning models for electronic warfare applications.
- \item \textbf{Algorithm Research}: Researched and prototyped multiple stages of the radar warning receiver with machine learning models, focusing on improving signal classification (communication vs radar) and source grouping.
- \item \textbf{Tech stack}: Python, VHDL, Signal Processing.
+ \item Built signal simulation software for radar and communication environments, enabling
+ team to train and evaluate ML models. Researched ML approaches for signal classification
+ under compute and data constraints.
+ \item \textbf{Tech Stack}: Python \textbullet\ Signal Processing
\end{itemize}
-}
-
-% \company{Machine Learning Engineer}
-% {Saab AB}
-% {Stockholm, Sweden}
-% {Aug 2018 -- Aug 2021}
-% {
-% Developed machine learning solutions for defense systems, creating \textbf{data pipelines}, \textbf{machine learning models}, \textbf{microservices}, and \textbf{CI/CD workflows} for cybersecurity and electronic warfare applications.
-% \vspace{0.25em}
-% \begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
-% \item Built \textbf{Python}-based \textbf{data pipelines}, automating dataset preprocessing for machine learning.
-% \item Architected \textbf{asynchronous microservices} with \textbf{Kafka}, enabling continuous sensor data subscription and processing across services, improving system responsiveness over batch-based database fetching.
-% \item Designed modular \textbf{PyTorch pipelines} for \textbf{deep learning} model training and evaluation, automating best-model selection for production deployment of trajectory prediction models.
-% \item Implemented trajectory prediction models with \textbf{LSTM} and \textbf{transformer} based architectures for anomaly detection.
-% \item Deployed a private \textbf{PyPI server}, enforcing versioning and resolving dependency conflicts, improving development experience for the entire team.
-% \item Developed a \textbf{graph-based} \textbf{sensor fusion} microservice, enhancing complex pattern analysis for cybersecurity applications.
-% \item Optimized \textbf{Docker images} from 2GB to 73MB using \textbf{multistage builds} and Alpine, reducing CI/CD build times from 10--30 minutes to under 10 seconds with \textbf{Tekton}.
-% \item Researched replacing different stages of the radar warning receiver with machine learning models, enhancing classification of communication vs radar signals, improving detection of Low Probability of Intercept radar pulses.
-% \item Tech stack: \textbf{Python} (Pandas, PyTorch, FastAPI), \textbf{Kafka}, \textbf{Redis}, \textbf{PostgreSQL}, \textbf{ArangoDB}, \textbf{Kubernetes}, \textbf{Helm}, \textbf{Docker}, \textbf{Tekton}, \textbf{VHDL}.
-% \end{itemize}
-% }
-
-
-%\company{Master's Thesis}
-%{Ericsson AB}
-%{Jan 2018 -- June 2018 \qquad 6 months}
-%{Stockholm, Sweden}
-%{
-%Built a \textbf{natural language processing} system using a biologically %inspired machine learning algorithm, called \textbf{Hierarchical Temporal %Memory}, for detecting anomalies in system logs. Demonstrated that the system %was able to achieve similar performance to the existing system. Developed with %\textbf{Python}, \textbf{NuPIC}, and \textbf{pandas}.
-%}\\
-
-%\ruler
+}\\