summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--about.tex12
-rw-r--r--cv.tex24
-rw-r--r--education.tex18
-rw-r--r--experience.tex113
-rw-r--r--projects.tex11
-rw-r--r--rydholm-gustaf-cv.pdfbin88430 -> 250139 bytes
-rw-r--r--technical.tex29
-rw-r--r--todo.org6
8 files changed, 98 insertions, 115 deletions
diff --git a/about.tex b/about.tex
index f772eca..be232c2 100644
--- a/about.tex
+++ b/about.tex
@@ -3,11 +3,11 @@
\about{
-I like to tinker with computers/software, learning about good software architecture, and
-mathematics. I am captivated by the beauty of functional programming and I am going down
-the rabbit hole of learning some category theory for the sake of it. My current long term
-goal is to finish developing/deploy my stock trading system. In the mean time, I am
-looking for work where I can enhance my functional programming skills and generate value
-for the shareholders of the company.
+I am a backend engineer with a passion for functional programming and building robust,
+maintainable systems. Over the past five years, I have designed event-driven microservices
+and cloud-native architectures, increasingly adopting functional paradigms—from
+railway-oriented programming in Kotlin to studying Haskell, OCaml, and category theory.
+I am seeking a role where I can work full-time in Haskell, applying functional principles
+to real-world business problems while continuing to grow as an FP practitioner.
}
diff --git a/cv.tex b/cv.tex
index 65a2fd9..84cad48 100644
--- a/cv.tex
+++ b/cv.tex
@@ -1,12 +1,12 @@
\documentclass[7pt, oneside]{article}
-\usepackage[a4paper, top=0.4in, bottom=0.3in]{geometry}
+\usepackage[a4paper, top=1in, bottom=0.3in]{geometry}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage{float}
\usepackage{titlesec}
-\usepackage{ebgaramond}
+% \usepackage{ebgaramond}
\usepackage{booktabs}
\usepackage{siunitx}
@@ -29,6 +29,7 @@
\usepackage{nicefrac} % compact symbols for 1/2, etc.
\usepackage{microtype} % microtypography
+\usepackage{libertine}
\usepackage{fontawesome}
\usepackage{environ}
\usepackage{tabularx}
@@ -50,7 +51,7 @@
{0em}
{}
-\newcommand{\ruler}[0]{\noindent{\color{gray}\rule{\textwidth}{.2pt}}\par\vspace{0.1cm}}
+\newcommand{\ruler}[0]{\noindent{\color{gray}\rule{\textwidth}{.2pt}}\par\vspace{-0.8em}}
\newcommand{\largesubsection}[1]{
\normalsize\selectfont\fontshape{}\textbf{#1}}
@@ -81,17 +82,19 @@
\newcommand{\skills}[2]{
\fontshape{}\footnotesize\selectfont\textbf{#1}
- \vspace{0.1em}
+ \vspace{0.4em}
\\\begin{minipage}{\textwidth}
\centering\fontshape{}\scriptsize\selectfont{#2}
\end{minipage}
}
-\newcommand{\school}[2]{
+\newcommand{\school}[4]{
% Course
-\fontshape{}\footnotesize\selectfont{#1},
+\fontshape{}\footnotesize\selectfont{#1}\Hquad\textbullet\Hquad
% School
-\fontshape{}\footnotesize\selectfont{#2}
+\fontshape{}\footnotesize\selectfont\textbf{#2}\Hquad\textbullet\Hquad
+\fontshape{}\footnotesize\selectfont{#3}\Hquad\textbullet\Hquad
+\fontshape{}\footnotesize\selectfont{#4}
}
\newcommand{\projects}[1]{
@@ -110,10 +113,9 @@
\ruler
\input{experience}
\ruler
- \vspace{-0.5cm}
- \input{projects}
- \ruler
- \vspace{-0.5cm}
+ % \vspace{-0.5cm}
+ % \input{projects}
+ % \ruler
\input{education}
\ruler
}
diff --git a/education.tex b/education.tex
index 58df349..9319157 100644
--- a/education.tex
+++ b/education.tex
@@ -1,18 +1,16 @@
\section{Education}
-\vspace{-0.2cm}
-
-\school{\textbf{M.Sc., Electrical Engineering}}
-{\textbf{KTH Royal Institute of Technology} (2013 -- 2018)}
-
-\begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
- \item \school{Exchange Year}{\textbf{Imperial College London} (2016 -- 2017)}
-\end{itemize}
+\school{M.Sc., Electrical Engineering}
+{Kungliga Tekniska Högskolan (KTH)}
+{Stockholm, Sweden}
+{2013 -- 2018}\\
+\school{Exchange Year}
+{Imperial College London}
+{London, UK}
+{2016 -- 2017}\\
%\school{Dalian University of Technology}
%{Summer program in basic Mandarin and Chinese culture}
%{2014}
%{A summer program where I improved my understanding of Chinese culture and the Mandarin language.}\\
-
-%\ruler
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
+}\\
diff --git a/projects.tex b/projects.tex
index 1615871..05339f9 100644
--- a/projects.tex
+++ b/projects.tex
@@ -3,11 +3,12 @@
\projects{
\begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
- \item \href{https://github.com/aktersnurra/rag}{\textbf{Agentic AI/RAG}:} I developed a Retrieval Agumented Generation system for my local books and articles. However, I am currently refactoring it to an \textbf{agentic ai} system with \textbf{effect handlers}.
- \item \href{https://github.com/aktersnurra/rag}{\textbf{Trading Robot}:} I am currently working on a algorithmic trading system with signal processing and convex optimization. I mostly done literature study and data collection so far.
- \item \textbf{Unix Sysadmin:} I self host many application, such as: email, website, git server, encrypted chat server (xmpp), and calendar.
- \item \textbf{Unix Ricing:} riced my unix systems with st terminal, dwm, dmenu, tmux etc
- \item \textbf{neovim:} rolled my own neovim config
+ \item \textbf{Functional Programming Exploration:} Refactoring Python RAG system to
+ use effect handlers (eff package), applying algebraic effects patterns to manage I/O.
+ Practicing Haskell through Advent of Code and studying category theory concepts.
+ \item \textbf{Self-Hosted Infrastructure:} Operate personal server infrastructure
+ including email, XMPP chat, Git server, and website. Handle system administration,
+ security, and service maintenance.
\end{itemize}
}
diff --git a/rydholm-gustaf-cv.pdf b/rydholm-gustaf-cv.pdf
index b8de184..4aa2ebf 100644
--- a/rydholm-gustaf-cv.pdf
+++ b/rydholm-gustaf-cv.pdf
Binary files differ
diff --git a/technical.tex b/technical.tex
index 91ec77d..282136d 100644
--- a/technical.tex
+++ b/technical.tex
@@ -3,24 +3,31 @@
\skills{Programming Languages}{
\begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
- \item Haskell \textit{(Intermediate)}
- \textbullet\ Kotlin \textit{(Fluent)}
- \textbullet\ Python \textit{(Fluent)}
- \textbullet\ OCaml \textit{(Basic)}
- \textbullet\ Fennel \textit{(Proficient)}
+ \item \textbf{Haskell} \textit{(Intermediate)}
+ \textbullet\ Kotlin \textit{(Fluent)}
+ \textbullet\ Python \textit{(Fluent)}
+ \textbullet\ OCaml \textit{(Basic)}
+ \textbullet\ Fennel \textit{(Proficient)}
+ \textbullet\ SQL \textit{(Proficient)}
\textbullet\ Elixir \textit{(Basic)}
\end{itemize}
}
-
\skills{Core Competencies}{
\begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
- \item \textbf{Functional Programming:} Railway-Oriented Programming, Workflow-Oriented Programming, Monads, Type Systems, Immutability, Effect Handlers, Category Theory \textit{(studying)}
- \item \textbf{API Design:} RESTful APIs, \textbf{Idempotency}, Rate Limiting, Versioning
- \item \textbf{Event-Driven Systems:} Kafka, SQS, Message-Passing Architectures
- \item \textbf{Cloud/Infrastructure/DevOps:} Kubernetes, AWS (EKS), Terraform, Docker, Helm, Auth0, DataDog, CD/CI (Github Actions, CircleCI, Tekton)
- \item \textbf{Databases:} PostgresSQL, MongoDB, Redis, Qdrant
+ \item \textbf{Functional Programming:} Monads, Applicatives, Functors, Railway-Oriented Programming, Workflow-Oriented Programming, Type Systems, Immutability, Effect Handlers, Category Theory \textit{(studying)}
+ \item \textbf{Event-Driven \& Distributed Systems:} Kafka, SQS/SNS, Message-Passing Architectures, Asynchronous Processing, Microservices
+ \item \textbf{Databases:} PostgreSQL, MongoDB, Redis, TimescaleDB, Complex SQL Queries, Schema Design, Data Integrity
+ \item \textbf{Cloud \& Infrastructure:} AWS (EKS, RDS, SNS, SQS, S3), Kubernetes, Terraform, Docker, Helm
+ \item \textbf{DevOps \& Tooling:} CI/CD (GitHub Actions, CircleCI, Tekton), DataDog, Auth0
\end{itemize}
+}\\\\
+
+\skills{Tools \& Workflow}{
+ \begin{itemize}[topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=10pt,labelwidth=6pt,labelsep=4pt]
+ \item \textbf{Custom Unix environment:} dwm (tiling WM), st terminal, Neovim, tmux, dmenu
+ \item Miscellaneous: Git worktrees, Self-hosted infrastructure (email, git, XMPP), Shell scripting
+ \end{itemize}
}
% \programming{Haskell -- Familiar}{
diff --git a/todo.org b/todo.org
new file mode 100644
index 0000000..c8d61d4
--- /dev/null
+++ b/todo.org
@@ -0,0 +1,6 @@
+* TODO fix linkedin text
+- add category theory
+- add mcp tools etc
+- add algebraic effects
+
+* TODO Update cv with llm help