Curriculum Vitae
Nicholas Van Sickle

Mission

If there's one bit of contemporary software engineering philosophy I've wholeheartedly embraced it's this: software development is about failure. I've worked in a myriad of industries over the last decade, and I've failed numerous times, all the while still shipping quality products. I wholeheartedly embrace an automate everything, fail rapidly, and iterate without fear approach.

Contact

1-703-403-6451
mail@nickvansickle.com

Skills

Between my extensive use of Qt Widgets and my time in the gaming industry, C++ has been my day-to-day for quite some time. I'm an evangelist for strict coding standards while in C++-land, as I find it distressingly easy to write "clever" code instead of simple and maintainable code.

In the absence of other requirements, my go-to scripting language is Python for developer automation and several classes of backend services. I've also written my fair share of Bash scripts, plus more than a few batch/Powershell ones.

As a matter of course I've dipped into the DevOps of things several times, so I have enough exposure to CMake to mislike it while still acknowledging its general merits. WAF and I have had a dalliance.

On the browser side, I'm quite fond of Typescript for its ability to add considerably better safety and tooling to the Javascript ecosystem and, while I'm extremely wary of the "wild west" nature of the web ecosystem, I am quite fond of the iteration speed enabled by browser debugging tools and things like Webpack.

Finally, I'd like to note a deep appreciation for the emergency of container technologies, I've begun using Docker extensively for aligning development, build, and production environments. Kubernetes has also more-or-less made up for its learning curve by way of utility in a cloud environment.

Experience & Education

2022 - Present
Senior Software Engineer at Stripe
Backend development on the Sandboxes team, focused on delivering a delightful developer experience for API testing across Stripe.
  • Worked to shape the product direction for Sandbox APIs serving millions of customers.
  • Owned end-to-end metrics and reporting for Sandbox API usage.
2020 - 2022
Senior Software Engineer at Amazon Web Services
Engine developer for Amazon's Lumberyard engine, later the Open 3D Engine.
My O3DE contributions are open source.
  • Implemented a suite of Qt whitebox testing tools for Python, including a custom async event loop for managing Python execution on the main thread.
  • Streamlined the internal build process and migrated an internal fork of Qt to a new third party system in anticipation of the O3DE launch.
  • Implemented viewport integration with the Atom renderer within the O3DE runtime and Editor and migrated several systems to the new rendering API.
  • Designed a generic, format-agnostic C++ DOM and a DOM-backed, scalable Qt Widgets property editor to replace a legacy property editor.
2018 - 2020
Software Architect at Bluware
Architect and team lead for interactive seismic visualization products and services.
  • Directly managed two frontend engineers, was technical lead for a team of four engineers plus a dedicated QA resource.
  • Created a set of voxel labeling tools in a Qt Widgets C++ application to enable a supervised deep learning workflow.
  • Wrote a low-overhead RPC framework using ZeroMQ for streaming machine learning inference results from a Python numpy array to our internal voxel data store.
  • Created a Python API for a framework agnostic machine learning framework, with a heavy focus on getting the data pipeline correct to enable training interactive, supervised machine learning networks in real-time.
  • Architected an HTML5 supervised machine learning product with Photoshop-esque labeling tools displaying voxel slices in a WebGL viewport with a RESTful Python backend integrated with C++ compute plugins.
  • Wrote the requisite data platform and Kubernetes integration services for deploying our supervised machine learning application to the cloud.
2017 - 2018
Software Development Engineer at Amazon Games
Engine developer for Amazon's Lumberyard Engine.
  • Fixed a variety of UI and performance bugs with the engine's Qt Widgets based editor.
  • Did what was likely my career deepest dive into C++ templating to add keyed container introspection and mutation to Lumberyard's reflection system.
  • Wrote tooling and plugins for a procedural vegetation system.
  • Wrote a Steam-style ingame overlay via renderer hooks to display the UI from a Electron-based game launcher inside running games on PC.
2015 - 2017
Tools Software Engineer at Telltale Games
Tools programmer, though I wore many hats, at Telltale Games.
  • Worked to streamline workflows for a variety of divergent user groups for the internal tool, ranging from gameplay programmers to choreography artists.
  • Ported the remaining elements of the Tool's codebase from WTL to Qt.
  • Kept FMOD up-to-date and fixed the occasional audio bug as the de-facto owner of that system when its owner left.
  • Created a distributed network shader compilation cache backed by Redis to improve Tool performance in-studio.
  • Created an animation database and browser backed by a Flask microservice, backed by sqlite.
  • Created an automated asset update process run as a nightly build job (batch script + Python, Bamboo CI server).
  • Created multiple new content editors for specialized assets, including a procedural animation system and a rich text-based dialogue editor.
  • Maintained and extended the Tool's integration with the Plastic SCM version control client for binary game assets.
2014 - 2015
User Experience Software Engineer at Bluware
Software engineer with a UI/UX focus based on-site at Shell.
  • Worked on the User Experience team to significantly streamline several workflows for a large enterprise C++ Qt Widgets application.
  • Wrote several Squish tests and provided Squish consultation for other departments.
  • Championed code quality and stability initiatives, including the removal of thousands of lines of functionally dead code.
  • Wrote tools to support a port from Qt4 to Qt5 while mitigating issues caused by strong dependencies on Qt3 compatibility members in the codebase.
2012 - 2014
Software Engineer at KDAB
Technical consultant for cross platform C++/Qt development.
  • Taught C++/Qt and Squish for on-site client trainings.
  • Supervised the creation and architecture of a large-scale Squish test suite against an embedded product.
  • Helped develop C++/Qt tools for both internal and external use.
  • Developed automated tools to facilitate application migration between Qt 3 and Qt 4.
  • Provided consultations for a variety of clients in industries ranging from automotive to medical imaging to oil & gas.
2008 - 2008
Software Engineering Intern at Mendeley Ltd.
Mendeley Desktop, a cross-platform C++/Qt application.
  • Implemented several new features, including an automated file renaming feature and functionality for watching a folder to import files to a library.
  • Helped rewrite the client and fix bugs as it transitioned from a rapidly prototyped initial version to a cleanly designed rewrite.
  • Fixed various cross-platform issues between our Linux and Windows clients.
2006 - 2009
Programmer for The Nameless Mod
An award winning modification for the game Deus Ex.
  • Implemented a substantial portion of the gameplay logic, optimized to work with the aging first version of the Unreal engine.
  • Wrote native C++ code to work around engine limitations, including hooking game methods using the Microsoft Detours library.
  • Implemented a majority of the modification's user interface work, including several minigames such as a fully featured breakout game and IRC client.
  • Organized and implemented the project's transition from not using version control software to using Subversion.