%-------------------------
% CV — Adam Ladachowski
% Sans-serif, A4, matches desktop style
%-------------------------
\documentclass[a4paper,9pt]{article}
\usepackage{extsizes}

\usepackage[a4paper,left=1.8cm,right=1.8cm,top=1.8cm,bottom=2.0cm]{geometry}
\AtBeginDocument{\fontsize{10}{12.5}\selectfont}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{titlesec}
\usepackage{enumitem}
\usepackage[hidelinks]{hyperref}
\usepackage{fontawesome5}
\usepackage{xcolor}
\usepackage{tabularx}
\input{glyphtounicode}
\pdfgentounicode=1

\pagestyle{empty}

% Section: bold, large, with thick rule underneath
\titleformat{\section}
  {\large\bfseries}
  {}{0em}{}[\vspace{2pt}\hrule height 0.8pt\vspace{4pt}]
\titlespacing*{\section}{0pt}{12pt}{5pt}

% Remove paragraph indent
\setlength{\parindent}{0pt}

% Bullet list style
\setlist[itemize]{leftmargin=1.2em, itemsep=2pt, parsep=1pt, topsep=4pt, label=\textbullet}

%------- Custom commands --------

% Job heading: two rows, full width tabular
% Row 1: bold title (left) — date (right)
% Row 2: italic company (left) — italic location (right)
\newcommand{\jobheading}[4]{%
  \vspace{6pt}%
  \begin{tabular*}{\textwidth}{@{}l@{\extracolsep{\fill}}r@{}}
    \textbf{#1} & #2 \\
    \textit{#3} & \textit{#4} \\
  \end{tabular*}%
  \vspace{2pt}%
}

% Skill table row
\newcommand{\skillrow}[2]{%
  #1 & #2 \\[3pt]
}

%-------------------------------------------
\begin{document}

%---------- HEADING ----------
\begin{center}
  {\huge\textbf{Adam Ladachowski}} \\[5pt]
  {\small Warsaw, Poland \enspace|\enspace Remote\,/\,Hybrid \enspace|\enspace EU Citizen} \\[4pt]
  {\small
    \faIcon{envelope}\enspace\href{mailto:adam@saiden.dev}{adam@saiden.dev} \quad
    \faIcon{github}\enspace\href{https://github.com/aladac}{aladac} \quad
    \faIcon{linkedin}\enspace\href{https://linkedin.com/in/aladac}{aladac} \quad
    \faIcon{phone}\enspace\href{tel:+48535329895}{+48\,535\,329\,895}
  }
\end{center}

\vspace{2pt}

%---------- SUMMARY ----------
\small
Backend engineer with 20 years shipping production systems in Ruby and Rails.
Built platforms across telecom, media, proptech, SaaS, and event ticketing ---
from sole-engineer greenfields to large-scale Rails monoliths.
Currently designing and operating an AI development platform: agent orchestration,
model fine-tuning, and a semantic memory system.

%---------- EXPERIENCE ----------
\section{Experience}

\jobheading
  {Owner}{2016 -- Present}
  {SAIDEN --- Software consulting, contract engineering, and AI R\&D (\href{https://saiden.dev}{saiden.dev})}{Warsaw / Remote}
\begin{itemize}
  \item B2B vehicle for all contract work since 2016. Currently focused on AI platform development and open-source tooling.
\end{itemize}

\jobheading
  {Senior Software Engineer}{Jan 2023 -- Mar 2025}
  {Jampack --- Event ticketing \& hotel packages for festivals (180K+ guests, 90 countries)}{Remote}
\begin{itemize}
  \item Owned payment integration (Coinbase Commerce), insurance workflows, auth system, and cart recovery --- recovery mechanism measurably reduced booking abandonment.
  \item Drove architectural decisions across the platform. Mentored junior engineers.
  \item Stack: Ruby, Rails, PostgreSQL, Redis, Sidekiq, AWS (EKS/Kubernetes, CodePipeline), Heroku, GitHub Actions.
\end{itemize}

\jobheading
  {Senior Ruby Engineer}{Aug 2021 -- Jan 2023}
  {Marketer Technologies --- Norwegian proptech, AI-powered real estate marketing}{Remote}
\begin{itemize}
  \item Led a 3-person Rails team within a 15-person polyglot group (Rails, Node, Python). Designed inter-service communication via RabbitMQ.
  \item Delivered Smartsale --- a real estate sales platform with interactive Mapbox visualization and real-time pricing, now serving the Norwegian market.
  \item Stack: Ruby, Rails, PostgreSQL, GraphQL, RabbitMQ, Mapbox, OpenAPI, Elasticsearch.
\end{itemize}

\jobheading
  {Senior Software Engineer}{2016 -- 2021}
  {Roomzilla --- Smart workplace management SaaS (Cambridge Innovation Center)}{Warsaw}
\begin{itemize}
  \item Joined as sole engineer. Rebuilt the application, drove Rails 5\textrightarrow6 migration, then hired and led the team (2 Rails, 1 Vue) that completed the platform refactor.
  \item Calendar sync across Google and Microsoft ecosystems, Stripe payments, interactive floorplan navigation.
  \item Stack: Ruby, Rails, PostgreSQL, Vue.js, Redis, Google Calendar API, MS Graph API, Stripe.
\end{itemize}

\jobheading
  {Software Engineer}{2014 -- 2016}
  {Cyfrowy Polsat --- Largest digital TV platform in Central/Eastern Europe (3.5M+ subscribers)}{Warsaw}
\begin{itemize}
  \item Built Kantei --- a centralized Heroku-like CD platform, eliminating ad-hoc deployment across 5 engineering teams.
  \item Optimized VOD page load with global lazy loading. Co-developed IP tracking system for unauthorized streaming detection.
  \item Stack: Ruby, Rails, PostgreSQL, MongoDB, Sidekiq, Docker, HAproxy, etcd, fluentd.
\end{itemize}

\jobheading
  {Software Engineer / Team Lead}{2006 -- 2014}
  {Comverga (mProfi) --- Telecom SaaS, SMS/voice APIs with direct carrier integrations}{Warsaw}
\begin{itemize}
  \item Built and grew the engineering team from 3 to 6 over 8 years. Designed SMS APIs (REST, SFTP), IVR flows on Asterisk, carrier-grade gateways via Kannel, ISDN/SIP trunk integrations, billing system for an MVNO.
  \item Stack: Ruby, Rails, PHP, Perl, Bash, Asterisk, Kannel, PostgreSQL, MySQL.
\end{itemize}

%---------- AI & PLATFORM ENGINEERING ----------
\section{AI \& Platform Engineering}

\jobheading
  {Creator / Operator}{2025 -- Present}
  {Personal AI development platform}{}
\begin{itemize}
  \item Designed a multi-host agent orchestration platform (Rust, TypeScript, WireGuard mesh) with a semantic memory system (SQLite + embeddings, 5{,}500+ entries) and cross-machine task dispatch.
  \item Ran LoRA fine-tuning on Qwen 27B (H100/H200, Unsloth, vLLM serving) and built a voice synthesis pipeline with cloned voices (Chatterbox/Piper TTS).
  \item Shipped client applications (web chat via FastAPI/SSE, iOS and macOS prototypes) and an extensible plugin system with 25+ tool modules.
\end{itemize}

%---------- INFRASTRUCTURE ----------
\section{Self-Hosted Infrastructure}

\begin{itemize}
  \item Three-host mesh over WireGuard (macOS + 2x Linux) --- Gitea for source control, Coolify for Docker deployments, Cloudflare tunnels for public endpoints.
  \item opencode (AI coding platform) running across all hosts --- agents, MCP servers, cross-machine dispatch, persistent sessions.
  \item GPU compute on RunPod (H100/H200) for training, local NVIDIA for inference and TTS serving.
\end{itemize}

\newpage
%---------- OPEN SOURCE ----------
\section{Open Source}

\vspace{2pt}
\begin{tabularx}{\textwidth}{@{}l X@{}}
  \textbf{tensors} & CLI toolkit for inspecting safetensor files, downloading CivitAI models, and generating images. \newline \textit{\href{https://repos.saiden.dev/aladac/tensors}{repos.saiden.dev/aladac/tensors}} \\[24pt]
  \textbf{browse} & Browser automation MCP server that gives AI agents full control of a Playwright session. \newline \textit{\href{https://repos.saiden.dev/aladac/browse}{repos.saiden.dev/aladac/browse}} \\[24pt]
  \textbf{chat} & Web chat interface with persona calibration, SSE streaming, and real-time TTS playback. \newline \textit{\href{https://repos.saiden.dev/aladac/chat}{repos.saiden.dev/aladac/chat}} \\[24pt]
  \textbf{madcat-say} & On-device voice cloning CLI built on VoxCPM2, running natively on Apple Silicon via MLX. \newline \textit{\href{https://repos.saiden.dev/aladac/madcat-say}{repos.saiden.dev/aladac/madcat-say}} \\[24pt]
  \textbf{lora} & LoRA fine-tuning pipeline for building persona, specialist, and voice adapters. \newline \textit{\href{https://repos.saiden.dev/madcat-os/lora}{repos.saiden.dev/madcat-os/lora}} \\[24pt]
  \textbf{spark} & Recipes and tooling for fine-tuning models on the NVIDIA DGX Spark. \newline \textit{\href{https://repos.saiden.dev/madcat-os/spark}{repos.saiden.dev/madcat-os/spark}} \\
\end{tabularx}

%---------- SKILLS ----------
\section{Skills}

\vspace{2pt}
\begin{tabularx}{\textwidth}{@{}l X@{}}
  \skillrow{\textbf{Core}}{Ruby (20 yrs), Rails, PostgreSQL, Redis, Sidekiq, REST/GraphQL APIs}
  \skillrow{\textbf{Secondary}}{TypeScript, Python, JavaScript, Vue.js, React, FastAPI, Hotwire/Turbo}
  \skillrow{\textbf{AI \& ML}}{LLM fine-tuning (LoRA/Unsloth), vLLM serving, prompt engineering, RAG, embeddings, agent orchestration, MCP/tool-use}
  \skillrow{\textbf{Data}}{PostgreSQL, MongoDB, Redis, Elasticsearch/OpenSearch, SQLite, MySQL}
  \skillrow{\textbf{Infrastructure}}{Docker, Kubernetes (EKS), AWS (S3, SQS/SNS, RDS, CodePipeline), Heroku, GitHub Actions, Cloudflare, WireGuard}
  \skillrow{\textbf{Practices}}{RSpec, CI/CD, code review, system architecture, mentoring, remote-first collaboration}
\end{tabularx}

%---------- EDUCATION & OTHER ----------
\section{Education \& Other}

\vspace{2pt}
\begin{tabularx}{\textwidth}{@{}l X@{}}
  \textbf{1998 -- 2000} & Warsaw University of Technology (Politechnika Warszawska) --- Faculty of Production Engineering, weapons systems specialization. Did not complete. \\[4pt]
  \textbf{Languages} & Polish (native), English (fluent, daily working language), German (basic), Russian (basic, reads Cyrillic). \\[4pt]
  \textbf{Availability} & B2B contract or employment. Remote preferred, hybrid possible. Immediate. \\
\end{tabularx}

%---------- ANCIENT HISTORY ----------
\section{Ancient History}

\jobheading
  {Linux Systems Administrator}{1999 -- 2006}
  {Polska Online \textrightarrow\ NET2NET \textrightarrow\ TDCI --- ISP and network integration (successive acquisitions)}{Warsaw}
\begin{itemize}
  \item Joined Polska Online as a Linux sysadmin. Transitioned through NET2NET into TDCI as the company changed hands.
  \item Network installations and configurations for Polska Online and Polbox --- DSL deployments, Cisco equipment, on-site infrastructure. Built a large-scale corporate network for Ford dealerships on Cisco 1603 ISDN BRI routers.
  \item TDCI contract for MSWiA (Ministry of Internal Affairs) --- network setup and Windows 2000 fileserver on Active Directory domain.
  \item Stack: Linux (Red Hat, Debian), Cisco IOS, Windows 2000 Server, Bash, DNS, DHCP, Apache, qmail.
\end{itemize}

\jobheading
  {Unix Systems Administrator}{1998 -- 1999}
  {Polnet Technologies International --- IT services for PKO BP (Poland's largest retail bank)}{Warsaw}
\begin{itemize}
  \item First job. Administered Sequoia fault-tolerant servers and Oracle databases serving PKO BP's housing savings system.
  \item Stack: Solaris, Linux (Red Hat), Oracle, Bash, Apache.
\end{itemize}

\vspace{2pt}
\small\textit{Linux user since 1996 (Red Hat 4.x, kernel 2.0). First internet dial-in the same year.}

%---------- INTERESTS ----------
\section{Interests}

\begin{itemize}
  \item Honda guy. Own Sayuki --- a track-prepped EJ9 Civic with a B16A swap. Helga the Q5 8R handles family duties. Track days at Tor Modlin and Tor \L\'od\'z --- short technical circuits, both around 1 km.
  \item Science fiction --- both reading and writing. Currently working on a near-future military fiction project.
  \item Anime and manga. Ghost in the Shell is a permanent reference frame.
  \item Linux since the mid-90s. Still run it on everything that isn't a Mac.
  \item Aggressive inline. Rarely visit the skatepark these days --- kids grew out of it, but I can still fakie and grind.
  \item Mechanical engineering dropout who never stopped thinking about how things move.
\end{itemize}

\end{document}
