I spent 15 years of my career as a PDF software developer, largely working with forms. More recently, I've been a member of the computer game industry, a dream come true. The vast majority of my experience has been with proprietary MMO engines, with a dash of UE for seasoning.
I've also worked as a defense contractor though my Secret clearance is about to expire (if it hasn't already).
I worked on "Immortals of Aveum", a fantasy FPS in Unreal Engine 5. It had been in development for several years, and is scheduled for release in July of 2023. This was a AAA title on a team of around 100 across all disciplines.
I worked on the JSON-based lobby service that wasn't part of the final game. I also instrumented several systems for telemetry, including dialog, cut scenes, settings, and abilities.
Languages: C++, Blueprint, with a dash of Go.
Technologies: Unreal Engine 5, Rider, Visual Studio, JSON, Jira, Jenkins, Windows 11, Slack, P4/Swarm.
Here I worked independently or with a team of 2-3 on several projects. Most of the department worked 100% remote during the pandemic. My work required a Secret clearance, which is still active.
Languages: C/C++, Java, Python, JavaScript, Blueprint
Technologies: Visual Studio, Eclipse, Windows, Linux, Unreal Engine 4, GIT, MySQL, OneSAF.
Projects: While the details are classified, I can say that I worked on ORCA (Operational-Requirements-based Casualty Assessment), WiaMAN (Warrior Injury Assessment MANikin), and SDF (Static-Dynamic Framework).
The team was over 100 people all working on the AAA game Elder Scrolls Online. ESO was live from the first day I was hired, and they had a regular release schedule that we stuck to fairly accurately.
Languages: C++, SQL, Lua
Technologies: Proprietary MMO engine, Visual Studio, Perforce, Jira, code generation, Windows, XBoxOne, PS4, Mac, and CentOS Linux.
Features: I worked on both our client and the majority of our back end servers, implementing features including but not limited to improved combat follower behavior, the cosmetic Outfit system, item dyeing, "sitting in chairs", and the server end of a generalized currency system. I worked on an in-game theater tool that allowed our level designers to produce cut scenes in game with a drag-n-drop interface, define whether or not they were client-only, take cues from animation and audio, and control the camera.
Training: I was also the motive force that started a series of monthly training presentations that were still going strong when I left. The one presentation I gave covered what features of C++11 we could use that were supported across all the tools of our target platforms: Windows, XBoxOne, PS4, Mac, and CentOS Linux.
I worked on the never-quite-released AAA title "EverQuest Next", as part of a team of 90+ developers. As a gameplay programmer, I most enjoyed working on features that touched every aspect of our architecture, database[s], servers, client, and the communication between them, such as "claim permissions". EQN used a voxel-based world, and within your own "claim" you could make permanent changes. I built the system that tracked which players could do which things when, requested changes from the client, and made changes on the server.
Languages: C++, SQL, Lua
Technologies: Visual Studio, Perforce, XML, VoxelFarm, Hansoft. Windows, PhysX. MySQL, MongoDB, XML
Some of the Features I worked on:
* Added material data to terrain's physics mesh, and audio code to support material detection so we could play the correct footfall audio/fx.
* Connected our ability system to VoxelFarm.
* Land claim ownership and security. Players could control access to their plots of land by individual or groups they were a part of.
* Worked on a variety of features that involved messaging between servers or between client and server.
* Worked extensively with SOEData, designed to load and save game data without code changes from XML, MongoDB, or a binary file format. We could read from an XML class definition and use SOEData's metadata to generate UIs for designers to modify due to its built-in reflection.
I was hired by a company called Digidox in Grand Rapids, Michigan. That company changed hands something like 7 times, leaving me in Cardiff by the Sea, California, working for HP the last 6 years of my time there.
Most of the projects I worked on were developed on Windows for Windows. When running on multiple platforms became a concern, we started using Java as well. All told, my time was split pretty evenly between C++ and Java. I've used a wide variety of code styles and software development processes.
The majority of my time was spent on a forms design & routing solution called LiquidOffice. I started off working on the PDF exporter, and end up in charge of the form designer and both the PDF and HTML exporters. I was also working towards replacing the MFC based form designer with an Eclipse RCP (Rich Client Platform) application when I left to join SOE.
Development tools: Visual Studio, IntelliJ IDEA, Eclipse. Visual SourceSafe, StarTeam, Subversion, Perforce.
Languages & Technologies: C++, Java, PDF, JSP, STL, XML, XSLT, HTML, CSS, JavaScript, MFC.
Skills: Object oriented design, automated testing (JUnit, CppUnit, ad hoc), design patterns, code reviews, technical writing (requirements & design documents), waterfall model, agile development, test driven development.