footer

Jonathan Moore

Portfolio

Note: To best experience this site, rotate your screen from portrait to landscape.

Use arrow keys or swipe left/right to navigate.

About me

I am a Software Engineer II at H-E-B and a Computer Science (summa cum laude) graduate from the University of Texas at Dallas. I love functional programming, whether it be writing Haskell at my job, tinkering with Rust in my free time, or using FP-inspired frameworks like React and Solid in my web projects. I also have a background in cybersecurity research, with a particular interest in binary and network exploitation.

In my free time, I love playing cello in a small ensemble, rock climbing, and hiking.

GitHub LinkedIn

Workplace experience

5 years in software

Click on an item to expand.

H-E-B: Oct 2022 - Present (4 years)

Software Engineer II, H-E-B Nov 2023 - Present (2 years 11 months)
  • Awarded Software Engineer II of the Year in 2025 for leading a project to cut $5 million per year in supply chain costs by designing a tariff intake system on a tight two-sprint deadline and resolving conflicts between different stakeholders.
  • Co-lead a project to cut PostgreSQL CPU usage by 40% and GCP costs by $900/month via structured concurrency.
  • Researched PostgreSQL internals in order to pull off a massive (>2 billion row) data migration without downtime and even monitor the progress pre-commit by querying PostgreSQL MVCC system columns.
  • Mentored a new engineer in both our tech stack and domain knowledge, culminating in us collaborating on a REST API to collect data from 2,400+ suppliers.
  • Cut deploy time to GCP by 15 minutes and cut Kubernetes manifest file count by 75% by rearchitecting our K8S and Docker Compose setup and authoring the Deployment Environments for GitLab browser extension.
  • Contributed to static-ls, an open-source Haskell language server (LSP), adding new code autocomplete actions to bring Haskell tooling more up to par with that of other languages.
  • Co-directed a Change Data Capture (CDC) pipeline from Oracle to PostgreSQL using triggers, advisory locks, and views. This enabled efficient current and point-in-time data access and reduced discrepancies (10% to 0%).
  • Rewrote one of our least performant migration queries to cut its completion time from over a day to under 8 minutes.
Software Engineer I Oct 2022 - Nov 2023 (1 year 1 month)
  • Caught sneaky edge cases with our team's planned redesign, which I presented to the team with data analysis and pros and cons of multiple solutions.
  • Improved the clarity of all our SQL queries by refactoring them to use a quasiquoter instead of raw strings.
  • Awarded the company-wide dependability (“Kodi”) award for October 2023
  • Promoted to Software Engineer II after only a year (November 2023).

Tyler Technologies: May 2021 - Aug 2021 (4 months)

Software Development Intern
Used C#, WPF, MVVM architecture, and Material Design components to rewrite a legacy Silverlight application.

UT Dallas: Feb 2020 - Dec 2020 (11 months)

Research Assistant
Worked on a team of PhD students creating a framework to evaluate fuzz testers via artificial bug injection. I read papers, designed and ran experiments, developed parts of the toolchain (such as a small Clang compiler plugin to rewrite source code and a custom Primus Lisp plugin for the Binary Analysis Platform microexecutor).

Non-software experience:

UT Dallas: Feb 2018 - Aug 2018 & Feb 2019 - Aug 2019 (1 year 2 months)

Orientation Leader
  • Lead small groups and provided academic advising, correctly handling confidential student records
  • Awarded Returning Orientation Leader of the Year for 2019

Education

  • Coursework for M.S. Computer Science, Georgia Tech
    • Partial (Fall 2021 - Spring 2022) - did some graduate coursework before starting work at H-E-B for personal enrichment
    • Graduate coursework I've taken: Human-Computer Interaction, Network Security, Information Security
    • GPA 4.000/4.000
  • B.S. Computer Science, University of Texas at Dallas
    • Graduated Spring 2021
    • Honor Graduate - Summa cum laude (top 5%)
    • GPA 3.972/4.000

Projects

Here are some of my featured open-source projects. Click on an item to expand more details.

postgres_named_parameters (Rust library)

Type: Personal project (library)

Tools: Rust

Overview: A lightweight macro wrapper around the postgres crate which gives you the ergonomics of named parameters in your raw SQL queries. Under the hood, your named parameters are transformed into numbered parameters at compile time.

View on GitHub

View on docs.rs

hanzi-svg (TypeScript library)

Type: Personal project (library)

Tools: TypeScript

Overview: A TypeScript library to create animated SVGs of hanzi (Chinese character) stroke order animations. While a library for stroke order animations (hanzi-writer) exists, I wanted something more lightweight (no requestAnimationFrame()`) to maximize performance for my use case (namely, including stroke order animations in my Anki flashcard deck). Thus, I studied the SVG spec in order to leverage SVG-native animation capabilities and get the bundle size down to 3kb.

View on GitHub

View on NPM

Deployment Environments for GitLab (Browser extension)

Type: Work project

Tools: JavaScript

Overview: A browser extension to query the status of deployed environments and overlay them in the GitLab commits view, obviating the need to manually compare which commits are included in each environment. After publishing this extension, it was adopted by the entire team and is used daily to make standup more efficient.

View on GitHub

View Chrome Extension

View Firefox Extension

Quine Relay (Kotlin, C, C++, C#, Lisp, Python)

Type: Personal project

Tools: Kotlin, Unit Testing (kotest); C, C++, C#, Lisp, Python

Overview: A quine is a program that outputs its own exact source code. I designed an algorithm, implemented in Kotlin, to deterministically create a "quine relay", namely: a Python program that outputs a C program that outputs a C++ program that outputs a C# program that outputs a Lisp program that outputs the exact original Python program. Each program in the cycle works independently and runs without any input, network, expensive computation, or disk reads. Moreover, each program in the cycle prints colored documentation about how to compile the next program in the cycle.

View on GitHub

View live demo

Dice Bot (Rust)

Type: Personal project

Tools: Rust, Discord bot API

Overview: A Rust-based Discord bot with a hand-written dice expression parser (e.g. parsing "4d6r1k3*6"). Configured GitHub Actions to automatically build and release Windows, Linux, and MacOS binaries.

View on GitHub

Role Assigner (TypeScript/React, Kotlin/Ktor)

Type: Personal project

Tools: React, Ktor

Overview: Full-stack React application allowing for anonymized role assignment using custom WebSocket server. Features live, Google Docs-like collaboration, input debouncing, material design, and a custom API.

View on GitHub

Older projects, kept for sentimental value:

Web Tuner (C#/Unity)

Type: Personal project

Tools: React, WebAudio API, Semantic UI

Overview: Progressive Web App (PWA) designed to provide "drone notes" for musicians, with the rare feature of playing multiple octaves concurrently.

View on GitHub

View live demo

Degree Audit Tool (TypeScript/React, Python/Flask)

Type: Senior design project

Tools: React, Flask

Overview: Full-stack React application reimagining how students plan and share their degree plans, increasing advising efficiency. Students click on classes in a degree flowchart to assign color-coded semesters and then can export their degree plan as an image. Includes drag-and-drop SHA-256 password-authenticated flowchart editor for advisors using custom REST API.

View on GitHub

ShareCalc (Java/Android)

Type: Class project

Tools: Android/Java, JUnit 5, UML/Object-Oriented Design

Overview: Formally planned scientific, unit, and programmer calculator app for Android with emphasis on sharing calculations with others. Formalized requirements, sequence diagrams, and class diagrams. Handwrote a lexer and bottom-up parser, object-oriented evaluation engine, and 92 JUnit tests to allow for computation of arbitrarily complex scientific and bitwise expressions. Acted as primary IC and team lead, conducting code reviews, setting deadlines, and approving PRs.

View on GitHub

Tobor Herding Game (C#/Unity)

Type: Class project

Tools: C#/Unity

Overview: 3rd-person 3D game. Did most of the coding, including movement, camera rigging, AI behavior, game logic, and menus.

View on GitHub

View live demo

Cube Clock (TypeScript/React)

Type: Personal mini-project

Tools: React, Typescript, SVG, styled-components

Overview: Hue-shifted animated clock PWA featuring SVG cubes written from scratch.

View on GitHub

View live demo

Note: For a related mini-project of mine, see Binary Clock

(repo)
IR Chat (C++, C#)

Type: Personal project

Tools: Embedded C++, C#

Overview: Designed (and constructed) hardware and software to allow two offline computers to send and receive data simultaneously via infrared beams. Used embedded C++ for the microcontroller and C# for the desktop client and GUI.

View on GitHub

4-bit CPU (Schematic)

Type: Personal project

Tools: Embedded C++, C#

Overview: A 4-bit CPU supporting addition, subtraction, comparison, XOR, AND, OR, and NOT instructions. Loading of instruction, operand 1, operand 2, and result registers is synchronized via a 3-bit timer which feeds into a decoder.

View Schematic

Infrastructure Setup Skills

4+ years professional experience. Click each for more details.

Kubernetes
I took the initiative to refactor our Kubernetes manifest setup to be 4x more DRY, using a small shell script to generate per-environment (dev/cert/preprod/prod) versions of our 40+ deployments, jobs, and Nginx ingresses/Istio httproutes. My script uses yq to easily propagate global, per-environment, and per-deployment environment variables.
Google Cloud Platform/GCP
Created the CI/CD infrastructure (including deploy keys) to manage GCP deployments and secrets. Experienced with production support (using K8S CLI and TUIs) to the extent that I mentored newer engineers on how to more efficiently monitor and modify deployments.
GitLab CI/CD
Upgraded our CI/CD infrastructure to use GitLab for both image storage and CI/CD (including creating the Deployment Environments for GitLab browser extension to improve the UX), eliminating the need for semi-manual deployments.
Docker and Docker Compose
Lead the simplification of our Docker setup, using newer Docker multi-image Dockerfile features to drop the Dockerfile count in our main repo from 3 to 1, greatly improving ease of comprehension and maintenance. Took initiative to leverage YAML anchors to eliminate environment variable duplication for our 33 Docker Compose services.

Database Skills

4+ years professional experience. Click each for more details.

Change Data Capture/GoldenGate historical data pipeline
Co-lead and co-designed a sophisticated CDC pipeline which captured the full change history of 31 replicated tables (i.e. reliable historical data that would otherwise be inaccessible to the company) and also provided efficient access to current-state data. To achive this, I designed a system of partial indices, views, and triggers using advisory locks. This system improves on both our prior ideas of separate historical and current tables (which opened the door to data discrepancies), TIBCO-powered message queues (which was vulnerable to data loss), and unique indices (which, unlike advisory locks, caused GoldenGate to not use BATCHSQL.) I also designed an automated validation processor to give confidence that the new data pipeline's data was indeed correct so that we could deploy to prod confidently. Compared to the TIBCO approach, delivering this CDC pipeline resulted in a decrease of row discrepancy rate in our tables from up to 10% to 0% (perfect match).
PostgreSQL internals (MVCC system columns (ctid, xmin, xmax), B+ tree index design)
In order to monitor the in-progress, pre-commit status of a massive 2 billion row data migration, I studied Postgres MVCC design in order to randomly sample the table's internal system columns (ctid, xmin, xmax) to efficiently estimate the approximate completion percentage. Moreover, in order to better understand EXPLAIN output, I read up on the design of B+ trees and bitmaps.
Schema design (incl. triggers, partial indices, views, etc)
I designed a system of table triggers, enums, and composite partial indices to allow for the consolidation of historical audit data and efficient current-data access, which allowed our team to confidently start owning core data previously kept in the legacy mainframe.
Query design (incl. windowing functions, XML/JSON functions, CTEs, etc.
I continuously researched opportunities for improving and optimizing our queries; for example, I redesigned a deduplication process to take only 7 minutes per table instead of 1 day per table (using DELETE USING instead of a large CTE). I also co-started a new pattern of using DISTINCT ON instead of RANK() and PARTITION in historical point-in-time queries in order to achieve the same result more readably with less room for error.
Database library design
Inspired by the Haskell library postgresql-simple-interpolateI created the Rust library postgres_named_parameters, which provides procedural macros to safely interpolate numbered query parameters ($1, $2, ...) using a more ergonomic named-parameter syntax. I like this approach because it provides the full power of raw SQL but without the usual pitfalls of manually numbered parameters.

Development Skills

API design (4+ years experience)
After 3 years of maintaining and version-bumping existing APIs, an opportunity arose in which I was able to co-design a set of brand new APIs. Hence, I used my experience with the shortcomings of our existing APIs to design something better, including improving REST compliance (and thus ease of both database operations and pubsub emissions), standardizing our units (eliminating the need for per-stakeholder exceptions), and switching off of string-encoded integers (eliminating problematic edge cases).
API implementation (4+ years experience)
I've not only implemented and consumed APIs using a number of different frameworks (Haskell/Servant, Kotlin/Ktor, TypeScript/Express, Python/Flask), but I've also dealt with WebSockets, JWTs, OpenAPI docs generation, and writing custom middleware.
Cybersecurity Research
  • While working as a research assistant, I used the Binary Analysis Platform's symbolic microexecutor to automatically verify null reference vulnerabilities in C. Symbolic execution was chosen because it's a middle ground between fuzzing (which lacks in completeness) and static analysis (which lacks in soundness).
  • From my undergraduate and graduate cybersecurity research I've also gained experience in binary exploitation (using cutter/Ghidra for decompilation and GDB for runtime analysis) and network exploitation (e.g. patching XSS and SQL injection vulnerabilities).