159 lines
No EOL
15 KiB
HTML
159 lines
No EOL
15 KiB
HTML
<!DOCTYPE html>
|
||
<html lang='en-US' xml:lang='en-US'>
|
||
<head> <title>Bastian Gruber - CV</title>
|
||
<meta charset='utf-8' />
|
||
<meta content='TeX4ht (https://tug.org/tex4ht/)' name='generator' />
|
||
<meta content='width=device-width,initial-scale=1' name='viewport' />
|
||
<link href='resume.css' rel='stylesheet' type='text/css' />
|
||
<meta content='resume.tex' name='src' />
|
||
<link href="style.css" rel="stylesheet" type="text/css" /></head><body>
|
||
<div class='resume'> <!-- tex4ht:inline --><div class='tabular'> <table class='tabular' id='TBL-1'><colgroup id='TBL-1-1g'><col id='TBL-1-1' /></colgroup><tr id='TBL-1-1-' style='vertical-align:baseline;'><td class='td00' id='TBL-1-1-1' style='white-space:nowrap; text-align:left;'><span class='cmbx-12'>Bastian Gruber</span> </td></tr><tr id='TBL-1-2-' style='vertical-align:baseline;'><td class='td00' id='TBL-1-2-1' style='white-space:nowrap; text-align:left;'> </td>
|
||
</tr><tr id='TBL-1-3-' style='vertical-align:baseline;'><td class='td00' id='TBL-1-3-1' style='white-space:nowrap; text-align:left;'> </td></tr></table> </div>
|
||
<table class='center-addresses'><tr><td class='first-address'><!-- tex4ht:inline --><div class='tabular'> <table class='tabular' id='TBL-2'><colgroup id='TBL-2-1g'><col id='TBL-2-1' /></colgroup><tr id='TBL-2-1-' style='vertical-align:baseline;'><td class='td00' id='TBL-2-1-1' style='white-space:nowrap; text-align:left;'><span class='cmbx-10'>Professional </span> </td>
|
||
</tr><tr id='TBL-2-2-' style='vertical-align:baseline;'><td class='td00' id='TBL-2-2-1' style='white-space:nowrap; text-align:left;'>LinkedIn: <a href="https://linkedin.com/in/bastiangruber">linkedin.com/in/bastiangruber</a> </td>
|
||
</tr><tr id='TBL-2-3-' style='vertical-align:baseline;'><td class='td00' id='TBL-2-3-1' style='white-space:nowrap; text-align:left;'>Project: <a href="https://rustwebdevelopment.com">rustwebdevelopment.com</a> </td>
|
||
</tr><tr id='TBL-2-4-' style='vertical-align:baseline;'><td class='td00' id='TBL-2-4-1' style='white-space:nowrap; text-align:left;'>E-Mail: <a href="mailto:gruberbastian@me.com">gruberbastian@me.com</a> </td></tr></table> </div></td><td class='second-address'><!-- tex4ht:inline --><div class='tabular'> <table class='tabular' id='TBL-3'><colgroup id='TBL-3-1g'><col id='TBL-3-1' /></colgroup><tr id='TBL-3-1-' style='vertical-align:baseline;'><td class='td00' id='TBL-3-1-1' style='white-space:nowrap; text-align:left;'><span class='cmbx-10'>Code </span> </td>
|
||
</tr><tr id='TBL-3-2-' style='vertical-align:baseline;'><td class='td00' id='TBL-3-2-1' style='white-space:nowrap; text-align:left;'>GitHub: <a href="https://github.com/gruberb">github.com/gruberb</a> </td>
|
||
</tr><tr id='TBL-3-3-' style='vertical-align:baseline;'><td class='td00' id='TBL-3-3-1' style='white-space:nowrap; text-align:left;'>Code: <a href="https://code.novanexus.ca">code.novanexus.ca</a> </td></tr><tr id='TBL-3-4-' style='vertical-align:baseline;'><td class='td00' id='TBL-3-4-1' style='white-space:nowrap; text-align:left;'>Website: <a href="https://bastiangruber.ca">bastiangruber.ca</a> </td>
|
||
</tr></table> </div></td></tr></table>
|
||
<h4 class='sectionHead' id='summary'><a id='x1-10000'></a><div class='centerline'> SUMMARY </div></h4><div class='section'>
|
||
<!-- l. 55 --><p class='noindent'>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.
|
||
</p>
|
||
</div><h4 class='sectionHead' id='skills'><a id='x1-20000'></a><div class='centerline'> SKILLS </div></h4><div class='section'>
|
||
<!-- l. 68 --><p class='noindent'><span class='cmbx-10'>Languages: </span>Rust, Python, TypeScript, JavaScript, Go <br class='newline' /><span class='cmbx-10'>Frontend: </span>React, Angular, Vue.js <br class='newline' /><span class='cmbx-10'>Backend: </span>Rust (Actix, Warp, Axum), Python (FastAPI), Node.js, Go <br class='newline' /><span class='cmbx-10'>Patterns: </span>REST, GraphQL, gRPC, async Rust, distributed systems (P2P) <br class='newline' /><span class='cmbx-10'>Infrastructure: </span>AWS, Google Cloud, Docker, Kubernetes, CI/CD, Grafana <br class='newline' /><span class='cmbx-10'>Domains: </span>Systems programming, Firefox, FFI, protocol implementation, IoT, blockchain
|
||
</p>
|
||
</div><h4 class='sectionHead' id='professional-experience'><a id='x1-30000'></a><div class='centerline'> PROFESSIONAL EXPERIENCE </div></h4><div class='section'>
|
||
<!-- l. 87 --><p class='noindent'><span class='cmsl-10'>Senior Software Engineer - Full-time </span>July 2024 - Now
|
||
<br class='newline' />Mozilla, Remote <br class='newline' />Contributing to Firefox (desktop and mobile) shipped to hundreds of millions of users. All work is open source.
|
||
</p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Leading the Image Service project: designing and implementing a cross-team service to provide favicons
|
||
and images to Firefox Desktop and mobile
|
||
</li>
|
||
<li class='itemize'>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)
|
||
</li>
|
||
<li class='itemize'>Implemented OHTTP (Oblivious HTTP) support in application-services, enabling privacy-preserving
|
||
API requests across Firefox Desktop, Android, and iOS
|
||
</li>
|
||
<li class='itemize'>Building and maintaining the Push notification service for Firefox (async Rust backend handling
|
||
millions of concurrent connections)
|
||
</li>
|
||
|
||
<li class='itemize'>Contributing directly to Firefox (mozilla-central): shipping Rust and C++ code to Desktop
|
||
</li>
|
||
<li class='itemize'>Maintaining Merino, the web service powering Firefox Suggest with Python/FastAPI
|
||
</li>
|
||
<li class='itemize'>Creating internal Rust learning resources and leading ”Rusty Fridays” sessions for engineers</li></ul>
|
||
<!-- l. 100 --><p class='noindent'><span class='cmsl-10'>Senior Systems Engineer, Team Lead - Full-time </span>April 2023 - June 2024
|
||
<br class='newline' />Toposware, Remote <br class='newline' />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. </p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Increased the throughput of a node 10x
|
||
</li>
|
||
<li class='itemize'>Re-wrote the CLI to add configuration and robustness, better user guidance
|
||
</li>
|
||
<li class='itemize'>Led a team of 3 engineers for an internal benchmark project
|
||
</li>
|
||
<li class='itemize'>Implemented load testing for part of the codebase
|
||
</li>
|
||
<li class='itemize'>Connected external EVM chains to the core network</li></ul>
|
||
<!-- l. 111 --><p class='noindent'><span class='cmsl-10'>Senior Software Engineer - Full-time </span>August 2022 - February 2023
|
||
<br class='newline' />Centrifuge, Remote <br class='newline' />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. </p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Implemented the auto-generation of the online documentation with every PR
|
||
</li>
|
||
<li class='itemize'>Enabled mutating of money pools in the protocol
|
||
</li>
|
||
<li class='itemize'>Implemented client facing APIs on top of the money fund pools
|
||
</li>
|
||
<li class='itemize'>Co-authored RFCs to enhance the protocol</li></ul>
|
||
|
||
<!-- l. 121 --><p class='noindent'><span class='cmsl-10'>Author of ”Rust Web Development” </span>October 2020 - December 2022
|
||
<br class='newline' />Manning Publications, Remote <br class='newline' />Writing the book ”Rust Web Development”. Research, writing and marketing the book in partnership with
|
||
Manning. </p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Published technical book on building web services with Rust
|
||
</li>
|
||
<li class='itemize'>Created comprehensive tutorials covering async Rust, web frameworks, and deployment
|
||
</li>
|
||
<li class='itemize'>Book available worldwide through Manning Publications</li></ul>
|
||
<!-- l. 130 --><p class='noindent'><span class='cmsl-10'>Sr. Solutions Architect (Professional Services) - Full-time </span>June 2020 - August 2022
|
||
<br class='newline' />Twilio Inc., Remote <br class='newline' />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.
|
||
</p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Technical Lead for Fortune 500 client engagements, from architecture to delivery
|
||
</li>
|
||
<li class='itemize'>Built reusable integration patterns and deliverables adopted across EMEA team
|
||
</li>
|
||
<li class='itemize'>Established technical review processes and best practices for customer implementations
|
||
</li>
|
||
<li class='itemize'>Involved in hiring, onboarding, and scaling the Professional Services team</li></ul>
|
||
<!-- l. 140 --><p class='noindent'><span class='cmsl-10'>Systems Engineer - Contract </span>August 2019 - May 2020
|
||
<br class='newline' />Kraken Digital Currency Exchange, Remote (San Francisco)<br class='newline' />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. </p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Re-wrote several PHP services in Rust to increase the throughput 100fold
|
||
</li>
|
||
<li class='itemize'>Wrote new services in Rust from the ground up
|
||
</li>
|
||
<li class='itemize'>Cross-communication with different teams and the CTO</li></ul>
|
||
<!-- l. 149 --><p class='noindent'><span class='cmsl-10'>Rust Developer - Freelance </span>March 2019 - July 2019
|
||
<br class='newline' />Self Employed, Berlin/Toronto <br class='newline' />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. </p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Founded and organized the monthly ”Rust & Tell Berlin” meetup (now largest Rust meetup globally)
|
||
</li>
|
||
<li class='itemize'>Contributed to Rust core and various Rust libraries
|
||
</li>
|
||
<li class='itemize'>Created Rust learning resources for NodeJS developers</li></ul>
|
||
<!-- l. 158 --><p class='noindent'><span class='cmsl-10'>Sr. Software Engineer - Freelance </span>March 2016 - February 2019
|
||
<br class='newline' />OSRAM, Körber Digital, Avenga, ERGO Group, GIATA, PaperHive, Glispa (Berlin) <br class='newline' />Freelance consultant for enterprise clients. Focus on microservices architecture, IoT platforms, and frontend
|
||
development. </p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Built authentication infrastructure for OSRAM’s large-scale IoT platform (Node.js, Go, Lua)
|
||
</li>
|
||
<li class='itemize'>First engineering hire at Körber Digital; established tech stack and real-time data pipelines on AWS
|
||
</li>
|
||
<li class='itemize'>Tech Lead at Avenga; enabled Scrum processes and refactored codebase into microservices
|
||
</li>
|
||
<li class='itemize'>Migrated legacy PHP systems to Node.js microservices with Docker at GIATA
|
||
</li>
|
||
<li class='itemize'>Built in-house analytics dashboards and ad platforms at Glispa with AngularJS
|
||
</li>
|
||
<li class='itemize'>Mentored teams on Scrum adoption and modern JavaScript practices</li></ul>
|
||
<!-- l. 170 --><p class='noindent'><span class='cmsl-10'>Software Engineer - Full-time </span>August 2015 - February 2016
|
||
<br class='newline' />smartB Energy Management GmbH, Berlin <br class='newline' />Worked in a small agile team creating an application for business owners to monitor energy consumption.
|
||
</p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Full-stack development with JavaScript and Python
|
||
</li>
|
||
<li class='itemize'>Heavy use of pair programming and TDD practices</li></ul>
|
||
<!-- l. 178 --><p class='noindent'><span class='cmsl-10'>Software Engineer - Freelance </span>March 2015 - July 2015
|
||
<br class='newline' />blogfoster GmbH, Berlin <br class='newline' />First developer hired to rewrite existing PHP/Backbone application using NodeJS and React. </p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Built the first version of the ad marketplace for this young startup
|
||
</li>
|
||
<li class='itemize'>Mapped out architecture with CTO; implemented TDD practices</li></ul>
|
||
<!-- l. 186 --><p class='noindent'><span class='cmsl-10'>Frontend Developer - Full-time </span>February 2014 - March 2015
|
||
<br class='newline' />Dalia Research, Berlin <br class='newline' />First and sole frontend developer at 8-person startup. </p>
|
||
<ul class='itemize1'>
|
||
<li class='itemize'>Built survey platform and analytics dashboards in AngularJS
|
||
</li>
|
||
<li class='itemize'>Translated business requirements into product features across all browsers and devices</li></ul>
|
||
</div><h4 class='sectionHead' id='education'><a id='x1-40000'></a><div class='centerline'> EDUCATION </div></h4><div class='section'>
|
||
<!-- l. 198 --><p class='noindent'><span class='cmsl-10'>Bachelor of Science, Computer Science </span>September 2010 - February 2014
|
||
<br class='newline' />TH Ingolstadt<br class='newline' />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.
|
||
</p>
|
||
</div></div>
|
||
|
||
</body>
|
||
</html> |