freddie@lab:~$ whoami

Things I have built.

I started teaching myself HTML and CSS at 15 because I wanted a website. Since then I have tended to learn a concept by trying to implement it from scratch, which is slower than reading about it but sticks better.

The dashed lines are nodes a search expanded; the solid line is the path it kept.


01 / Origin

How I started

At 15 I taught myself HTML and CSS because I wanted a website, then JavaScript, and spent a while inside WordPress and PHP.

At 16 I wrote a stock market prediction algorithm — my first real algorithm rather than a page. It needed data it could not hold in memory, which is how I picked up MySQL, MongoDB, Postman, Docker and Node.js.

At 17 I took the CIISec Cyber EPQ on blockchain technology, which was the first thing I built to a brief and had marked against one rather than just to see whether it would work.

At 18 I finished A-level Computer Science with an A*, having learned Python properly alongside assembly, SQL and declarative languages. Having names for things I had been doing by instinct turned out to matter more than I expected.

First line of codeSelf-taught, HTML & CSS
Age 15
First algorithmStock market prediction algorithm
Age 16
First projectCIISec Cyber EPQ in blockchain technology
Age 17
First credentialA* in CIE A-level Computer Science
Age 18

02 / Case studies

Projects

Each one written up as the question I was trying to answer, what constrained it, and what I did about it.

01

Node.js · MongoDB · Postman

Stock market algorithm

QuestionCan analysing moving averages, candle wicks and historical patterns produce prediction software capable of beating the odds?
ConstraintsData streams are limited by API rate limits, and the algorithm relies solely on trend data — no news and no quarterly earnings reports.
ApproachOnce Excel as the database and VBA as the logic was not enough, a switch to a Node.js and MongoDB stack with live stock market API transmission was the call.
What nextWith little technical knowledge at 16, most of the work turned out to be understanding APIs, databases and logic. The project was half complete, but the fundamental learning was concrete.
Scored series
02

Python · Number theory · Logic

Project Euler

Question 1How fast can a working solution be created?
Question 2How much runtime can be removed by replacing brute force with mathematics and logic?
ApproachGet a solution as fast as possible. Then strip it down, break it apart and build it back up with more logic and less force.
OutcomeOver 50 problems solved and optimised over the course of my Lower Sixth year.
Sieve
03

Python · Pygame · Physics

2D collision simulator

QuestionCan I transfer what I learned in Further Mathematics mechanics and A-level Physics into a working collision simulator?
ConstraintsOptimising collision detection, which introduced latency as more rigid bodies were added.
ApproachMomentum, restitution and SUVAT equations alongside vector calculations and 60fps collision detection.
OutcomeA working collision simulation with two particles of variable mass and radius.
Impulse resolution
04

Python · AI · Graphing

Dijkstra and A* pathfinding

QuestionHow do AI search algorithms like Dijkstra and A* match up to real-world pathfinding?
ConstraintsI wanted to focus on the logic rather than a GUI, so I was working blind for most of the project.
ApproachObject-oriented programming for inheritance: graphs built from Node and Vertex classes unique to A* and Dijkstra respectively, both inheriting from a single superclass to cut duplication.
OutcomeWorking Dijkstra and A* algorithms, tested across a number of graphs.
Weighted grid
05

Python · Blockchain · Cryptography

Proof-of-Work and Proof-of-Stake blockchain

QuestionAs per my EPQ — “Evaluating blockchain security and efficiency: a comparison of Proof-of-Work and Proof-of-Stake”.
ApproachObject-oriented programming to build Transaction, Block and Blockchain classes for a Proof-of-Work chain. Changing only the consensus mechanism in the Block class produced a Proof-of-Stake alternative, and I then built a hybrid that used both together.
OutcomeBuilding both identical barring the consensus method made the trade-off clear: PoW wasted significantly more energy through competitive mining, whereas PoS sacrifices decentralisation for a validating consensus authority.
Linked blocks
06

Java · Blockchain · Cryptography

Proof-of-Work voting blockchain

QuestionCan the security, transparency and decentralisation of a blockchain move elections from the ballot box to the smartphone?
ApproachA blockchain in Java using asymmetric RSA encryption, so votes are cast with a private key and verified with a public one. Voter IDs hold those keys, limiting each registered voter to a single vote.
StatusA completed peer-to-peer backend blockchain alongside a GUI voter page that submits a vote to the chain, where it is validated and persisted.
Signed ballot
07

Python · Anthropic · API

AI website chatbot

QuestionCan the Anthropic Claude API be used to build a chatbot that is specific to one website, acting as customer support for potential clients and shoppers?
ApproachIndex the pages by hand in markdown, a format Claude can read. Build tools for reading and writing those files so the API can call them and work through the index. Then a chatbot front end for the backend, so users can ask questions on the page while the logic and the API key stay on a local server.
StatusA work in progress. The chatbot itself is working, with full testing pending; the interface still needs building and connecting to the backend.
Answer from source

03 / Tools

What I use

What I actually reach for, rather than a list scored out of ten.

Languages

  • Python
  • Java
  • JavaScript
  • PHP

Runtime & data

  • Node.js
  • MongoDB
  • MySQL
  • Pygame

Tooling

  • Vim
  • Git
  • Docker
  • Postman

Live project demos → github.com/FreddieBeasley →