I'm a software developer living in the south of the UK. Interested in web development, complex systems, and broadening my understanding of technology.

Experience

  • Pancake

    2023 - Present

    Pancake is a discord bot used in 3,300,000+ Discord servers. Currently progressing through a rewrite to modernise the codebases and increase productivity, as well as decoupling responsibilities within the application (Websocket state, business logic, event scheduling, etc):

    • Helped design internal libraries to reduce code-repetition in rewritten TypeScript codebase(s), including:
      • Handling environment variables (parsing, validation and strict typing).
      • Logging
    • Applied channel-based concurrency to communicate between lightweight tokio processes, allowing gRPC server to communicate w/ Websocket connections without using expensive mutexes and meeting Rust's memory ownership guarantees.
  • TLDA (Teacher and Learning Data Aggregation) - Web Application

    2022 - 2023

    Worked directly with Senior Staff at my school to produce a web-based application to assist teachers.

    • Interviewed Teachers and SLT to produce a desired outcome for the project.
    • Designed the application UI, and API for both Teachers undergoing reviews, and SLT completing the reviews.

    As part of my Computer Science A-level, I completed a project with a senior-level staff member acting as a stakeholder - with myself acting as a consultant. It provided me with real-world demonstration of the implications of sprawling requirements as the application's development progressed.

    Developed using the waterfall method (to meet the requirements for the NEA), and with a complete document alongside, it provided me with insight into the expectations (and potential pitfalls) for a consultant in a small-to-medium scale project.

    Not developed beyond the completion of the project to instead focus on upcoming exams (A-levels).

Projects

  • Ident

    Code

    A work-in-progress Identity platform. Built with FoundationDB, Protobufs and Flask.

  • TLDA

    Code

    An application designed to help teachers with their professional development in my own school. Completed as part of a qualification requirement. PostgreSQL and Flask on backend, React (JS) + Dispatched, SCSS on frontend.

  • Dispatched

    Code

    A rewrite of Facebook's Flux in TypeScript. No dependency on React, allowing it to be used in wider contexts. Fully typed via TypeScript.

  • Fingerpint Scraper

    Code

    An application designed to scrape fingerprints from Discord's /api/experiments path. Rotates proxies, monitors their health (to avoid down proxies) and usage (to avoid hitting ratelimits). Stores values in PostgreSQL, and allows them to be read and exported via a HTTP API. Written in Golang.

  • Canary

    Code

    An application designed to route requests between production and canary instances, with composable parts based on simple interfaces composed into a chain of handlers, allowing additional behaviour to be inserted with minmal or no code changes (only config changes). Documentation and images explaining in further detail is available on the github repository.