Portfolio - Connor Halford
A downloadable portfolio

Senior programmer for games, tools and software. Last updated July 2026.
I want to work with inspiring people on projects we really believe in. I love enabling creativity through systems and tools. I enjoy solving problems collaboratively as part of a team.
I've worked as a programmer for over 10 years; 7.5 years in the video games industry and now 2.5+ in enterprise software. In games I collaborated with many different disciplines including other programmers, designers, artists, producers and QA to ship games across a wide range of platforms including Windows, macOS, Linux, Nintendo Switch, PlayStation 4, Xbox One, Android, iOS, VR and AR. In enterprise I have worked as part of a very large multinational organization to maintain and extend a large legacy code base deployed all over the world to manage safety-critical video security across thousands of sites.
You can also view my CV and LinkedIn profile.
What I hope this portfolio demonstrates is how versatile and adaptive I am. I've worked on multinational projects with hundreds of contributors, down to entirely solo self-driven creations. I've worked with many different engines and frameworks, languages, platforms, input systems, form factors and well-known IP. I've worked on UI, servers, gameplay mechanics, custom tooling, automated builds, and game design. I even changed entire industries, from video games to video security. I am always looking to learn new things, solve interesting problems, and work with good people. Thanks for taking a look.
- Professional work
- Personal projects
- Student projects
- Awards and nominations
Professional work
- 2024-Present Senior Software Engineer at Motorola Solutions (2 years and counting)
- 2022-2024 Senior Programmer at Ant Workshop (1 year, 5 months)
- 2019-2022 Senior Gameplay Programmer at Failbetter Games (3 years, 5 months)
- 2018-2019 Programmer at Climax Studios (1 year, 3 months)
- 2016-2018 Games Programmer at MediaTonic (1 year, 8 months)
- 2012-2016 Student at Abertay University (4 years)
Below are some of the major released projects I've worked on in my career so far. There are also many cancelled projects, smaller projects, and early prototypes not shown here.
Avigilon Video Management Software
2024-Present | Motorola Solutions | C#, WPF, XAML, C++ | Windows
- Extending and creating new WPF windows for configuring advanced security camera features, including extensive support for a new flagship product with a unique form factor
- Using my games experience to advocate for and implement polished UI and UX with attention to detail
- Fixing bugs and refactoring complex code in a very large legacy code base to make it more maintainable and extensible
- Collaborating with international software, firmware, product management and test teams as part of a very large organization with hundreds of contributors on the project
- Unit tests, E2E tests and functional testing of new and existing features
- Reviewing pull requests and working with team mates to identify and fix errors and make structural improvements
- Planning and refinement meetings, demonstrating value to stakeholders, daily scrum, retrospectives, writing documentation
- Mentoring graduate engineers and knowledge sharing with other teams
Dungeon Golf
2022-2023 | Ant Workshop | Unity | C# | PC
- Efficiently tracking, storing and querying over 12k local player statistics (stats were combinatorial, e.g. number of attacks on a per-character × per-enemy × per-location basis)
- Individual values (e.g. "knight has killed 3 skeletons on level 4") are stored in a minimal binary format, using bit-packing to condense identifying information into a 64-bit ID
- Aggregation queries can then efficiently be made to sum/min/max those values, such as "how many skeletons have been killed in total?" or "what character has the most kills on level 4 across all enemy types?"
- Custom Editor windows assigned persistent IDs which were baked into autogenerated C# scripts
- Achievement and challenge system built on top, unlocking with callbacks when specific queries reached target thresholds
- Performance optimizations. Doubled frame rate on min spec device from ~17 fps to ~35 fps and reduced RAM usage by ~0.5GB
- Using the Profiler, Profiler Analyzer, Memory Profiler, Project Auditor, and Frame Debugger to identify and diagnose problems then verify improvements. Prioritized the areas that would have the biggest impact
- Identified and removed upwards of 20 KiB of total garbage generation per frame
- Identified an issue causing draw call batching to break for level geometry, fixing this greatly reduced draw calls
- Configured project and asset import settings to improve frame rate, reduce loading times, and reduce memory usage
- Created a custom
/buildSlack command that allowed anyone to create builds. You could specify the project, branch, platform, debug/release, and code defines - The build machine had a server written in Python listening to Slack API events. It checked out the Git branch and invoked the custom build tooling in the project. The build tooling then configured Unity and kicked off the build
- Injects the Git commit hash into the application version number so we know exactly what commit any build was made from
- Builds are zipped to Dropbox and optionally uploaded to the given developer branch on Steam
- Analytics consent flow, configuring and firing events with parameters, backend funnels and reports to aid data analysis
- Feedback menu. Opened at any time, pauses the game and disables game input. User can write description and upload report, with screenshot, logs, savedata and performance metrics automatically included
- Custom log file. Replacement for Unity's log file, providing better formatting and more information but using less disk space due to trimmed and non-repeating callstacks
- Steam SDK integration including Steam Remote Play Together with shared input devices and persistent player ordering after disconnect and reconnect
Mandrake
2021-2022 | Failbetter | Unity | C# | PC
- Hiring. Created the code test used as part of hiring another Senior Programmer for the project, assessed test submissions, provided feedback, participated in technical interviews, and assisted with onboarding
- Data-driven gameplay system. Created a workflow where designers write text files that define a system of triggers, conditions and outcomes that are then replicated at runtime to produce the desired gameplay. This enabled designers to rapidly iterate without the need for programmer support
- Dynamic curved grid. Gameplay logic and collision detection that conforms to the curvature of a grid made by blending between a set of Bézier splines and plotting vertices at their intersections
- Developed a system for sorting and layering 3D meshes within a scene composed of 2D sprites
Mask of the Rose
2021-2022 | Failbetter | Unity | C# | PC, Nintendo Switch, PS4, Xbox One
- Mentoring. I acted as a mentor for a developer who was new to Unity, this continued when they then went on to lead development of Mask of the Rose. I helped to explain concepts and systems, answer questions, recommend solutions and avoid pitfalls
- Support systems. I worked on systems supporting the main gameplay, for example an in-game bug reporter, a virtual keyboard for entering text with a gamepad, and storefront SDK integration including build pipeline support for automatically uploading builds
Tools packages and documentation
2020-2022 | Failbetter | Unity | C#
- Created an initiative to improve code reuse across projects by developing reusable packages that are now in use across multiple projects
- Debug menu. A dynamic runtime hierarchy of variables and functions nested in folders. Programmers could easily expose internal state and functionality to make debugging, tweaking and testing easier, adding and removing entries at runtime
- Directly supports editing variables of any native C# type
- Custom types supported via C# reflection to automatically create sub-entries for each member, forming a composite
- Expose functions to be triggered. Functions with parameters are supported as composites
- Worked on PC and consoles with full gamepad support; easy to include or exclude from builds; efficient code-driven UI layout with pooling; filter the hierarchy using text search
- Input wrapper framework with polling, subscription, explicit ordering, and consuming an input to stop it propagating
- Custom Editor window exposing internal state to aid usage and debugging
- Various smaller tools such as a custom log file prettyprinter and an asset reserializer
- Wrote and maintained documentation for both programmers and other disciplines
- Led a technical postmortem for Sunless Skies, assessing the strengths and weaknesses of the codebase to identify areas of focus for new projects, including gathering feedback from other disciplines about their specific needs
- Internal wiki including explanations of Git concepts and workflow, a C# style guide, important details about third-party libraries, and instructions for internal tools and packages
Sunless Skies: Sovereign Edition
2019-2022 | Failbetter | Unity | C# | PC, Nintendo Switch, PS4, Xbox One
- Legacy codebase. At the time I joined the company Sunless Skies had been in development for 2.5 years and the two primary programmers had left the company 3 months prior. I dived into this codebase and began fixing bugs and adding new features, with an update being released a few weeks later and several more in the following months
- Sovereign Edition. The complete version of Sunless Skies which launched on Steam, GOG, PlayStation 4, Xbox One and Nintendo Switch. Along with hundreds of bug fixes this included major gameplay additions such as a new warp relay and new movement mechanics
- Console ports. Reviewed and assisted the work of a third-party porting company in getting the game working on consoles, including passing each platform's submission requirements. To give console players the best experience I significantly reworked all gamepad menu navigation and scrolling, added a radial menu, added dynamic input prompts, and implemented a new control scheme for movement on gamepads
Jumanji: Reverse the Curse
2018-2019 | Climax | Unreal Engine 4 | C++, Blueprints | VR
- Four person room-scale networked VR experience with some gameplay elements and environmental obstacles mapped to physical props and walls so you can reach out in VR and physically touch things
- Hand gesture detection system used for gameplay, including a flat palm opening a 3D menu that tracks your hand showing your character status
DreamWorks Dragons: Dawn of New Riders
2018 | Climax | Unity | C# | PC, Nintendo Switch, PS4, Xbox One
- I joined the project late in production to work on remaining features, bugfixes, polish and console certification
- Player death sequence (animation, UI, respawning); unfurling UI lore parchments with dynamic length to fit localized content; final boss dynamic camera; conditional cutscenes
Crayola Scoot
2018 | Climax | Unity | C# | PC, Nintendo Switch, PS4, Xbox One
- I joined the project late in production to work on remaining features, bugfixes, polish and console certification
- Bonus objectives (near miss etc); fixing animation state machine conflicts; gameobject pooling optimisation; PlayStation trophy support for player 2/3/4 in local splitscreen multiplayer
MediaTonic
2018 | MediaTonic | Unity | C# | PC, Android, iOS
- Bugfixing and extending a large codebase for a mobile UI-based game in a team of 40+
- Pre-production for a 3D mobile action game. Created the core data-driven combat system: use sequential filters to select a group of targets then apply various effects
- Joined the internal tools team. Created a Unity sprite atlas analyser to aid optimisation. Worked on a tool for exporting the different layers of a Photoshop PSD file as separate images so they could be animated independently in-game
Personal projects
These are projects I created in my own time. See my main itch page for a more detailed collection, these are some highlights.
Curious Fishing
2016-2022 | Defold | Lua | Web
- I created this game in my spare time over a number of years. I did all of the code, design, art and admin, while a friend did the audio
- An aquatic puzzle game with 9 creatures and 5 obstacles each embodying a unique puzzle mechanic, combined across 30 levels
- Unlimited undo; resolving simultaneous grid-based movement; localized into 12 languages including CJK and Arabic; pixel-perfect scaling at any resolution including both landscape and portrait
- The game has been played over 23k times, was featured on PC Gamer, and won a competition allowing me to demo it on a booth at the Game Developers Conference in San Francisco
SPACE VALET
2020 | Unity | C# | PC, Web
- A solo game jam project created over the course of 1 month based on the theme 'moonshot'. I made a game about being a valet, but in space, which is much cooler and definitely worth it
- Player character movement; entering and exiting vehicles; vehicle physics including going up and down ramps; NPC arrivals and departures
Positive Aspects
2018 | AutoHotKey script | Windows
- A tool for resizing any window to any aspect ratio or resolution, including sub-windows that normally aren't resizable
- I created this tool while working on the pixel-perfect scaling in Curious Fishing to quickly visually verify how the game's rendering scaled across different aspect ratios and resolutions
Nokia eReader & Nokia Solitaire
- Each of these were made for the recurring Nokia Jam, where the goal is to work within the constraints of the old Nokia 3310 phone. I've found it very fun to re-imagine common software under such tight constraints, trying to make the best possible UX for a knowingly terrible idea
- Nokia eReader recreates the nostalgic menus, providing page and chapter navigation to read 8 full public domain books
- Nokia Solitaire is a full implementation of the classic Klondike solitaire with custom card art and configurable difficulty
Student projects
I attended Abertay University 2012-2016. I graduated with a first-class honours degree BSc (Hons) Computer Games Technology, with a UK GPA of A+ 4.5 / 4.5. Here are some of the more notable projects.
Honours Project: Generating and Solving 3D Nonograms
2015-2016 | C++, HLSL, Dear Imgui | Windows
- Algorithms for generating and solving 3D nonogram (Picross) puzzles
- A mix of original research and implementing and adapting existing work from technical papers. I wrote a 75 page dissertation outlining the literature and explaining the various algorithms used or created
- A raycasting approach to voxelizing polygonal meshes, optimized using a quad-tree; puzzle solver mimicking real player techniques; finding all solutions of a row constrained to match existing known state; comparison of brute-force, hierarchical and heuristic approaches
- Won the YoYo Games Prize for Applied Technology for technical excellence
AMPS - A Musical Platforming Symphony
2014-2015 | Sony PhyreEngine | C++ | Windows, PS4
- A rhythm platformer where obstacles move to the beat
- Made by a multi-disciplinary team of 7 students over 8 months. I was the team lead and was involved in programming, production and design
- One of my primary responsibilities was creating the data format for our levels, so that designers could use a map editor to create the level layouts and indicate how the different mechanics synchronised with the music
- Demoed to the public for 4 days at Dare Indie Showcase 2015, with great audience reception
Particle FX Editor
2015 | SFML | C++ | Windows
- I created this tool to allow us to create simple particle effects for AMPS
- Configurable 2D particle emitter with GUI controls and live preview; support for textures; saves to simple easy-to-parse text format
- I also created a PhyreEngine rendering implementation of these effects for AMPS. The particles are pre-allocated and pooled for efficiency
Awards and nominations
- 2026 10+ "High Fives". An internal Motorola Solutions award where colleagues can recognise those going above and beyond
- 2022 MCV/Develop 30 Under 30. My colleagues nominated me for my work at Failbetter
- 2021 Game Dev Heroes Programming Award Shortlist. My colleagues nominated me for my work at Failbetter
- 2020 Game Dev Heroes Programming Award Honourable Mention. My colleagues nominated me for my work at Failbetter
- 2017 Defold GDC Competition Winner. Awarded for my game Curious Fishing, which I then got to demo as part of the Defold booth at GDC 2017 in San Francisco
- 2016 YoYo Games Prize for Applied Technology. Awarded for technical excellence in my university honours project
- 2013 Ede & Ravenscroft Prize. Awarded by my university for "being deemed to be the best student overall in the School of Arts, Media and Computer Games"
- 2013 David Potter Memorial Prize. Awarded by my university for "being deemed to be the best student overall on the BSc (Hons) Computer Games Technology programme"
- 2013 A D D McKay Senior Prize. Awarded by my university for "achieving a high level of performance in mathematics"
"Connor is the quiet hero of Failbetter Games [...] often being generous with his time and expertise"
| Updated | 14 days ago |
| Status | In development |
| Category | Other |
| Author | HalfwayOrdinary |
| Tags | cv, portfolio |
| Average session | A few minutes |
| Links | |
| Content | No generative AI was used |








