summaryrefslogtreecommitdiff
path: root/experience.tex
blob: b976c1303d9cfd1ca1c0408644391992c45d533b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
\section{Experience}

\company{Software Engineer}
{Nexure/Electrolux AB}
{Stockholm, Sweden}
{Aug 2021 -- present}
{
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 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{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 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}
}

\company{Machine Learning Engineer (Surveillance)}
{Saab AB}
{Stockholm, Sweden}
{Aug 2018 -- Aug 2020}
{
\begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
 \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}
}\\