Joshua Smith

Graduate engineer at AWE, seeking data engineering and quantitative research roles.
I turn numbers into models, decisions, and the occasional bull.

View my work

Projects

Ancestree

Try it

Interactive demo in the docs (opens in a new tab)

  • Python
  • SQL

Ten variations in, you are looking at final_v2_REAL.csv with no record of what produced it. Written in pure Python with no dependencies, Ancestree offers a lightweight and simple way to keep track of every result and its lineage, natively on your machine. Deduplication means it stores 3.93× less on a mixed corpus. Identical reruns skip execution entirely and return the cached result almost instantly.

This server

Live

Checking the running containers

  • Svelte
  • JavaScript
  • Docker
  • Linux
  • Python

I run my own home server: it's currently hosting this website! In addition to supporting other personal projects, it also runs an API publishing live data about itself. The box is designed around security: public access goes through a Cloudflare tunnel, with no inbound ports exposed on my home network.

Crypto orderflow

Live

Checking retained history

  • Python
  • Docker
  • Polars
  • NumPy

Vendors selling granular, multi-platform, multi-asset cryptocurrency data charge a premium. So I built my own collector — it stores ~11.5M rows a day across ten venues in Parquet. The archive backs a market-neutral strategy with a 2.39 net Sharpe over 6.5 years.

ascii-art

In use

Generated the ASCII illustrations on this site

  • C
  • Make

ASCII art is cool, so I wrote my own renderer in C. It converts images to monochrome, greyscale or full colour, block-averaging source pixels instead of sampling them for a result that stays stable at any size. In a benchmark, it rendered a 667×667 photo as 132,800 characters in around 13 ms, and drew the ASCII illustrations across this site.

Experience

2024 — Present

Graduate Engineer, AWE

Turning noisy, high-volume signals into fast, reliable estimates.

  • Slurm
  • Python
  • scikit-learn
  • NumPy
  • MATLAB
  • CUDA
  • 3 km median localisation error

    Synchronised 9 geographically distributed RF sensors to microsecond precision, correcting drift between their internal clocks and GPS time. Cleaned and denoised the data, then used TDOA cross-correlation and multi-objective optimisation to localise signals to a 3 km median error worldwide.
  • 279 m median position error at 700 km range

    Designed a radar-based terrain-imaging navigation system, validated against recorded Sentinel-1 satellite data travelling at 7.5 km/s. Built the preprocessing pipeline and an ML-assisted optimisation solver, hitting a 279 m median position error with 4-second end-to-end latency on just 8 GB of RAM.
  • 7.5× fewer simulations

    Built a surrogate-modelling based multi objective optimiser for expensive black-box simulators with a professor of statistics, cutting simulations required from 150,000 to 20,000. Also designed the stopping conditions and ported it to CUDA for a further 26× speedup over the CPU version. Shipped company-wide.

2020 — 2023

BEng Engineering Mathematics

University of Bristol, 2:1. Modelling, statistics and scientific computing.

Contact

What's on your radar?

Whether it's an opportunity, an interesting problem, or a question: get in contact. I'd love to connect.

UK-based · 02:36 BST (UTC+1)

Or send a message

All fields are required.