177 lines
No EOL
9.6 KiB
TeX
177 lines
No EOL
9.6 KiB
TeX
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% Long Professional Curriculum Vitae
|
|
% LaTeX Template
|
|
% Version 1.1 (9/12/12)
|
|
%
|
|
% This template has been downloaded from:
|
|
% http://www.latextemplates.com
|
|
%
|
|
% Original author:
|
|
% Rensselaer Polytechnic Institute (http://www.rpi.edu/dept/arc/training/latex/resumes/)
|
|
%
|
|
% Important note:
|
|
% This template requires the res.cls file to be in the same directory as the
|
|
% .tex file. The res.cls file provides the resume style used for structuring the
|
|
% document.
|
|
%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\documentclass[10pt]{res} % Use the res.cls style, the font size can be changed to 11pt or 12pt here
|
|
|
|
\usepackage{helvet} % Default font is the helvetica postscript font
|
|
%\usepackage{newcent} % To change the default font to the new century schoolbook postscript font uncomment this line and comment the one above
|
|
|
|
\newsectionwidth{0pt} % Stops section indenting
|
|
|
|
\begin{document}
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
% YOUR NAME AND ADDRESS(ES) SECTION
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\name{Bastian Gruber\\ \\} % Your name at the top
|
|
|
|
% If you don't want one of the addresses, simply remove all the text in the first or second \address{} bracket
|
|
|
|
\address{{\bf Professional} \\ LinkedIn: linkedin.com/in/bastiangruber \\ Book: rustwebdevelopment.com \\ E-Mail: gruberbastian@me.com \\ Website: bastiangruber.ca}
|
|
|
|
\address{{\bf Code} \\ GitHub: github.com/gruberb \\ Git: code.novanexus.ca/gruberb} % Your address 2
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\begin{resume}
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
% OBJECTIVE SECTION
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\section{\centerline{SUMMARY}}
|
|
|
|
\vspace{8pt} % Gap between title and text
|
|
Staff Engineer at Mozilla, shipping Rust, C++, and Python to hundreds of millions of Firefox users across Desktop, Android, and iOS. Promoted for leading cross-team projects and getting complex, multi-platform features shipped. 12+ years of backend and systems work, published author (``Rust Web Development''), and 13 years of technical writing for outlets like c't and iX.
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\vspace{0.2in} % Some whitespace between sections
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
% SKILLS SECTION
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\section{\centerline{SKILLS}}
|
|
|
|
\vspace{8pt} % Gap between title and text
|
|
{\bf Languages:} Rust, C++, Python, TypeScript, Go \\
|
|
{\bf Systems \& Backend:} async Rust (Axum, Actix), Python/FastAPI, Node.js, FFI/UniFFI, gRPC, REST \\
|
|
{\bf Architecture:} distributed systems, P2P protocols, system design, cross-platform (Desktop/Android/iOS) \\
|
|
{\bf Infrastructure \& Observability:} AWS, GCP, Docker, Kubernetes, CI/CD, Grafana, performance profiling
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\vspace{0.2in} % Some whitespace between sections
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
% PROFESSIONAL EXPERIENCE SECTION
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\section{\centerline{PROFESSIONAL EXPERIENCE}}
|
|
|
|
\vspace{8pt} % Gap between title and text
|
|
|
|
{\sl Staff Software Engineer} \hfill Feb 2026 - Present \\
|
|
Mozilla, Remote \\
|
|
Promoted for cross-team technical leadership and delivering multi-platform privacy features.
|
|
\begin{itemize} \itemsep -2pt
|
|
\item Leading the Image Service project: replaced 3 fragile, duplicated favicon systems with a single GCS-backed API serving 4+ internal teams. Extended an existing Python/Airflow pipeline instead of building a new service, reducing maintenance burden across the board
|
|
\item Implemented Oblivious HTTP (OHTTP) in application-services (shared Rust component cross-compiled to Swift/Kotlin via UniFFI) and wrote the C++ integration for Firefox Desktop. Now live on Firefox iOS, Android, and Desktop, covering millions of users
|
|
\item Maintaining the Firefox Push notification service (Rust backend, 50k req/s, sub-200ms latency). Reduced memory footprint, added circuit breakers, built Grafana dashboards for observability
|
|
\end{itemize}
|
|
|
|
{\sl Senior Software Engineer} \hfill Jun 2024 - Jan 2026 \\
|
|
Mozilla, Remote \\
|
|
\begin{itemize} \itemsep -2pt
|
|
\item Core maintainer of Merino, the Python/FastAPI service powering Firefox Suggest. All search suggestions in Firefox route through Merino, which enriches and serves them in a privacy-preserving way
|
|
\item Code reviewer for UniFFI, Mozilla's multi-language bindings generator (Rust to Kotlin, Swift, Python, JavaScript)
|
|
\item Contributing directly to Firefox Desktop (mozilla-central): shipping Rust and C++ code
|
|
\item Led ``Rusty Fridays'' sessions (6--10 engineers per session), building internal Rust knowledge across teams
|
|
\end{itemize}
|
|
|
|
{\sl Technical Editor, ``From C to Rust''} \hfill Feb 2026 - Present \\
|
|
Manning Publications (Contract, Part-time) \\
|
|
Reviewing technical accuracy and pedagogical quality for Manning's C-to-Rust migration guide.
|
|
|
|
\vspace{4pt}
|
|
|
|
{\sl Senior Systems Engineer, Team Lead} \hfill Apr 2023 - Jun 2024 \\
|
|
Toposware (acquired by Polygon Labs), Remote \\
|
|
Core team of 4 building a peer-to-peer distributed network protocol from scratch in Rust. Our core implementation of the double echo protocol and the Ethereum bridge became part of the Polygon stack after acquisition.
|
|
\begin{itemize} \itemsep -2pt
|
|
\item Achieved 10x message throughput per node by profiling the actual bottleneck: optimized batch processing and serialization paths after discovering nodes were compute-bound on crypto operations, not network-limited
|
|
\item Built the EVM bridge connecting external Ethereum-compatible chains to the core network
|
|
\item Led the internal benchmarking initiative that changed where the team focused optimization effort
|
|
\end{itemize}
|
|
|
|
{\sl Senior Software Engineer} \hfill Aug 2022 - Feb 2023 \\
|
|
Centrifuge, Remote \\
|
|
Protocol team building DeFi infrastructure on Substrate/Polkadot in Rust.
|
|
\begin{itemize} \itemsep -2pt
|
|
\item Implemented on-chain fund pool mutations, the core feature enabling live capital allocation adjustments in the lending protocol
|
|
\item Replaced manual documentation with CI-driven auto-generation from Rust source, eliminating persistent drift between code and public docs
|
|
\end{itemize}
|
|
|
|
{\sl Author, ``Rust Web Development''} \hfill Oct 2020 - Dec 2022 \\
|
|
Manning Publications \\
|
|
Wrote and published an end-to-end guide covering async Rust, web frameworks, and production deployment.
|
|
|
|
\vspace{4pt}
|
|
|
|
{\sl Sr. Solutions Architect (promoted from SA)} \hfill Jun 2020 - Jul 2022 \\
|
|
Twilio Inc., Remote \\
|
|
\begin{itemize} \itemsep -2pt
|
|
\item Technical lead for Fortune 500 professional services engagements: diagnosed latency issues, redesigned messaging architectures, delivered implementation roadmaps sized to each client's team and resources
|
|
\item Created reusable engagement playbooks adopted across the EMEA Professional Services team
|
|
\end{itemize}
|
|
|
|
{\sl Systems Engineer, Core Backend} \hfill Aug 2019 - May 2020 \\
|
|
Kraken Digital Asset Exchange, Remote \\
|
|
Part of the first Rust team rewriting Kraken's core infrastructure from PHP.
|
|
\begin{itemize} \itemsep -2pt
|
|
\item Rewrote core banking services and API gateway in Rust, replacing legacy PHP services. The new stack handled significantly higher throughput with a smaller hardware footprint
|
|
\item Shipped the first version of the automated KYC verification flow, replacing manual processing right as COVID drove a massive spike in new customer sign-ups
|
|
\end{itemize}
|
|
|
|
\vspace{4pt}
|
|
|
|
{\sl Earlier Career} \hfill 2013 - 2019 \\
|
|
Sr. Software Engineer (freelance from 2016) across enterprise clients (OSRAM, K\"orber Digital, GIATA, Avenga) and startups (Dalia Research, blogfoster, smartB) in Berlin.
|
|
\begin{itemize} \itemsep -2pt
|
|
\item Founded ``Rust \& Tell Berlin'' meetup, grew it into the largest Rust meetup globally. Coordinated with companies for venue sponsorship, organized speakers, photographers, and videographers. Gave talks and created a welcoming space for the Rust community
|
|
\item Designed IoT authentication infrastructure at OSRAM for thousands of connected devices (Node.js, Go, Lua)
|
|
\item First engineering hire at K\"orber Digital: built real-time sensor data pipelines on AWS (Lambda, ECS, Route53)
|
|
\item Decomposed GIATA's monolithic PHP system into 6 Docker-based services, taught the existing team Scrum and JavaScript
|
|
\item Contributed to the Rust compiler and standard library during a self-directed sabbatical (2019)
|
|
\end{itemize}
|
|
|
|
{\sl Technical Writer} \hfill 2008 - 2020 \\
|
|
Freelance (Contract) \\
|
|
13 years writing for technical publications including c't, iX, Macwelt (IDG/Heise), and tech blogs (LogRocket, stadt-bremerhaven.de, mobilegeeks.de). Also authored ``OS X f\"ur Einsteiger'' (Bookboon, 2012).
|
|
|
|
%----------------------------------------------------------------------------------------
|
|
|
|
\vspace{0.2in} % Some whitespace between sections
|
|
|
|
\section{\centerline{EDUCATION}}
|
|
|
|
\vspace{8pt} % Gap between title and text
|
|
|
|
{\sl Bachelor of Science, Computer Science} \hfill Mar 2014 \\
|
|
TH Ingolstadt. Scholarship from Allianz Deutschland AG (fully funded dual-study program, 2010--2014)
|
|
|
|
|
|
|
|
\end{resume}
|
|
\end{document} |