Frank Schröder, Amsterdam, NL
Full-stack distributed systems engineer with 25+ years experience who likes building and running high-scale production systems in Go.
Over the years I have worked at Netscape, eBay and HashiCorp dealing with all aspects of the system engineering lifecycle. I have written a couple of open-source tools and contributed to several projects. At HashiCorp I have been a Consul maintainer.
I have lived in Germany, Cameroon and The Netherlands and have experience working remote and on-site both as employee and external consultant.
For the most part I have worked in the telecommunications and e-commerce sector but would like to work in other industries like Energy, IoT, Automation, Robotics, Biotech or Logistics. Preferably fully or partially remote, in the Amsterdam area or somewhere in southern Germany.
- 25+ years software development
- 20+ years building and running distributed systems
- 6+ years writing production grade Go software
- Several open-source projects, e.g. fabio HTTP reverse proxy, properties library for Go, vendorfmt tool
- Built a medium sized team of senior engineers
- Performed 200+ interviews to find them
- Line management of the team members
- Presentations in front of large, technical audiences
- Responsible for multi-million Euro project with high-visibility and low tolerance for failure
- Focus on deadlines, deliverables, automation and simplicity
- Fluent in English, German and Dutch
2017-2018: Kramp Hub, Utrecht, NL (Freelance)
Software Engineer, Go Developer
Google Cloud, Kubernetes, CI/CD, Go
- Build CI/CD workflow for Kubernetes with Google Container Builder
- Build Go reverse proxy for complex rewrite rules
2017: HashiCorp, Amsterdam, NL (Remote)
Software Engineer, Consul Maintainer, Go Developer
Go, Consul, fabio, github, community, Open-Source
Consul (https://github.com/hashicorp/consul) maintainer.
- Stabilized and sped up tests (4m to 40sec), builds and startup time.
- Removed race conditions, refactored config system, bug fixing, community support
- Developed https://github.com/hashicorp/go-discover for cloud auto-discovery
- First commit on day 2, #3 committer after six months
Worked on https://github.com/fabiolb/fabio as project owner and maintainer. fabio is my consul aware cloud load balancer.
Worked remote from Amsterdam with the rest of the team on US west coast.
2012-2017: eBay/Marktplaats, Amsterdam, NL
Architect, Team Lead, Manager, Go Developer
DevOps, Full-Stack, Distributed Systems, Scaling, Databases, Go, Java, Python, MySQL, Linux, Kafka, Riak, Redis, Consul, Nomad, fabio, Team Lead, Architect, Hiring, Line Management, Open-Source
Responsible for turning the pay-per-click advertisement system of the eBay Classifieds Group (eCG) into a scalable, multi-tenant SaaS platform within eCG (first of a kind within eCG). Deployed in three countries (NL, DK, CA) and more to come.
Responsible for growing the team from 3 to 15 senior developers. Performed 200+ interviews with senior candidates.
Responsible for converting the Java/Scala based microservice approach into a manageable and scalable set of services in Go.
Responsible for tuning every aspect of the whole development cycle from team composition, bug tracking, code organization, processes, build tools, integration tests, code and architecture review and training.
Open-sourced a zero-conf HTTP(S) load-balancer (https://github.com/fabiolb/fabio) and a properties library in Go (https://github.com/magiconair/properties).
Hands-on and coding the entire time.
2010-2011: Enaikoon GmbH, Berlin, DE (Remote from Cameroon, Freelance)
Web Application and Geo Location Developer
Built a single page web application and the supporting backend for geo tracking of GPS devices.
2010-2011: Creolink, Yaoundé, Cameroon (Freelance)
Virtualization Consultant, Software Developer
VMware ESXi, ghettoUI
Planning and installation of a virtualization solution based on VMware ESXi 4.x to reduce maintenance and operations cost.
2010: Ministry of Environmental Protection/CIDE, Yaoundé, Cameroon
Linux Consultant, Trainer
Linux, KVM, Training
Setup of a web server and training environment on Linux with KVM virtualization.
Development of hands-on training courses for the administrators.
2004-2010: SharpMind, Frankfurt, Germany
Partner, Architect, Software Developer, Ops and Support
DevOps, Distributed Systems, Scaling, Linux Vserver, Datacenter, Provisioning, Java, MySQL, Postgres, Scaling, GSM, GPS
Responsible for all aspects of the software development and product lifecycle including design, setup and maintenance of SharpMind’s 24x7, scalable and highly available hosting infrastructure with 50 physical and 150 virtual servers (containers).
Design, implementation, deployment and maintenance of SharpMind’s distributed, scalable, highly-available server based applications based on Java, Spring, Hibernate, RESTEasy, MySQL on Linux.
- custom linux installer for fast bare-metal provisioning
- offboard navigation server for mobile phones
- customer and product registration system
- call center interface for 400 call center agents
- software update server for one million customers
- game server for mobile game
- map application for iPhone
- level editor for mobile game on macOS
- offline location aware public transit routing app for iPhone (“Big Red Zebra”)
- GSM cell tracker for offline geo-location
- automated VoIP PBX systems with Asterisk and Bluetooth on Linux
- various tools for automation, build and packaging
- 24x7 on-call support for hosted applications
Strong interaction with customers and 3rd party suppliers.
2000-2004: AirFlash/Webraska, Frankfurt, Germany
Senior Software Engineer
DevOps, Distributed Systems, Scaling, Networking, Linux, Java, SQL, Bash, Informix
Responsible for building and running scalable distributed systems and the network server infastructure in Germany, France and the US.
Wrote proximity search algorithms and render frameworks for WML/HTML/HDML in Java. Tuned database queries and layout. Sped up build process, wrote automation with shell scripts.
Management of small teams of developers. Work with teams in the US, France and Australia.
2000: CSC Ploenzke AG, Frankfurt, Germany
Senior Consultant, Architect
Architect for a news portal project for a bank.
Review of the existing portal architecture. Design and implementation of data input drivers for managing content feeds. Management of a team of developers for implementing the data import modules
1997-2000: Netscape, Munich, Germany
1997-2000: Senior Consultant, Architect, Software Developer
Built large scale web-hosting and email systems with Netscape products on Solaris.
Trained 3rd party support staff of our customers.
1989-1997: Multiple Locations, Germany, 1989-1997
Freelance Software Engineer
C, C++, Windows, Delphi, HyperCard
Perform code reviews for software projects, train developers in C++, software development
Built multi-media system on MacOS for the housing areas of the US Forces in Germany.
Development of several shareware programs, e.g. StickyNotes for Windows 95
Management of a small development team
University of Saarbrücken, Germany - Masters of Computer Science, 1997
- https://github.com/fabiolb/fabio - fast, zero-conf HTTP(S) router for consul in Go, project owner
- https://github.com/magiconair/properties - properties library for Go, project owner
- https://github.com/magiconair/vendorfmt - tool for making vendor.json files merge friendly, project owner
- https://github.com/hashicorp/consul - maintainer while working at HashiCorp
- https://github.com/hashicorp/go-discover - developer and maintainer while working at HashiCorp
- https://www.linkedin.com/in/magiconair - LinkedIn profile