Full-stack software engineer

I'm Jacob Hallum. I build C# and SQL Server systems for banks at work and ship my own web apps at night. FightWatchr, my UFC app, has 128 registered users as of Nov 2026.

.NET by day, products by night

At work I'm a Software Developer II at Superior. On my own time I build, ship and run full-stack apps.

Day jobMy own work
Where
Banking software company
My own products
Stack
C#, ASP.NET, SQL Server
TypeScript, Next.js, Postgres
Builds
REST APIs for banking and ops systems
Full-stack apps, end to end
Runs on
.NET 4.5 through .NET Core
A server I built at home
Since
2023
2025

FightWatchr, my all-in-one UFC app

An all-in-one UFC app. Schedules, live fight tracking, fighter stats, AI predictions and a picks leaderboard, in one place instead of five tabs. 3,403 picks from 61 users as of Nov 2026. Open fightwatchr.com

How FightWatchr works. I wrote it and I run it.

Pulls fight data from ESPN and UFC

A pipeline loads events, fights and fighters from both sources into PostgreSQL.

Pushes live fight updates

Live tracking reaches the browser over Server-Sent Events. 29,601 notifications sent as of Nov 2026.

  • Main card startsUFC Fight Night · 1:00 AM UTC
  • WCMain event, heavyweightCortes Acosta vs. Walker
  • 14 fights on the cardMeta APEX, Las Vegas

Routes AI predictions across providers

Each prediction asks one LLM provider and falls back to the next when that one fails.

Cortes Acosta vs. Walker
2 of 5
  • Load both fighters' records
  • Ask the first provider
  • Fall back if it fails
  • Save the prediction
  • Show it on the fight page

Keeps 9,634 fights on record

The database holds every event, fight and fighter the pipeline has loaded since June 2025.

Rows in PostgreSQLNov 2026
9,634fights

The Brikkhouse, my home server

A gaming laptop turned into a home server. Lid closed, Ubuntu, Docker. It runs my media server, photo library and workout app, behind a Cloudflare Tunnel with nothing port-forwarded.

  • 13 Wat idle
  • 9Docker stacks
  • 3backup copies, one offsite

Music Shuffler and the Beachnoise game

Shuffles my 7,744 tracks

A Windows player in Python. The shuffle weighs play history, ratings and recency, so it stops repeating artists.

Code on GitHub
Music Shuffler window playing Chop Suey! with its playlist

Runs a hat-store game for a client

A tap-to-flap game for a friend's Shopify store, with a global leaderboard. Built in about two weeks and still live.

Play it
Beachnoise game start screen: a Beach Noise hat in a blue sky, tap to flap

Résumé. Four jobs, two degrees.

  • Software Developer II, SuperiorApr 2024 – now

    ASP.NET, C# and SQL Server apps and REST APIs for banking and operations systems.

  • Technical Solutions Specialist, SuperiorMay 2023 – Mar 2024

    Escalation triage for a banking platform across software, network and hardware.

  • IT Specialist, Christoph RealtyJun 2020 – May 2023

    Office servers, workstations and staff training.

  • Systems Technician, Brookstone ConstructionMar 2019 – May 2020

    Onsite IT support and internal database tooling.

  • MS, Software Engineering2026

    California State University, Fullerton

  • BS, Computer Science2023

    California State University, Sacramento

  • SHPE chapter presidentSac State

    Nine technical events and recruiting workshops a year.