%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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 \\ Project: rustwebdevelopment.com \\ E-Mail: gruberbastian@me.com} \address{{\bf Code} \\ GitHub: github.com/gruberb \\ Code: code.novanexus.ca \\ Website: bastiangruber.ca} % Your address 2 %---------------------------------------------------------------------------------------- \begin{resume} %---------------------------------------------------------------------------------------- % OBJECTIVE SECTION %---------------------------------------------------------------------------------------- \section{\centerline{SUMMARY}} \vspace{8pt} % Gap between title and text Senior Rust engineer and published author ("Rust Web Development" - Manning) with 15+ years building scalable backend systems. Currently contributing to Firefox at Mozilla, shipping code to hundreds of millions of users. Founded Rust\&Tell Berlin, the largest Rust meetup globally. %---------------------------------------------------------------------------------------- \vspace{0.2in} % Some whitespace between sections %---------------------------------------------------------------------------------------- % SKILLS SECTION %---------------------------------------------------------------------------------------- \section{\centerline{SKILLS}} \vspace{8pt} % Gap between title and text {\bf Languages:} Rust, Python, TypeScript, JavaScript, Go \\ {\bf Frontend:} React, Angular, Vue.js \\ {\bf Backend:} Rust (Actix, Warp, Axum), Python (FastAPI), Node.js, Go \\ {\bf Patterns:} REST, GraphQL, gRPC, async Rust, distributed systems (P2P) \\ {\bf Infrastructure:} AWS, Google Cloud, Docker, Kubernetes, CI/CD, Grafana \\ {\bf Domains:} Systems programming, Firefox, FFI, protocol implementation, IoT, blockchain %---------------------------------------------------------------------------------------- \vspace{0.2in} % Some whitespace between sections %---------------------------------------------------------------------------------------- % PROFESSIONAL EXPERIENCE SECTION %---------------------------------------------------------------------------------------- \section{\centerline{PROFESSIONAL EXPERIENCE}} \vspace{8pt} % Gap between title and text {\sl Senior Software Engineer - Full-time} \hfill July 2024 - Now \\ Mozilla, Remote \\ Contributing to Firefox (desktop and mobile) shipped to hundreds of millions of users. All work is open source. \begin{itemize} \itemsep -2pt \item Leading the Image Service project: designing and implementing a cross-team service to provide favicons and images to Firefox Desktop and mobile \item Contributor to UniFFI, Mozilla's multi-language bindings generator for Rust, enabling Rust code to be called from Kotlin (Android), Swift (iOS), Python, and JavaScript (Desktop) \item Implemented OHTTP (Oblivious HTTP) support in application-services, enabling privacy-preserving API requests across Firefox Desktop, Android, and iOS \item Building and maintaining the Push notification service for Firefox (async Rust backend handling millions of concurrent connections) \item Contributing directly to Firefox (mozilla-central): shipping Rust and C++ code to Desktop \item Maintaining Merino, the web service powering Firefox Suggest with Python/FastAPI \item Creating internal Rust learning resources and leading "Rusty Fridays" sessions for engineers \end{itemize} {\sl Senior Systems Engineer, Team Lead - Full-time} \hfill April 2023 - June 2024 \\ Toposware, Remote \\ Developing a Peer-to-Peer distributed network, with high throughput and low latency. Part of the core team, consisting out of 4 people. Implementing the protocol and the services in-house. Debugging of production issues, implementing the core protocol, re-wrote the CLI, led benchmark initiatives, set up part of the CI/CD flow and Grafana dashboards. \begin{itemize} \itemsep -2pt % Reduce space between items \item Increased the throughput of a node 10x \item Re-wrote the CLI to add configuration and robustness, better user guidance \item Led a team of 3 engineers for an internal benchmark project \item Implemented load testing for part of the codebase \item Connected external EVM chains to the core network \end{itemize} {\sl Senior Software Engineer - Full-time} \hfill August 2022 - February 2023 \\ Centrifuge, Remote \\ Part of the protocol team implementing the DeFi application on top of Substrate. Working in a self-governed organization, leading the documentation efforts around Rust and the protocol implementation. \begin{itemize} \itemsep -2pt % Reduce space between items \item Implemented the auto-generation of the online documentation with every PR \item Enabled mutating of money pools in the protocol \item Implemented client facing APIs on top of the money fund pools \item Co-authored RFCs to enhance the protocol \end{itemize} {\sl Author of "Rust Web Development"} \hfill October 2020 - December 2022 \\ Manning Publications, Remote \\ Writing the book "Rust Web Development". Research, writing and marketing the book in partnership with Manning. \begin{itemize} \itemsep -2pt \item Published technical book on building web services with Rust \item Created comprehensive tutorials covering async Rust, web frameworks, and deployment \item Book available worldwide through Manning Publications \end{itemize} {\sl Sr. Solutions Architect (Professional Services) - Full-time} \hfill June 2020 - August 2022 \\ Twilio Inc., Remote \\ Second Solutions Architect hired for the new EMEA Professional Services team. Enabled enterprise customers to integrate Twilio APIs through architecture design, code reviews, and hands-on implementation support. \begin{itemize} \itemsep -2pt % Reduce space between items \item Technical Lead for Fortune 500 client engagements, from architecture to delivery \item Built reusable integration patterns and deliverables adopted across EMEA team \item Established technical review processes and best practices for customer implementations \item Involved in hiring, onboarding, and scaling the Professional Services team \end{itemize} {\sl Systems Engineer - Contract} \hfill August 2019 - May 2020 \\ Kraken Digital Currency Exchange, Remote (San Francisco)\\ Part of the first Rust team of the company, replacing the core trading engine with Rust. Worked alongside 12 highly experienced Software Developers from all over the world. Refactor code from PHP to Rust, wrote new features in Rust in a well-tested highly secure manner. \begin{itemize} \itemsep -2pt \item Re-wrote several PHP services in Rust to increase the throughput 100fold \item Wrote new services in Rust from the ground up \item Cross-communication with different teams and the CTO \end{itemize} {\sl Rust Developer - Freelance} \hfill March 2019 - July 2019 \\ Self Employed, Berlin/Toronto \\ Took time to deep-dive into Rust, founded the Rust\&Tell Berlin MeetUp, contributed to Rust core and created learning paths for NodeJS developers transitioning to Rust. \begin{itemize} \itemsep -2pt \item Founded and organized the monthly "Rust \& Tell Berlin" meetup (now largest Rust meetup globally) \item Contributed to Rust core and various Rust libraries \item Created Rust learning resources for NodeJS developers \end{itemize} {\sl Sr. Software Engineer - Freelance} \hfill March 2016 - February 2019 \\ OSRAM, K\"orber Digital, Avenga, ERGO Group, GIATA, PaperHive, Glispa (Berlin) \\ Freelance consultant for enterprise clients. Focus on microservices architecture, IoT platforms, and frontend development. \begin{itemize} \itemsep -2pt \item Built authentication infrastructure for OSRAM's large-scale IoT platform (Node.js, Go, Lua) \item First engineering hire at K\"orber Digital; established tech stack and real-time data pipelines on AWS \item Tech Lead at Avenga; enabled Scrum processes and refactored codebase into microservices \item Migrated legacy PHP systems to Node.js microservices with Docker at GIATA \item Built in-house analytics dashboards and ad platforms at Glispa with AngularJS \item Mentored teams on Scrum adoption and modern JavaScript practices \end{itemize} {\sl Software Engineer - Full-time} \hfill August 2015 - February 2016 \\ smartB Energy Management GmbH, Berlin \\ Worked in a small agile team creating an application for business owners to monitor energy consumption. \begin{itemize} \itemsep -2pt \item Full-stack development with JavaScript and Python \item Heavy use of pair programming and TDD practices \end{itemize} {\sl Software Engineer - Freelance} \hfill March 2015 - July 2015 \\ blogfoster GmbH, Berlin \\ First developer hired to rewrite existing PHP/Backbone application using NodeJS and React. \begin{itemize} \itemsep -2pt \item Built the first version of the ad marketplace for this young startup \item Mapped out architecture with CTO; implemented TDD practices \end{itemize} {\sl Frontend Developer - Full-time} \hfill February 2014 - March 2015 \\ Dalia Research, Berlin \\ First and sole frontend developer at 8-person startup. \begin{itemize} \itemsep -2pt \item Built survey platform and analytics dashboards in AngularJS \item Translated business requirements into product features across all browsers and devices \end{itemize} \section{\centerline{EDUCATION}} \vspace{8pt} % Gap between title and text {\sl Bachelor of Science, Computer Science} \hfill September 2010 - February 2014 \\ TH Ingolstadt\\ Scholarship from Allianz Deutschland AG to study Computer Science, fully funded and with trainings in Scrum, Java, PL/I and mainframe systems on the side. \end{resume} \end{document}