Passionate software engineer with over 12 years of experience looking to create extraordinary games. Committed to continuous learning and applying innovative solutions to deliver engaging player experiences.
Software Engineer 2 at Electronic Arts
Pre-Commit
- Respond to an engineering request for more timely automated testing
- Design and implement a framework to run an extendable set of tests
- Each test checks the changed file list to determine if it needs to run
- Integrate with Jenkins to run tests when peer reviews are requested
- Support tests written by the client, server, and tooling teams
AWS Device Farm
- Compare and report on costs vs maintaining a decaying onsite device farm
- Prove out a solution by locally building and running commands
- Instrument testing on AWS device farm during existing Jenkins test runs
Record & Play
- Identify a QA need to reduce repetitive manual testing
- Suggest an approach of recording live gameplay and gather requirements
- Design and implement a tool to capture gameplay steps, then integrate with an existing automation solution to replay them during automated testing runs
- Demonstrate and promote the tool to QA
- Offer support and extend functionality to support more environments
Additional Test Reporting
- Respond to a QA request for more accessible test logging
- Prototype and later refine a solution to report automated test results directly to the QA test tracking tool, Zephyr
Improve Test Automation
- Replace frequent polling with a more performant relay of real-time updates
- Batch frequent messages to avoid flooding the network
- Refactor to reduce code duplication and simplify messaging
- Increase testing up-time from 30% to 95%
- Port existing automation framework to support a new title
- Collaborate to support test automation for 5 mobile titles
Full Stack Software Engineer at Iron Horse Games
Steam Town
- Quickly ramp up on a new project and development platform with no support
- Upgrade UI with all new animations and resolutions
- Refactor to reduce code complexity and quantity by over 50%
- Replicate missing 9-slicing functionality
Superhero Comic Prototype
- Efficiently prototype new concepts to facilitate design discussions
- Smoothly reframe and brighten cells of a comic while panning across the page
Full Stack Software Engineer at 5th Planet Games
Dawn of the Dragons: Ascension - Steam Page
Campaigns Guild Feature
- Partner with a game designer and software engineer to create technical design documents and plan feature development tasks
- Implement the campaign feature across server and client components
- Move across the shared campaign map with an energy resource
- Strategically defeat nodes to limit buffs across the event
- Compile rewards from loot pools and deliver them to player inboxes once the event is complete
- Release and support the feature with bug fixes
UI
- Faithfully implement UI intent from art team mockups and wire frames
- Make UI/UX changes for improved clarity, player retention and monetization
- Handle the necessary changes for a PC conversion including dynamic scaling and mouseover text
Support
- Build, test, and maintain features across the server, client and admin tools
- Efficiently fix bugs, add functionality, and review code changes
Software Engineer 2 at Northrop Grumman
Mission Control Accreditation
- Create the cross-team integration environment for large (50,000+ man-hour) contract
- Include necessary hardware components as well as software components with methods to rebuild updates
- Create and follow a detailed series of test steps for accreditation
- Manage a team of 5 engineers with source control in git and tasking in Rally
- Create a RESTful Java API to forward messages to scripts and firmware
Mission Control Browser Tools
- Prototype requested functionally and regularly meet with stakeholders to guide iterative improvements
- Visualize and control hardware status including power, diagnostic reports and temperature
- Allocate resources to enable focusing on individual signal sets
- Build and configure a sequence of signal processing and analysis steps
- Visualize location data over time for receiving platform and numerous signals
Prototype Internal R&D Projects
- Display known network layout with the Java Universal Network/Graph Framework (JUNG)
- Procedurally configure connected devices with the Simple Network Management Protocol (SNMP)
- Exploratory project utilizing minimax in a rule-based environment to respond to network input
Sensor Chassis Test Suite
- Startup and run diagnostic on test chassis
- Install and validate test suite on an air-gapped network
Sensor Calibration Real-World Flight Testing
- Validate processes documentation by running against real hardware
- Direct a pilot to predetermined points near the facility antennae
Generalist Programmer / Owner at DoubleA Studios
Kelkom
- LAN-based medical appointment scheduling and metrics system
- Deployed on a tablet to replace a hardware unit with blinking buttons
TTRPG Visualization Tool
- Character manager and visualization tool for table-top RPGs (Primarily D&D)
- Includes a separate initiative tracking application with status effects and dynamic layout scaling
Windows Taskbar Messaging Tool
- Broadcast messaging system for posts and advertising in a Windows toolbar
- Includes tabs to track multiple messaging channels including financial advice and retail coupons
From Space (Twin-stick shooter)
- 3 unique playable races
- Junkers generate trash shields, create turrets, and fire rapidly
- Space snails regenerate, charge forward, and gain a spread shot
- Saucers turn instantly, fire homing missiles, and fire bullets that shoot more bullets
- Enemies attempt to dodge projectiles, weaving through on higher difficulties
- Enemies drop powerup crates
Side Projects
Online Portfolio (this page)
- Use jquery to sort experience against a list of languages and tools
- github
Dice Game
- World space UI elements
- Physics-based RNG
- github
Manic Space Bot Repair (GGJ 2020)
- Gather parts and fix the bots so they can repair the ship
- Global game jam
How Our Mission Ended (GGJ 2019)
- Fight or befriend in a quest for stuffium.
- Simplified AI
- Global game jam
Lumen (GGJ 2018)
- Resource collection and management
- Global game jam
Ravenous Void (Ludum Dare 45)
- Brave the unknown to gather the power to fend off the darkness
- Procedural world generation
- JSON-based music
- ludum dare
Herding Cats (Ludum Dare 44)
- Armed with a lazer pointer, try to get cats to assist in solving puzzles
- ludum dare
AI Opponent for a Customized Chess Game
- Use Negamax algorithm to select best move
- github
Jigsaw Puzzle Creator
- Chop any image into puzzle pieces and put them back together again
- github
Education
Sacramento State
- Received a bachelor's degree in computer science
- Worked as an adjunct professor, tutor, and grader covering all undergraduate computer science coursework
- Represented school in state programming competition
San Joaquin Delta College
- Received an associate's degree in computer science