chore: add kubernetes experience

This commit is contained in:
Bastian Gruber 2026-04-24 14:40:59 -03:00
parent 4dcec4e6b0
commit e6dfd1b932
No known key found for this signature in database
GPG key ID: 2E8AA0462DB41CBE
8 changed files with 257 additions and 460 deletions

View file

@ -4,23 +4,23 @@ html: index.html
index.html: resume.tex res.cls resume.cfg style.css
htlatex resume.tex "resume.cfg,html5" "" "" ""
LANG=C LC_ALL=C sed -i 's|</head>|<link href="style.css" rel="stylesheet" type="text/css" /></head>|; s|<title></title>|<title>Bastian Gruber - CV</title>|' resume.html
LANG=C LC_ALL=C sed -i 's|linkedin.com/in/bastiangruber|<a href="https://linkedin.com/in/bastiangruber">linkedin.com/in/bastiangruber</a>|g' resume.html
LANG=C LC_ALL=C sed -i 's|rustwebdevelopment.com|<a href="https://rustwebdevelopment.com">rustwebdevelopment.com</a>|g' resume.html
LANG=C LC_ALL=C sed -i 's|gruberbastian@me.com|<a href="mailto:gruberbastian@me.com">gruberbastian@me.com</a>|g' resume.html
LANG=C LC_ALL=C sed -i 's|github.com/gruberb|<a href="https://github.com/gruberb">github.com/gruberb</a>|g' resume.html
LANG=C LC_ALL=C sed -i 's|code.novanexus.ca/gruberb|<a href="https://code.novanexus.ca/gruberb">code.novanexus.ca/gruberb</a>|g' resume.html
LANG=C LC_ALL=C sed -i 's|bastiangruber.ca|<a href="https://bastiangruber.ca">bastiangruber.ca</a>|g' resume.html
LANG=C LC_ALL=C sed -i 's|Mozilla, Remote|<span class="company">Mozilla</span>, Remote|g' resume.html
LANG=C LC_ALL=C sed -i 's|Toposware (acquired by Polygon Labs), Remote|<span class="company">Toposware</span> (acquired by <span class="company">Polygon Labs</span>), Remote|g' resume.html
LANG=C LC_ALL=C sed -i 's|Centrifuge, Remote|<span class="company">Centrifuge</span>, Remote|g' resume.html
LANG=C LC_ALL=C sed -i 's|Manning Publications|<span class="company">Manning Publications</span>|g' resume.html
LANG=C LC_ALL=C sed -i 's|Twilio Inc., Remote|<span class="company">Twilio Inc.</span>, Remote|g' resume.html
LANG=C LC_ALL=C sed -i 's|Kraken Digital Asset Exchange, Remote|<span class="company">Kraken Digital Asset Exchange</span>, Remote|g' resume.html
LANG=C LC_ALL=C sed -i 's|TH Ingolstadt|<span class="company">TH Ingolstadt</span>|g' resume.html
LANG=C LC_ALL=C sed -i 's|OSRAM|<span class="company">OSRAM</span>|g' resume.html
LANG=C LC_ALL=C sed -i 's|GIATA|<span class="company">GIATA</span>|g' resume.html
LANG=C LC_ALL=C sed -i 's|Avenga|<span class="company">Avenga</span>|g' resume.html
perl -0pi -e 's|</head>|<link href="style.css" rel="stylesheet" type="text/css" /></head>|; s|<title></title>|<title>Bastian Gruber - CV</title>|' resume.html
perl -0pi -e 's|linkedin.com/in/bastiangruber|<a href="https://linkedin.com/in/bastiangruber">linkedin.com/in/bastiangruber</a>|g' resume.html
perl -0pi -e 's|rustwebdevelopment.com|<a href="https://rustwebdevelopment.com">rustwebdevelopment.com</a>|g' resume.html
perl -0pi -e 's|gruberbastian\@me\.com|<a href="mailto:gruberbastian\@me.com">gruberbastian\@me.com</a>|g' resume.html
perl -0pi -e 's|github.com/gruberb|<a href="https://github.com/gruberb">github.com/gruberb</a>|g' resume.html
perl -0pi -e 's|code.novanexus.ca/gruberb|<a href="https://code.novanexus.ca/gruberb">code.novanexus.ca/gruberb</a>|g' resume.html
perl -0pi -e 's|bastiangruber.ca|<a href="https://bastiangruber.ca">bastiangruber.ca</a>|g' resume.html
perl -0pi -e 's|Mozilla, Remote|<span class="company">Mozilla</span>, Remote|g' resume.html
perl -0pi -e 's|Toposware \(acquired by Polygon Labs\), Remote|<span class="company">Toposware</span> (acquired by <span class="company">Polygon Labs</span>), Remote|g' resume.html
perl -0pi -e 's|Centrifuge, Remote|<span class="company">Centrifuge</span>, Remote|g' resume.html
perl -0pi -e 's|Manning Publications|<span class="company">Manning Publications</span>|g' resume.html
perl -0pi -e 's|Twilio Inc\., Remote|<span class="company">Twilio Inc.</span>, Remote|g' resume.html
perl -0pi -e 's|Kraken Digital Asset Exchange, Remote|<span class="company">Kraken Digital Asset Exchange</span>, Remote|g' resume.html
perl -0pi -e 's|TH Ingolstadt|<span class="company">TH Ingolstadt</span>|g' resume.html
perl -0pi -e 's|OSRAM|<span class="company">OSRAM</span>|g' resume.html
perl -0pi -e 's|GIATA|<span class="company">GIATA</span>|g' resume.html
perl -0pi -e 's|Avenga|<span class="company">Avenga</span>|g' resume.html
mv resume.html index.html
pdf: resume.pdf

View file

@ -54,15 +54,16 @@ class="td00">Git: <a href="https://code.novanexus.ca/gruberb">code.novanexus.ca/
<h4 class="sectionHead"><a
id="x1-10000"></a><div
class="centerline"> SUMMARY </div></h4><div class="section">
<!--l. 55--><p class="noindent" >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 (&#8220;Rust Web Development&#8221;), and 13 years of technical
writing for outlets like c&#8217;t and iX.
<!--l. 60--><p class="noindent" >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 across distributed services,
Kubernetes-based infrastructure, and production operations; published Rust author and long-time technical
writer.
</p>
</div><h4 class="sectionHead"><a
id="x1-20000"></a><div
class="centerline"> SKILLS </div></h4><div class="section">
<!--l. 68--><p class="noindent" ><span
<!--l. 73--><p class="noindent" ><span
class="cmbx-10">Languages: </span>Rust, C++, Python, TypeScript, Go <br
class="newline" /><span
class="cmbx-10">Systems &amp; Backend: </span>async Rust (Axum, Actix), Python/FastAPI, Node.js, FFI/UniFFI, gRPC, REST
@ -77,141 +78,141 @@ profiling
</div><h4 class="sectionHead"><a
id="x1-30000"></a><div
class="centerline"> PROFESSIONAL EXPERIENCE </div></h4><div class="section">
<!--l. 85--><p class="noindent" ><span
<!--l. 90--><p class="noindent" ><span
class="cmsl-10">Staff Software Engineer </span>Feb 2026 - Present
<br
class="newline" /><span class="company">Mozilla</span>, Remote <br
class="newline" />Promoted for cross-team technical leadership and delivering multi-platform privacy features. </p>
<ul class="itemize1">
<li class="itemize">
<!--l. 89--><p class="noindent" >Leading the Image Service project: replaced 3 fragile, duplicated favicon systems with a single
<!--l. 94--><p class="noindent" >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
</p></li>
<li class="itemize">
<!--l. 90--><p class="noindent" >Implemented Oblivious HTTP (OHTTP) in application-services (shared Rust component
<!--l. 95--><p class="noindent" >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
</p></li>
<li class="itemize">
<!--l. 91--><p class="noindent" >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</p></li></ul>
<!--l. 96--><p class="noindent" >Maintaining the Firefox Push notification service (Rust backend on Kubernetes, 50k req/s, sub-200ms
latency). Reduced memory footprint, added circuit breakers, built Grafana dashboards for observability</p></li></ul>
<!--l. 94--><p class="noindent" ><span
<!--l. 99--><p class="noindent" ><span
class="cmsl-10">Senior Software Engineer </span>Jun 2024 - Jan 2026
<br
class="newline" /><span class="company">Mozilla</span>, Remote <br
class="newline" /></p>
<ul class="itemize1">
<li class="itemize">
<!--l. 97--><p class="noindent" >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
<!--l. 102--><p class="noindent" >Core maintainer of Merino, the Kubernetes-deployed Python/FastAPI service powering Firefox
Suggest. All search suggestions in Firefox route through Merino, which enriches and serves them in a
privacy-preserving way
</p></li>
<li class="itemize">
<!--l. 98--><p class="noindent" >Code reviewer for UniFFI, Mozilla&#8217;s multi-language bindings generator (Rust to Kotlin, Swift, Python,
<!--l. 103--><p class="noindent" >Code reviewer for UniFFI, Mozilla&#8217;s multi-language bindings generator (Rust to Kotlin, Swift, Python,
JavaScript)
</p></li>
<li class="itemize">
<!--l. 99--><p class="noindent" >Contributing directly to Firefox Desktop (mozilla-central): shipping Rust and C++ code
<!--l. 104--><p class="noindent" >Contributing directly to Firefox Desktop (mozilla-central): shipping Rust and C++ code
</p></li>
<li class="itemize">
<!--l. 100--><p class="noindent" >Led &#8220;Rusty Fridays&#8221; sessions (6&#8211;10 engineers per session), building internal Rust knowledge across
<!--l. 105--><p class="noindent" >Led &#8220;Rusty Fridays&#8221; sessions (6&#8211;10 engineers per session), building internal Rust knowledge across
teams</p></li></ul>
<!--l. 103--><p class="noindent" ><span
<!--l. 108--><p class="noindent" ><span
class="cmsl-10">Technical Editor, &#8220;From C to Rust&#8221; </span>Feb 2026 - Present
<br
class="newline" /><span class="company">Manning Publications</span> (Contract, Part-time) <br
class="newline" />Reviewing technical accuracy and pedagogical quality for Manning&#8217;s C-to-Rust migration guide.
</p><!--l. 109--><p class="noindent" ><span
</p><!--l. 114--><p class="noindent" ><span
class="cmsl-10">Senior Systems Engineer, Team Lead </span>Apr 2023 - Jun 2024
<br
class="newline" /><span class="company">Toposware</span> (acquired by <span class="company">Polygon Labs</span>), Remote <br
class="newline" />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.
</p>
class="newline" />Core team of 4 building a peer-to-peer distributed network protocol from scratch in Rust, with Kubernetes-based
deployment and benchmarking environments. Our core implementation of the double echo protocol and the
Ethereum bridge became part of the Polygon stack after acquisition. </p>
<ul class="itemize1">
<li class="itemize">
<!--l. 113--><p class="noindent" >Achieved 10x message throughput per node by profiling the actual bottleneck: optimized batch
<!--l. 118--><p class="noindent" >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
</p></li>
<li class="itemize">
<!--l. 114--><p class="noindent" >Built the EVM bridge connecting external Ethereum-compatible chains to the core network
<!--l. 119--><p class="noindent" >Built the EVM bridge connecting external Ethereum-compatible chains to the core network
</p></li>
<li class="itemize">
<!--l. 115--><p class="noindent" >Led the internal benchmarking initiative that changed where the team focused optimization effort</p></li></ul>
<!--l. 118--><p class="noindent" ><span
<!--l. 120--><p class="noindent" >Led the internal benchmarking initiative that changed where the team focused optimization effort</p></li></ul>
<!--l. 123--><p class="noindent" ><span
class="cmsl-10">Senior Software Engineer </span>Aug 2022 - Feb 2023
<br
class="newline" /><span class="company">Centrifuge</span>, Remote <br
class="newline" />Protocol team building DeFi infrastructure on Substrate/Polkadot in Rust. </p>
<ul class="itemize1">
<li class="itemize">
<!--l. 122--><p class="noindent" >Implemented on-chain fund pool mutations, the core feature enabling live capital allocation adjustments
<!--l. 127--><p class="noindent" >Implemented on-chain fund pool mutations, the core feature enabling live capital allocation adjustments
in the lending protocol
</p></li>
<li class="itemize">
<!--l. 123--><p class="noindent" >Replaced manual documentation with CI-driven auto-generation from Rust source, eliminating
<!--l. 128--><p class="noindent" >Replaced manual documentation with CI-driven auto-generation from Rust source, eliminating
persistent drift between code and public docs</p></li></ul>
<!--l. 126--><p class="noindent" ><span
<!--l. 131--><p class="noindent" ><span
class="cmsl-10">Author, &#8220;Rust Web Development&#8221; </span>Oct 2020 - Dec 2022
<br
class="newline" /><span class="company">Manning Publications</span> <br
class="newline" />Wrote and published an end-to-end guide covering async Rust, web frameworks, and production deployment.
</p><!--l. 132--><p class="noindent" ><span
</p><!--l. 137--><p class="noindent" ><span
class="cmsl-10">Sr. Solutions Architect (promoted from SA) </span>Jun 2020 - Jul 2022
<br
class="newline" /><span class="company">Twilio Inc.</span>, Remote <br
class="newline" /></p>
<ul class="itemize1">
<li class="itemize">
<!--l. 135--><p class="noindent" >Technical lead for Fortune 500 professional services engagements: diagnosed latency issues, redesigned
<!--l. 140--><p class="noindent" >Technical lead for Fortune 500 professional services engagements: diagnosed latency issues, redesigned
messaging architectures, delivered implementation roadmaps sized to each client&#8217;s team and resources
</p></li>
<li class="itemize">
<!--l. 136--><p class="noindent" >Created reusable engagement playbooks adopted across the EMEA Professional Services team</p></li></ul>
<!--l. 139--><p class="noindent" ><span
<!--l. 141--><p class="noindent" >Created reusable engagement playbooks adopted across the EMEA Professional Services team</p></li></ul>
<!--l. 144--><p class="noindent" ><span
class="cmsl-10">Systems Engineer, Core Backend </span>Aug 2019 - May 2020
<br
class="newline" /><span class="company">Kraken Digital Asset Exchange</span>, Remote <br
class="newline" />Part of the first Rust team rewriting Kraken&#8217;s core infrastructure from PHP. </p>
<ul class="itemize1">
<li class="itemize">
<!--l. 143--><p class="noindent" >Rewrote core banking services and API gateway in Rust, replacing legacy PHP services. The new stack
<!--l. 148--><p class="noindent" >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
</p></li>
<li class="itemize">
<!--l. 144--><p class="noindent" >Shipped the first version of the automated KYC verification flow, replacing manual processing right as
<!--l. 149--><p class="noindent" >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</p></li></ul>
<!--l. 149--><p class="noindent" ><span
<!--l. 154--><p class="noindent" ><span
class="cmsl-10">Earlier Career </span>2013 - 2019
<br
class="newline" />Sr. Software Engineer (freelance from 2016) across enterprise clients (<span class="company">OSRAM</span>, Körber Digital, <span class="company">GIATA</span>, <span class="company">Avenga</span>) and
startups (Dalia Research, blogfoster, smartB) in Berlin. </p>
<ul class="itemize1">
<li class="itemize">
<!--l. 152--><p class="noindent" >Founded &#8220;Rust &amp; Tell Berlin&#8221; meetup, grew it into the largest Rust meetup globally. Coordinated with
<!--l. 157--><p class="noindent" >Founded &#8220;Rust &amp; Tell Berlin&#8221; 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
</p></li>
<li class="itemize">
<!--l. 153--><p class="noindent" >Designed IoT authentication infrastructure at <span class="company">OSRAM</span> for thousands of connected devices (Node.js,
<!--l. 158--><p class="noindent" >Designed IoT authentication infrastructure at <span class="company">OSRAM</span> for thousands of connected devices (Node.js,
Go, Lua)
</p></li>
<li class="itemize">
<!--l. 154--><p class="noindent" >First engineering hire at Körber Digital: built real-time sensor data pipelines on AWS (Lambda, ECS,
Route53)
<!--l. 159--><p class="noindent" >First engineering hire at Körber Digital: built real-time sensor data pipelines and cloud service
deployments on AWS (Lambda, ECS, Route53, Kubernetes)
</p></li>
<li class="itemize">
<!--l. 155--><p class="noindent" >Decomposed <span class="company">GIATA</span>&#8217;s monolithic PHP system into 6 Docker-based services, taught the existing team
<!--l. 160--><p class="noindent" >Decomposed <span class="company">GIATA</span>&#8217;s monolithic PHP system into 6 Docker-based services, taught the existing team
Scrum and JavaScript
</p></li>
<li class="itemize">
<!--l. 156--><p class="noindent" >Contributed to the Rust compiler and standard library during a self-directed sabbatical (2019)</p></li></ul>
<!--l. 159--><p class="noindent" ><span
<!--l. 161--><p class="noindent" >Contributed to the Rust compiler and standard library during a self-directed sabbatical (2019)</p></li></ul>
<!--l. 164--><p class="noindent" ><span
class="cmsl-10">Technical Writer </span>2008 - 2020
<br
class="newline" />Freelance (Contract) <br
@ -222,7 +223,7 @@ class="newline" />13 years writing for technical publications including c&#8217;
</div><h4 class="sectionHead"><a
id="x1-40000"></a><div
class="centerline"> EDUCATION </div></h4><div class="section">
<!--l. 171--><p class="noindent" ><span
<!--l. 176--><p class="noindent" ><span
class="cmsl-10">Bachelor of Science, Computer Science </span>Mar 2014
<br
class="newline" /><span class="company">TH Ingolstadt</span>. Scholarship from Allianz Deutschland AG (fully funded dual-study program, 2010&#8211;2014)

Binary file not shown.

Binary file not shown.

View file

@ -1,20 +1,17 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026/Arch Linux) (preloaded format=latex 2026.3.10) 17 MAR 2026 07:46
This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026) (preloaded format=pdflatex 2026.3.1) 24 APR 2026 14:21
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCo
de"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.
{\g@addto@macro\@documentclasshook{\RequirePackage[#1,html]{tex4ht}}\let\HCode\
documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname
tex4ht\endcsname{#1,html}\def\HCode####1{\documentstyle[tex4ht,}\@ifnextchar[{
\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode resume.cfg,html5.a.b.c.\inp
ut resume.tex
(./resume.tex (./res.cls
**resume.tex
(./resume.tex
LaTeX2e <2025-11-01>
L3 programming layer <2026-01-19>
(./res.cls
Document Style `res' <26 Sep 89>.
Document Class: res 2000/05/19 v1.4b Resume class
(/usr/share/texmf-dist/tex/latex/base/article.cls
(/usr/local/texlive/2026basic/texmf-dist/tex/latex/base/article.cls
Document Class: article 2025/01/22 v1.4n Standard LaTeX document class
(/usr/share/texmf-dist/tex/latex/base/size10.clo
(/usr/local/texlive/2026basic/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2025/01/22 v1.4n Standard LaTeX file (size option)
)
\c@part=\count275
@ -41,403 +38,86 @@ No auxiliary output files.
\resumewidth=\dimen150
\@columnwidth=\dimen151
\c@numberofcolumns=\count283
) (/usr/share/texmf-dist/tex/generic/tex4ht/tex4ht.sty
version 2025-12-14-13:41
Package: tex4ht
--------------------------------------
--- Note --- for _ at preamble, use the command line option `early_'
--------------------------------------
--------------------------------------
--- Note --- for ^ at preamble, use the command line option `early^'
--------------------------------------
\tmp:toks=\toks22
)
(/usr/share/texmf-dist/tex/generic/tex4ht/usepackage.4ht
version 2025-08-27-10:30
)
(/usr/share/texmf-dist/tex/latex/psnfss/helvet.sty
) (/usr/local/texlive/2026basic/texmf-dist/tex/latex/psnfss/helvet.sty
Package: helvet 2020/03/25 PSNFSS-v9.3 (WaS)
(/usr/share/texmf-dist/tex/latex/graphics/keyval.sty
(/usr/local/texlive/2026basic/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
\KV@toks@=\toks23
)) (./resume.cfg
(/usr/share/texmf-dist/tex/generic/tex4ht/tex4ht.4ht
version 2025-07-09-13:35
--------------------------------------
--- Note --- for additional information, use the command line option `info'
--------------------------------------
::::::::::::::::::::::::::::::::::::::::::
TeX4ht info is available in the log file
::::::::::::::::::::::::::::::::::::::::::
) (/usr/share/texmf-dist/tex/generic/tex4ht/tex4ht.sty
version 2025-12-14-13:41
l.882 --- TeX4ht warning --- nonprimitive \everypar ---
--- needs --- tex4ht resume ---
\tmp:cnt=\count284
\openout15 = `resume.tmp'.
(./resume.tmp)
\tmp:dim=\skip52
(./resume.xref)
\:refout=\write3
\openout3 = `resume.xref'.
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
--------------------------------------
--- Note --- to remove the <?xml version=...?> processing instruction use the c
ommand line option `no-VERSION'
--------------------------------------
--------------------------------------
--- Note --- to remove the DOCTYPE declaration use the command line option `no-
DOCTYPE'
--------------------------------------
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
)
--------------------------------------
--- Note --- for marking of the base font, use the command line option `fonts+'
--------------------------------------
--------------------------------------
--- Note --- for non active _, use the command line option `no_'
--------------------------------------
--------------------------------------
--- Note --- for _ of catcode 13, use the command line option `_13'
--------------------------------------
--------------------------------------
--- Note --- for non active ^, use the command line option `no^'
--------------------------------------
--------------------------------------
--- Note --- for ^ of catcode 13, use the command line option `^13'
--------------------------------------
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
--------------------------------------
--- Note --- for alternative charset, use the command line option `charset=...'
--------------------------------------
--------------------------------------
--- Note --- to ignore CSS font decoration, use the `NoFonts' command line opti
on
--------------------------------------
--------------------------------------
--- Note --- for jpg bitmaps of pictures, use the `jpg' command line option. (C
haracter bitmaps are controled only by `g' records of tex4ht.env and `-g' switc
hes of tex4ht.c)
--------------------------------------
--------------------------------------
--- Note --- for gif bitmaps of pictures, use the `gif' command line option. (C
haracter bitmaps are controled only by `g' records of tex4ht.env and `-g' switc
hes of tex4ht.c)
--------------------------------------
--------------------------------------
--- Note --- for content and toc in 2 frames, use the command line option `fram
es'
--------------------------------------
--------------------------------------
--- Note --- for content, toc, and footnotes in 3 frames, use the command line
option `frames-fn'
--------------------------------------
--------------------------------------
--- Note --- for file extension name xht, use the command line option `xht'
--------------------------------------
TeX4ht package options: html5,html,xhtml
--------------------------------------
--- Note --- To print a timestamp, use the command line option timestamp
--------------------------------------
--------------------------------------
--- Note --- to ignore CSS code, use the command line option `-css
--------------------------------------
--------------------------------------
--- Note --- for inline CSS code, use the command line option `css-in'
--------------------------------------
--------------------------------------
--- Note --- for pop ups on mouse over, use the command line option `mouseover'
--------------------------------------
--------------------------------------
--- Note --- for addressing images in a subdirectory, use the command line opti
on `imgdir:.../'
--------------------------------------
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
--------------------------------------
--- Note --- To print a timestamp, use the command line option timestamp
--------------------------------------
--------------------------------------
--- Note --- We use a default CSS style. Use the `nostyle' option if you want t
o use custom a CSS design
--------------------------------------
)
\:tokwrite=\toks24
\:tokpage=\toks25
--------------------------------------
--- Note --- for back links to toc, use the command line option `sections+'
--------------------------------------
--------------------------------------
--- Note --- for linear crosslinks of pages, use the command line option `next'
--------------------------------------
\openout15 = `resume.4ct'.
\:tocout=\write4
\openout4 = `resume.4tc'.
(resume.4tc)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
)
(/usr/share/texmf-dist/tex/generic/tex4ht/latex.4ht
version 2025-12-04-13:51
LaTeX Info: Redefining \_ on input line 180.
LaTeX Info: Redefining \begin on input line 634.
LaTeX Info: Redefining \end on input line 682.
LaTeX Info: Redefining \, on input line 844.
LaTeX Info: Redefining \; on input line 845.
LaTeX Info: Redefining \! on input line 846.
LaTeX Info: Redefining \: on input line 847.
LaTeX Info: Redefining \> on input line 848.
--------------------------------------
--- Note --- for links into captions, instead of float heads, use the command l
ine option `refcaption'
--------------------------------------
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
--------------------------------------
--- Note --- For mini tocs immediately aftter the header use the command line o
ption `minitoc<'
--------------------------------------
--------------------------------------
--- Note --- For full TOC on each page compatible with the collapsetoc DOM filt
er, use the `fulltoc' command line option.
--------------------------------------
--------------------------------------
--- Note --- for enumerated list elements with valued data, use the command lin
e option `enumerate+'
--------------------------------------
--------------------------------------
--- Note --- for enumerated list elements li's with value attributes, use the c
ommand line option `enumerate-'
--------------------------------------
--------------------------------------
--- Note --- for CSS2 code, use the command line option `css2'
--------------------------------------
--------------------------------------
--- Note --- for pictorial tabular, use the command line option `pic-tabular'
--------------------------------------
--------------------------------------
--- Note --- for bitmap fbox'es, use the command line option `pic-fbox'
--------------------------------------
--------------------------------------
--- Note --- for minipage with width, use the command line option `minipage-wid
th'
--------------------------------------
--------------------------------------
--- Note --- for bitmap framebox'es, use the command line option `pic-framebox'
--------------------------------------
--------------------------------------
--- Note --- for inline footnotes use command line option `fn-in'
--------------------------------------
--------------------------------------
--- Note --- for tracing of latex font commands, use the command line option `f
onts'
--------------------------------------
--------------------------------------
--- Note --- for width specifications of tabular p entries, use the `p-width' c
ommand line option or a configuration similar to \Configure{HColWidth}{\HCode{
style="width:\HColWidth"}}
--------------------------------------
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
--------------------------------------
--- Note --- for pictorial eqnarray, use the command line option `pic-eqnarray'
--------------------------------------
--------------------------------------
--- Note --- for pictorial array, use the command line option `pic-array'
--------------------------------------
--------------------------------------
--- Note --- for pictorial $...$ environments, use the command line option `pic
-m' (not recommended!!)
--------------------------------------
--------------------------------------
--- Note --- for pictorial $...$ and $$...$$ environments with latex alt, use t
he command line option `pic-m+' (not safe!!)
--------------------------------------
--------------------------------------
--- Note --- for pictorial array, use the command line option `pic-array'
--------------------------------------
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
\KV@toks@=\toks22
))
(/usr/share/texmf-dist/tex/generic/tex4ht/fontmath.4ht
version 2022-10-25-13:59
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
))
(/usr/share/texmf-dist/tex/generic/tex4ht/res.4ht
version 2009-05-21-09:32
)
(/usr/share/texmf-dist/tex/generic/tex4ht/article.4ht
version 2023-04-10-13:46
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
--------------------------------------
--- Note --- for automatic sectioning pagination, use the command line option `
1', `2', `3', '4', '5', '6', or '7'
--------------------------------------
--------------------------------------
--- Note --- for files named derived from section titles, use the command line
option `sec-filename'
--------------------------------------
--------------------------------------
--- Note --- for i-columns index, use the command line option `index=i' (e.g.,
index=2)
--------------------------------------
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
))
(/usr/share/texmf-dist/tex/generic/tex4ht/res-a.4ht
version 2009-05-21-09:32
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
))
(/usr/share/texmf-dist/tex/generic/tex4ht/html4.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/unicode.4ht
version 2026-01-04-08:10
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html4-math.4ht
version 2026-01-29-13:49
)
(/usr/share/texmf-dist/tex/generic/tex4ht/html5.4ht
version 2026-01-18-07:06
))
(/usr/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
File: l3backend-dvips.def 2025-10-09 L3 backend support: dvips
\l__pdfannot_backend_content_box=\box53
\l__pdfannot_backend_model_box=\box54
\g__pdfannot_backend_int=\count285
\g__pdfannot_backend_link_int=\count286
\g__pdfannot_backend_link_sf_int=\count287
(/usr/local/texlive/2026basic/texmf-dist/tex/latex/l3backend/l3backend-pdftex.d
ef
File: l3backend-pdftex.def 2025-10-09 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count284
)
LaTeX Warning: Unused global option(s):
[10pt].
No file resume.aux.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
--- file resume.css ---
)
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 35.
LaTeX Font Info: ... okay on input line 35.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 35.
LaTeX Font Info: ... okay on input line 35.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 35.
LaTeX Font Info: ... okay on input line 35.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 35.
LaTeX Font Info: ... okay on input line 35.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 35.
LaTeX Font Info: ... okay on input line 35.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 35.
LaTeX Font Info: ... okay on input line 35.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 35.
LaTeX Font Info: ... okay on input line 35.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 46.
(Font) <7> on input line 51.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 46.
(Font) <5> on input line 51.
Overfull \hbox (3.9103pt too wide) in paragraph at lines 95--96
[]\OT1/cmr/m/n/10 Implemented Obliv-i-ous HTTP (OHTTP) in application-services
(shared Rust com-po-nent cross-compiled
[]
Underfull \hbox (badness 10000) in paragraph at lines 99--101
[]
[1
] [2] [3] [4]
Non-PDF special ignored!
<special> papersize=210mm,297mm
{/usr/local/texlive/2026basic/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
Underfull \hbox (badness 10000) in paragraph at lines 137--139
[]
[2] [3]
***********
LaTeX2e <2025-11-01>
L3 programming layer <2026-01-19>
***********
)
Here is how much of TeX's memory you used:
4481 strings out of 469516
56217 string characters out of 5470833
592327 words of memory out of 5000000
33094 multiletter control sequences out of 15000+600000
629490 words of font info for 46 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191
49i,8n,59p,882b,464s stack positions out of 10000i,1000n,20000p,200000b,200000s
599 strings out of 469006
10764 string characters out of 5454814
444756 words of memory out of 5000000
29364 multiletter control sequences out of 15000+600000
629322 words of font info for 45 fonts, out of 8000000 for 9000
319 hyphenation exceptions out of 8191
49i,8n,52p,440b,204s stack positions out of 10000i,1000n,20000p,200000b,200000s
</Users/bastian/Library/texlive/2026basic/texmf-var/fonts/pk/ljfour/jknappen
/ec/tcrm1000.600pk></usr/local/texlive/2026basic/texmf-dist/fonts/type1/public/
amsfonts/cm/cmbx10.pfb></usr/local/texlive/2026basic/texmf-dist/fonts/type1/pub
lic/amsfonts/cm/cmbx12.pfb></usr/local/texlive/2026basic/texmf-dist/fonts/type1
/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2026basic/texmf-dist/fonts/ty
pe1/public/amsfonts/cm/cmsl10.pfb>
Output written on resume.pdf (3 pages, 77251 bytes).
PDF statistics:
39 PDF objects out of 1000 (max. 8388607)
24 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000)
Output written on resume.dvi (4 pages, 29120 bytes).

115
resume.md
View file

@ -3,10 +3,121 @@ address:
- |
**Professional**\
LinkedIn: linkedin.com/in/bastiangruber\
Project: rustwebdevelopment.com\
E-Mail: gruberbastian@me.com
Book: rustwebdevelopment.com\
E-Mail: gruberbastian@me.com\
Website: bastiangruber.ca
- |
**Code**\
GitHub: github.com/gruberb\
Git: code.novanexus.ca/gruberb
---
# Bastian Gruber
## Summary
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 across distributed services, Kubernetes-based infrastructure, and production operations; published Rust author and long-time technical writer.
## Skills
**Languages:** Rust, C++, Python, TypeScript, Go
**Systems & Backend:** async Rust (Axum, Actix), Python/FastAPI, Node.js, FFI/UniFFI, gRPC, REST
**Architecture:** distributed systems, P2P protocols, system design, cross-platform (Desktop/Android/iOS)
**Infrastructure & Observability:** AWS, GCP, Docker, Kubernetes, CI/CD, Grafana, performance profiling
## Professional Experience
### Staff Software Engineer, Mozilla
Feb 2026 - Present, Remote
Promoted for cross-team technical leadership and delivering multi-platform privacy features.
- 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
- 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
- Maintaining the Firefox Push notification service (Rust backend on Kubernetes, 50k req/s, sub-200ms latency). Reduced memory footprint, added circuit breakers, built Grafana dashboards for observability
### Senior Software Engineer, Mozilla
Jun 2024 - Jan 2026, Remote
- Core maintainer of Merino, the Kubernetes-deployed Python/FastAPI service powering Firefox Suggest. All search suggestions in Firefox route through Merino, which enriches and serves them in a privacy-preserving way
- Code reviewer for UniFFI, Mozilla's multi-language bindings generator (Rust to Kotlin, Swift, Python, JavaScript)
- Contributing directly to Firefox Desktop (mozilla-central): shipping Rust and C++ code
- Led "Rusty Fridays" sessions (6-10 engineers per session), building internal Rust knowledge across teams
### Technical Editor, "From C to Rust", Manning Publications
Feb 2026 - Present, Contract, Part-time
Reviewing technical accuracy and pedagogical quality for Manning's C-to-Rust migration guide.
### Senior Systems Engineer, Team Lead, Toposware
Apr 2023 - Jun 2024, Remote
Core team of 4 building a peer-to-peer distributed network protocol from scratch in Rust, with Kubernetes-based deployment and benchmarking environments. Our core implementation of the double echo protocol and the Ethereum bridge became part of the Polygon stack after acquisition.
- 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
- Built the EVM bridge connecting external Ethereum-compatible chains to the core network
- Led the internal benchmarking initiative that changed where the team focused optimization effort
### Senior Software Engineer, Centrifuge
Aug 2022 - Feb 2023, Remote
Protocol team building DeFi infrastructure on Substrate/Polkadot in Rust.
- Implemented on-chain fund pool mutations, the core feature enabling live capital allocation adjustments in the lending protocol
- Replaced manual documentation with CI-driven auto-generation from Rust source, eliminating persistent drift between code and public docs
### Author, "Rust Web Development", Manning Publications
Oct 2020 - Dec 2022
Wrote and published an end-to-end guide covering async Rust, web frameworks, and production deployment.
### Sr. Solutions Architect, Twilio Inc.
Jun 2020 - Jul 2022, Remote
- 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
- Created reusable engagement playbooks adopted across the EMEA Professional Services team
### Systems Engineer, Core Backend, Kraken Digital Asset Exchange
Aug 2019 - May 2020, Remote
Part of the first Rust team rewriting Kraken's core infrastructure from PHP.
- 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
- 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
### Earlier Career
2013 - 2019
Sr. Software Engineer (freelance from 2016) across enterprise clients (OSRAM, Koerber Digital, GIATA, Avenga) and startups (Dalia Research, blogfoster, smartB) in Berlin.
- 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
- Designed IoT authentication infrastructure at OSRAM for thousands of connected devices (Node.js, Go, Lua)
- First engineering hire at Koerber Digital: built real-time sensor data pipelines and cloud service deployments on AWS (Lambda, ECS, Route53, Kubernetes)
- Decomposed GIATA's monolithic PHP system into 6 Docker-based services, taught the existing team Scrum and JavaScript
- Contributed to the Rust compiler and standard library during a self-directed sabbatical (2019)
### Technical Writer, Freelance
2008 - 2020, 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 fuer Einsteiger" (Bookboon, 2012).
## Education
### Bachelor of Science, Computer Science
Mar 2014, TH Ingolstadt
Scholarship from Allianz Deutschland AG (fully funded dual-study program, 2010-2014).

Binary file not shown.

View file

@ -21,6 +21,11 @@
%----------------------------------------------------------------------------------------
\documentclass[10pt]{res} % Use the res.cls style, the font size can be changed to 11pt or 12pt here
\special{papersize=210mm,297mm}
\ifx\pdfpagewidth\undefined\else
\pdfpagewidth=210mm
\pdfpageheight=297mm
\fi
\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
@ -52,7 +57,7 @@
\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.
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 across distributed services, Kubernetes-based infrastructure, and production operations; published Rust author and long-time technical writer.
%----------------------------------------------------------------------------------------
@ -88,13 +93,13 @@ Promoted for cross-team technical leadership and delivering multi-platform priva
\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
\item Maintaining the Firefox Push notification service (Rust backend on Kubernetes, 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 Core maintainer of Merino, the Kubernetes-deployed 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
@ -108,7 +113,7 @@ Reviewing technical accuracy and pedagogical quality for Manning's C-to-Rust mig
{\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.
Core team of 4 building a peer-to-peer distributed network protocol from scratch in Rust, with Kubernetes-based deployment and benchmarking environments. 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
@ -151,7 +156,7 @@ Sr. Software Engineer (freelance from 2016) across enterprise clients (OSRAM, K\
\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 First engineering hire at K\"orber Digital: built real-time sensor data pipelines and cloud service deployments on AWS (Lambda, ECS, Route53, Kubernetes)
\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}