Oliver Schoenborn
Verified Expert in Engineering
Software Developer
Ottawa, ON, Canada
Toptal member since October 1, 2014
After years of developing distributed simulation systems for VR, Oliver's focused on DevOps engineering, particularly automation since 2017: (1) combining Terraform, Python, and Docker to automate the provisioning of Kubernetes clusters and cloud resources used by microservices deployed into those clusters; (2) engineering CI/CD pipelines; and (3) managing k8s clusters and helping developers integrate their work into it, standardizing in-house helm charts, and containerizing legacy applications.
Portfolio
Experience
- Object-oriented Programming (OOP) - 17 years
- Python - 15 years
- Linux - 15 years
- Docker - 3 years
- Kubernetes - 3 years
- REST - 3 years
- Terraform - 2 years
Availability
Preferred Environment
Amazon Web Services (AWS), Helm, Terraform, Kubernetes, Python 3, Bash, Visual Studio Code (VS Code), PyCharm, Linux
The most amazing...
...automation I've built is a containerized CLI for developers, operations, DevOps, and CI/CD's to use, ensuring consistent automation logic and dependencies.
Work Experience
DevOps Engineer Contractor
Toptal Clients
- Migrated kops-based Kubernetes clusters to EKS for a US digital media firm.
- Automated provisioning of kops-based Kubernetes clusters in AWS using Terraform, Python, and Docker. Managed complicated kops upgrades.
- Designed and implemented continuous delivery pipelines in Spinnaker, making advanced usage of its pipeline re-use mechanisms.
- Developed a containerized CLI for automation of infrastructure, deployments, and deliveries, to be used by developers, the delivery team, operations team, and CI/CD (in true DevOps fashion!).
- Drastically improved configuration management and maintainability of a large Jenkins installation by developing a Groovy shared library and establishing coding standards.
- Debugged an Arduino device (circuit and wrote C++ code) for remote temperature measurement and engineered proper C++ code to integrate with AWS DynamoDB via IoT/MQTT.
Principal Contractor
Self-employed (Sentian Cloud Computing, Inc.)
- Automated AWS infrastructure provisioning for an Ottawa-based startup. Designed a certification management system based on Let's Encrypt/ACME. Imported existing infrastructure into Terraform via Terraformer.
- Migrated microservices from Docker Compose and EC2 to Kubernetes in EKS for an Ottawa business.
- Provided technical and classroom support for 3-day Python courses given to financial analysts at CitiBank in NYC.
- Featured in the recent book publication, Python Interviews: Discussions with Python Experts, Packt 2018 by Mike Driscoll, based on my open source work on PyPubSub.
- Migrated a legacy web application written in Node.js, Express.js, JavaScript, and SQLite to GKE. Automated deployment so as to minimize downtime and deploy only if tests pass.
- Enabled replication of the complete stack (including AWS resources external to EKS and needed for each stack) by developing CLI used by developers, delivery, and CI/CD (in true DevOps fashion for troubleshooting, staging, and more.).
- Coached a team of developers a few hours weekly for nine months at the Government of Canada on migrating a legacy .NET Core application to Azure Kubernetes Service (AKS). Analyzed their application, planned progression, provided hands-on every week.
- Refactored AWS CloudFormation templates to automate the replication of infrastructure at Ottawa business.
Simulation Software Engineering Consultant
CAE, Inc.
- Engineered an infrastructure-as-code system for distributed simulation applications. This was "micro-Kubernetes": I designed configuration files based on XML and used an RPyC agent running on each system to remotely startup and shutdown processes.
- Integrated the system with Java, Tomcat, and MySQL to provide a web interface for a GUI based creation of infrastructure code.
- Developed a desktop GUI application for agent-based simulation using Python, PyQt, and pytest. Used multi-core Python (communicating processes) for large scale computing.
- Led a team, wrote core components and infrastructure, set up and managed virtual machines and Jenkins.
- Used virtual machines to provision software development environments for team members. Used vSphere and virtual machines to enable a class-based virtual training environment for military personnel learning avionics maintenance.
Simulation Software Engineer
National Research Council of Canada
- Led an engineering team of six on an immersive crane simulator. Coordinated work, code reviews, and integration of team components.
- Architected event-driven message-based multi-machine architecture.
- Developed the event and inter-process messaging system in C++ and a powerful XML based configuration system.
Experience
DevOps Automation
Avionics Maintenance Trainer – Distributed Computing
The C# layer provided the GUI and UX, including imagery, guidance, navigation in the 2D environment, use of diagnostics tools by trainee, and realistic "live" cockpit instruments. The unmanaged C++ layer provided the business logic, from configuration, startup, and navigation in 2D environment to simulation of avionics including databus, progression tracking, and instrument failures. The Lua layer provided the scriptability of the application, including definition of instrument pages used interface with health-monitoring system (HMS), configuration of scenario components and capabilities, and configuration of goals/progression.
The application was multi-threaded, with the C++ layer acting as a service available to the GUI, and scripting allowing for extension and scenario definition without recompilation. Very powerful and very stable.
Crane Operation Simulator – Distributed Computing
PubSub
https://github.com/schollii/pypubsubLua-icxx
http://sourceforge.net/p/lua-icxx/code/HEAD/tree/trunk/src/Nose2pytest
https://github.com/pytest-dev/nose2pytestIOF
http://sourceforge.net/p/iof/code/HEAD/tree/trunk/ioflib/include/iof/Integration of C#, C++, and Lua
Multi-process GUI Development Using Python and PyQt
Integration of Python Debugger into a GUI Application
Business Process Modeling and Simulation Environment
Education
Ph.D. and Master’s Degree in Physics (Pattern Formation)
University of Toronto - Toronto
Certifications
CKAD
Linux Foundation
Skills
Libraries/APIs
REST APIs, Pandas
Tools
Terraform, Helm, Docker Compose, Pytest, Jira, VMware, Git, Subversion (SVN), Jenkins, VirtualBox, AWS CloudFormation, AWS IAM, Amazon CloudWatch, OpenSceneGraph, Amazon EKS, MQTT, Azure Kubernetes Service (AKS), Jupyter, Amazon Virtual Private Cloud (VPC), Google Kubernetes Engine (GKE), Wireshark
Languages
Python, C++, Lua, YAML, Bash, XML, RELAX NG, Python 3, UML, JavaScript, Java, Fortran
Paradigms
Object-oriented Programming (OOP), Generic Programming, Object-oriented Design (OOD), DevOps, Event-driven Programming, Distributed Computing, Test Automation, Template Metaprogramming, Rapid Prototyping, Agile Software Development, Event-driven Architecture, Microservices, REST, Concurrent Programming
Platforms
Kubernetes, Docker, Amazon Web Services (AWS), AWS Lambda, Windows, Linux, Spinnaker, Amazon EC2, Unix, Arduino, Nexus, Google Cloud Platform (GCP), AWS IoT, Azure
Storage
JSON, SQLite, Amazon S3 (AWS S3), PostgreSQL, Amazon DynamoDB, MySQL
Other
CI/CD Pipelines, Containers, Regular Expressions, TCP/IP, System Architecture, Virtual Reality (VR), Amazon RDS, Pub/Sub, Networking, Amazon API Gateway, Message Queues, Kubernetes Operations (kOps), Containerization, Minikube, Command-line Interface (CLI), Numerical Programming, Simulations, Serverless, Internet of Things (IoT), 3D Modeling, Process Simulation, Physics Simulations, 3D Animation, Ajax
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring