Skip to main content
SOFTWARE & GAME DEVELOPER — United Kingdom

Hi, I'm Thomas.

I'm a software and game developer who likes getting stuck into the parts of a project that make things work. I've built automation tools for businesses, worked on web applications and spent plenty of time experimenting with gameplay systems.

Index of Disciplines (Click to focus on 3D Track)
01 / Skills & Experience

Skills & Experience

These are some of the tools and technologies I've worked with. Follow the track for a closer look, or skip straight to anything you're interested in.

PROGRAMMING & AUTOMATION 01 / 10

Python

Scripts, automation and backends

Python is probably the language I've spent the most time with. I've used it professionally to automate spreadsheet tasks, turn PDFs into usable data and build tools that take repetitive work off people's hands.

Areas of Knowledge & Tools
Automation scriptsFile processingBackend integrationsData workflowsAPIs
Practical Experience

At Risk Alliance Direct, I built tools to turn PDF quotes into spreadsheets and generate follow-up lists from existing data.

Secondary Toolkit & Supporting Technologies

Additional libraries and infrastructure used across backend, realtime, and experimental projects.

REAL-TIME MESSAGING

Django Channels

Chat and WebSockets

I've worked with Django Channels to make applications update in real time, particularly chat systems where a page needs to react as messages arrive.

ChannelsWebSocketsMessage statusReal-time eventsDjango

Applied: I built private and group chat features with message states, starred messages and ongoing conversation updates.

Internal Chat & Calling ↗
BROWSER AUDIO & VIDEO

WebRTC

Browser calls and live media

I've explored getting voice, video and screen-sharing features working inside web applications, including the signalling needed to connect browsers.

WebRTCSignallingMedia streamsSocket.IOBrowser APIs

Applied: I've worked on a WebRTC signalling prototype and integrated third-party calling features in web applications.

Internal Chat & Calling ↗
INTERFACE STYLING

HTML, CSS & Tailwind

Responsive interfaces

I use HTML, CSS and Tailwind to turn application ideas into interfaces people can actually navigate, whether that's a dashboard, a tool or a portfolio.

HTMLCSS / SCSSTailwind CSSResponsive designUI components

Applied: I've styled interfaces for Django and SvelteKit projects using CSS, SCSS and Tailwind.

SvelteKit Planner ↗
RELATIONAL DATA

PostgreSQL

Relational databases

I've used PostgreSQL while working on backend applications and experimenting with data-backed web projects.

PostgreSQLRelational modelsDatabase integrationSQLApplication data

Applied: I've worked with PostgreSQL in application development and local database setups.

SvelteKit Planner ↗
ASYNC TASKS & SERVICES

Redis & Celery

Background jobs and supporting services

I've worked with Redis and Celery while exploring ways to move longer-running Python tasks out of the main web request.

RedisCeleryBackground tasksQueue conceptsPython services

Applied: I've set up Redis and Celery alongside Python services in development environments.

DATA PROCESSING

Pandas & NumPy

Working with messy data

Pandas and NumPy are useful when I'm dealing with files or datasets that need cleaning up, reshaping or checking before they're usable.

PandasNumPyTabular dataData cleaningFile transformations

Applied: I've worked on Python workflows that turn spreadsheet and document data into structured outputs.

PDF Quote Converter ↗
BROWSER AUTOMATION

Selenium

Automating browser tasks

I've used Selenium to automate browser interactions, especially tasks that would otherwise mean repeating the same clicks and inputs manually.

SeleniumBrowser scriptingAutomated interactionsPythonDebugging

Applied: I've used Selenium in Python automation projects involving browser-driven workflows.

DOCUMENT WORKFLOWS

Excel & PDF Automation

Excel, PDFs and everyday workflows

Some of the most useful things I've built weren't flashy. They took a task someone was repeating every day and made it a lot less manual.

Spreadsheet processingPDF extractionData validationBatch workflowsPython

Applied: At Risk Alliance Direct, I made tools for PDF quote conversion, spreadsheet generation and messaging based on Excel data.

PDF Quote Converter ↗
COMPUTER VISION

OpenCV

Image processing experiments

I've tried OpenCV in Python projects involving images and computer vision. It's an area I'm still exploring through prototypes rather than a main commercial speciality.

OpenCVImage processingPythonComputer visionPrototyping

Applied: I've used OpenCV in Python to handle frame capture, resizing and bounding-box overlays in an experimental object recognition prototype.

Object Recognition System ↗
DEVICE EXPERIMENTS

Android & Bluetooth LE

Android and Bluetooth experiments

I've been experimenting with a custom Android app that communicates with Captify glasses over Bluetooth. Getting even simple text to display meant investigating the device's behaviour and message formats.

AndroidBluetooth LEDevice communicationAPI integrationVoice command design

Applied: I compiled a custom Android gateway app and tested sending text to the glasses. Voice-command features are still planned.

Captify Gateway ↗
LOCAL SERVICES

Linux & Self-Hosting

Linux and running my own services

I like running my own services and understanding how they fit together. I've used Debian, WSL and small computers to host applications and test development setups.

LinuxWSLNginxSelf-hostingService configuration

Applied: I've used a LattePanda Sigma and Linux environments for local applications, Docker services and development infrastructure.

GAMEPLAY SCRIPTING

C#

Unity scripts and tools

Most of my C# work has been in Unity, where I've used it for gameplay interactions, tools and prototype systems.

C#Unity scriptingGameplay logicToolingData structures

Applied: I used C# while working on stencil and interaction systems in a Unity tattoo-game prototype.

Unity Tattoo Game ↗
BOT AUTOMATION

Discord Bots

Python bot interactions

I've built Discord bot features in Python, including commands and interactive controls with discord.py.

discord.pyPythonBot commandsViewsEvent handling

Applied: I've worked with discord.py Views and interaction components in bot projects.

LOCAL MODEL STACKS

Local AI Tooling

Running local AI tools

I've experimented with running language models locally and connecting them to developer tools, rather than relying only on hosted services.

OllamaLocal inferenceLinux servicesModel hostingDevelopment tools

Applied: I've configured Ollama and other local-model tooling on my own hardware.

02 / Selected Work

A few projects I've worked on, from office automation and web applications to gameplay prototypes. I've included what I worked on, how I approached it and what I learned along the way.

Browse all 15 projects
Software & Automation
professional Completed

Turning PDF Quotes into Spreadsheet Data

IT Administrator & Developer (Risk Alliance Direct) · 2021–2025

A tool I built to turn batches of PDF quotes into spreadsheets without copying everything by hand.

Contribution: I designed and built the original conversion tool, then worked with the main developer as it was integrated into the company website.
01Quotation PDFsBatch Input02Python ParserField Extraction03Excel OutputStructured Data04Django WorkflowWeb Integration
FIG 01 — Batch PDF quotation parsing to structured Excel output & Django integration
PythonDjangoPDF processingExcel
Game Development
academic Completed

Fire Escape

Gameplay Programmer (Student Team Project) · 2025

A student horror game where an ordinary building starts behaving in impossible ways.

Contribution: I was one of the programmers. I built the looping staircase, pickup and interaction systems, and a respawn mechanic. I also experimented with a phone-camera reveal feature that didn't work out as planned.
01Looping StaircaseSpatial Seam Reset02Pickup / InteractBlueprint Traces03Threat StateThree-Hit Tracking04Respawn SystemCheckpoint Recovery
FIG 02 — UE5 Blueprint looping staircase, line-trace interaction, and respawn flow
Unreal Engine 5BlueprintsGameplay systems
Game Development
personal In Progress

VR Sigil Casting Prototype

Solo Developer (In-Progress Prototype) · 2026

Drawing symbols in the air and teaching a VR system to recognise them.

Contribution: I've worked on recording drawing points, mapping the movement into 2D and early resampling and recognition functions in Unreal Engine.
01VR Point Capture3D Hand Input02World-to-2DPlane Transform03Point ResamplingPreprocessing04Sigil EvaluationIn-Progress R&D
FIG 03 — VR 3D point capture, world-to-2D projection, and point resampling prototype
Unreal Engine 5BlueprintsVRSigil recognition
Game Development
personal Prototype

Echolocation Game Prototype

Gameplay & Visual Systems Developer · 2025–2026

Exploring a dark game world through sound pulses that briefly reveal your surroundings.

Contribution: I worked on the echolocation effect and visual feedback in Unreal Engine, experimenting with post-processing and custom depth/stencil techniques.
01Sound / ImpactGameplay Trigger02Expanding PulseRadius Parameter03Custom StencilDepth Buffer Mask04Post-ProcessOutline Reveal
FIG 04 — Sound-triggered expanding pulse and Custom Depth/Stencil post-process reveal
Unreal Engine 5BlueprintsCustom Depth/StencilPost-processing
Experimental / AI & CV
personal Prototype

Object Recognition System — Computer Vision Experiment

Developer (Personal Experiment) · 2025–2026

An experimental computer-vision prototype using Python, OpenCV, TensorFlow/Keras and Mojo to detect and label objects in images and video frames.

Contribution: I put together the OpenCV frame-handling script, connected it to a TensorFlow/Keras recognition model and tested Mojo for faster array preparation.
01OpenCV InputFrame Capture & Resize02Mojo RoutineFast Array Prep03TensorFlow / KerasObject Inference04Overlay OutputBoxes & Labels
FIG 14 — OpenCV frame preparation, Mojo array routines, and TensorFlow object recognition
TensorFlowKerasOpenCVMojoPythonNumPy
Experimental / ML & Forecasting
personal Prototype

Time Series Predictor — Sequence Forecasting Prototype

Developer (Personal Experiment) · 2025–2026

A personal machine-learning experiment using TensorFlow/Keras, Pandas and Mojo to train sequence models on historical time-series data.

Contribution: I built the sliding-window data preparation in Pandas and NumPy, trained sequence models in TensorFlow/Keras and tested Mojo on rolling calculations.
01Pandas / NumPyChronological Windows02Mojo RoutineRolling Features03TensorFlow / KerasSequence Model04EvaluationBaseline Comparison
FIG 15 — Chronological windowing, Mojo rolling calculations, and TensorFlow sequence prediction
TensorFlowKerasMojoPandasNumPyPython
03 / About & Craft

I like figuring out how things work — and making them work better.

A lot of the software work I enjoy comes down to finding a better way to do something. At work that meant building Python and Django tools for tasks like processing PDF quotes and preparing spreadsheets.

Outside of that, I make games and prototypes in Unreal Engine, Unity and Godot. I enjoy the problem-solving side of development, whether it's getting a gameplay mechanic to feel right or working out why two systems aren't talking to each other.

04 / Experience

Professional History & Academic Foundation.

Full experience & skill index
Risk Alliance Direct 2021-07 – 2025-08

IT Administrator & Developer

I split my time between IT administration and building internal tools. That included Python automation, Excel and PDF workflows, and features for web-based communication.

Context: I designed and built individual systems alongside the company's main developer, then handed them over for integration and day-to-day use.

  • — Built a Python tool to turn batches of PDF quotes into structured spreadsheets, later integrated into the company’s Django website.
  • — Created a repeatable Python workflow that used previous business records to generate follow-up lists for staff.
  • — Worked on internal messaging with Django Channels and WebSockets, and integrated calling, video and screen-sharing features.

Python · Django · Microsoft 365 · Excel · WebSockets

Abertay University Completed 2026

Bachelor’s degree in Game Design and Production (ordinary degree, without Honours)

Studied game design and production, with practical experience developing mechanics and working on team projects.

Context: I contributed gameplay programming to Unreal Engine projects, including Fire Escape.

  • — Worked as one of the programmers on Fire Escape in Unreal Engine 5, building the looping staircase, pickup and interaction mechanics, and a three-hit respawn system.
  • — Built and tested gameplay prototypes and mechanics across Unreal Engine 5, Unity and Godot.

Unreal Engine · Blueprints · Game development

05 / Get in touch

Get in touch

Interested in working together, have a role in mind or just want to ask about a project? Feel free to get in touch. I'm open to software and game development opportunities, as well as suitable freelance work.

T. Thomas Cardona (TFG.)

Built by Thomas Cardona.

Get in touch

Interested in working together, have a role in mind or just want to ask about a project? Feel free to get in touch. I'm open to software and game development opportunities, as well as suitable freelance work.

© 2026 Thomas Cardona (TFG.). MOP v3.0 · Canonical Registry Architecture