Oliver Schoenborn, Distributed Computing Developer in Ottawa, ON, Canada
Oliver Schoenborn

Distributed Computing Developer in Ottawa, ON, Canada

Member since April 27, 2014
Oliver's specialty is computer-based training and analysis, from virtual crane operation in a cockpit to human resources forecasting on a Windows cluster and executable documents created via web interface. He has authored several open source projects on SourceForge and answers questions weekly on StackOverflow. Usability, robustness, and maintainability are the cornerstones of his work.
Oliver is now available for hire

Portfolio

Experience

  • Object-oriented Programming (OOP), 17 years
  • Python, 15 years
  • Distributed Computing, 15 years
  • C++, 14 years
  • Docker, 2 years
  • REST, 2 years
  • Kubernetes, 2 years
  • AWS, 2 years

Location

Ottawa, ON, Canada

Availability

Part-time

Preferred Environment

Windows, Linux, Android

The most amazing...

...applications I've built are a 2+1D avionics maintenance trainer, an immersive crane operation trainer, and a discrete event simulation dev environment.

Employment

  • Owner, Principal Consultant

    2018 - PRESENT
    Sentian Software Engineering
    • Set up an ESP 8266 to sense temperature, humidity and monitor with IBM Cloud (Bluemix IoT Platform) via Node RED; set up to control LED emitter from Node RED.
    • Implemented a RESTful app back-end.
    • Improved the predictability of taxi driving load by several percent via machine learning models.
    • Translated foreign language traffic signals.
    • Set up a VPN and security for a Google Cloud note-taking application.
    • Improved Redis deployment for high availability.
    • Correlated airport delays with demographics.
    • Migrated a legacy web application to Google Cloud Platform.
    • Automated the deployment so downtime was almost 0 when upgrading, and deployment occurred only if all tests passed.
    • Architected the migration to achieve scalability via load balancing and replica sets.
    • Created performance tests to catch performance regressions.
    • Migrated Node.js code to use MySQL, and set up automated daily backups of DB using Docker container.
    • Designed and implemented Docker and Kubernetes configuration files to support scalable architecture, automated regression testing, and automated deployment.
    • Set up a virtual Ubuntu development environment to handle Google cloud tasks.
    • Featured in recent book publication “Python Interviews: Discussions with Python Experts,” Packt 2018 by Mike Driscoll, based on my open-source work.
    Technologies: AWS Lambda, DynamoDB and API Gateway, Google Cloud Platform (storage, networking, compute, big data), Python, Node.js, Kubernetes, Docker, Redis, MongoDB, MySQL, DynamoDB
  • Senior Consultant

    2005 - 2017
    CAE, Inc.
    • Led the development of a visual programming environment for business process modeling, managing a team of about five people. Created a GUI testing module that I put on GitHub, for visual regression testing in Qt and PyQt.
    • Created C++ and Lua components for crew communications and graphics-based target recognition controlled via joystick. Wrote a design document for a portable simulator of a CH149 helicopter mission rehearsal.
    • Built a distributed, multi-display virtual reality training environment for aircraft threats. I designed the physical workstation, leading a team of three, wrote the management GUI, and debugged the C++ Vega Prime graphics renderer.
    • Developed a cluster deployment automation framework.
    • Developed a GUI application representing the control station of a search-and-rescue aircraft.
    • Spearheaded a team of three to build a multithreaded, event-driven virtual reality avionics troubleshooting application that simulated the databus of a modern military aircraft.
    Technologies: Python, C++, C#, Lua, Windows, SQLite, PyQT, TCP, SOAP, GenesisRT, USB, Vega Prime, Boost, Pub/Sub, HLA, Networking, Projection, RPyC, TLS/SSL, XML, RelaxNG, MySQL, Java, OpenSceneGraph
  • Visualization Software Developer

    1998 - 2005
    National Research Council
    • Developed a real-time image processing utility to use a laser pointer as a mouse.
    • Developed a crane operation training system.
    Technologies: C++, Fortran, Immersive Displays, Motion Tracking, Inter-process Communication, Networking, Unix

Experience

  • DevOps Automation (Development)

    Designed and implemented delivery pipelines using Spinnaker, Python, and Docker. Automated provisioning of a Kubernetes cluster in AWS EC2 using kops and Python and Docker maintenance and QA of Helm charts.

  • Avionics Maintenance Trainer – Distributed Computing (Development)

    Integrated C# .NET 4 (managed code on Windows) with Visual C++ 2005 (unmanaged) and Lua 5.1 to provide a 2+1D virtual environment where student could learn to troubleshoot modern integrated avionics.

    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 (Development)

    Led the development of a fully immersive crane simulator. I was in charge of requirements management, system architecture, core components such as scenario definition, multi-computer multi-process data exchange C++ infrastructure, and hardware emulation using Java. As lead engineer, I was in charge of interface design and integration of components developed by other team members such as sound generation, crane physics, crane hardware, and immersive projection system with motion tracking and active 3D glasses. The system consisted of multiple computers exchanging data over TCP/IP, UDP, and shared memory, and an XML-based configuration system. The system was featured on the Discovery channel.

  • PubSub (Development)
    https://github.com/schollii/pypubsub

    PubSub is a Python publish-subscribe engine for applications that are event-based. Originally developed as part of wxPython, I took over this project in 2003 based on some significant improvements and extensive automated unit testing that I created for it.

  • Lua-icxx (Development)
    http://sourceforge.net/p/lua-icxx/code/HEAD/tree/trunk/src/

    Lua-icxx is a helper library to facilitate embedding Lua in a C++ application via an OO API so that the Lua stack can be completely invisible. It integrates with SWIG to make SWIG-based Lua wrappers available to C++ applications; without this, a developer is forced to use Lua's very low-level C API.

  • IOF (Development)
    http://sourceforge.net/p/iof/code/HEAD/tree/trunk/ioflib/include/iof/

    IOF is a formatted input/output library to provide printf/scanf-like format-string-based I/O with C++ streams. Similar to Boost's format module, but compact (esp. compared to Boost), without any external dependencies. Also, it does not require any build (it is purely C++ templates).

  • Nose2pytest (Development)
    https://github.com/pytest-dev/nose2pytest

    In this one project, I decided to upgrade the test harness from Python nose to PyTest due to some significant gains in test robustness that could be achieved with the latter. Since there were thousands of tests, this could not be done manually. I wrote a converter based on Python's bulit-in pattern matcher for its abstract syntax tree, and added it to GitHub and submitted it to the PyTest project, to which it was accepted.

  • Integration of C#, C++, and Lua (Other amazing things)

    Integrated managed C# 2010, unmanaged C++ 2005, and Lua into one application. It may be difficult to appreciate the challenge until you try. Part of the challenge may have originated in the C++ layer which was a third-party library. Additionally, the C++ portion was in a separate thread, and had to be accessible from the Lua portion. I finally managed to make everything work into a robust and high-performance system.

  • Multi-process GUI Development Using Python and PyQt (Other amazing things)

    Developed a sophisticated GUI supporting an extensive set of user actions managed via a state machine to limit actions available at any given time to a very small subset of all available actions. Developed a fully automated testing system for memory leaks, performance, and behavior of this application, based on PyUnit, Jenkins, and mocks. Designed the installation system, the documentation, and the multi-core engine enabling the simultaneous execution of business logic on a large number of cores to increase performance 1000-fold.

  • Integration of Python Debugger into a GUI Application (Other amazing things)

    This project consisted of a Python GUI written using PyQt, and allowed the user to define Python scripts to be executed by the application. Add debugging capabilities to set and hit breakpoints in the scripts, stepping through script code, getting local variable values, etc. The documentation was poor and, eventually, I figured out how to make this work without blocking the GUI!

  • Business Process Modeling and Simulation Environment (Development)

    Using DOORS, Python, PyQt (Python wrapper for the Qt library) and SQLite, I designed and developed a GUI and a console application that supports defining a business process and executing it to do what-if analysis using parallel Monte Carlo simulations of 10,000 replications distributed over as many cores as are available on the computer (48, 128, etc.). I automated the testing of the application using PyTest, Jenkins, and mocks.

  • Toptal Mentor
    Oliver is a mentor in the Toptal Global Mentor’s Program. This program is a partnership between Toptal and General Assembly to provide high quality mentorship for students from minority and low income backgrounds who are looking to begin their careers as professional software engineers. Oliver shows commitment to diversity in tech by mentoring a General Assembly student every week for a year, covering everything from coding tips and tricks to advice on making it in the industry.

Skills

  • Languages

    Python, C++, Lua, Bash, C, SQL, JavaScript, Java, AWK, Fortran, HTML5, YAML
  • Tools

    PyCharm, DOORS, Crucible, Microsoft Visual Studio, Pytest, Jira, VMware, Git, Subversion (SVN), Jenkins, VirtualBox, AWS CloudFormation, Google Compute Engine (GCE), Arena Rockwell Simulation, Wireshark, Enterprise Architect
  • Paradigms

    Refactoring, Object-oriented Programming (OOP), Generic Programming, DRY, Object-oriented Design (OOD), Event-driven Programming, Test Automation, Template Metaprogramming, Rapid Prototyping, Spiral Development, Agile Software Development, Model View Controller (MVC), Gang of Four (GOF) Design Patterns, REST, Concurrent Programming
  • Platforms

    Kubernetes, Docker, Windows, Linux, Spinnaker, AWS Lambda, Google Cloud Platform (GCP), Solaris, HP-UX, AWS IoT, Azure
  • Storage

    JSON, SQLite, AWS DynamoDB, Redis, MySQL, AWS S3
  • Other

    Regular Expressions, AWS, Code Reviews, Distributed Computing, TCP/IP, UDP, System Architecture, Virtual Reality (VR), Internet of Things (IoT), AWS API Gateway, Google Container Engine, 3D Modeling, Process Simulation, Physics Simulations, 3D Animation, Ajax, Windows Presentation Foundation (WPF)
  • Frameworks

    Corona SDK, Boost, Qt, Flask
  • Libraries/APIs

    PyQt 5, jQuery, Matplotlib, NumPy

Education

  • Ph.D. and Master’s degree in Physics (Pattern Formation)
    1991 - 1998
    University of Toronto - Toronto

To view more profiles

Join Toptal
I really like this profile
Share it with others