Skip to content
tommy de leon

Practical software. Thoughtful execution.

I build software that works, then document exactly what it has been tested to survive. Electronics Engineering student, training in networks and security.

  • Open to junior roles and freelance
  • in/tommydeleon
  • TommyDeLeon

I build the software that runs on networksand I am training to defend them.

Both face the same question: what happens when something unexpected hits the system? Building software taught me where the checks have to go. Studying networks is teaching me what those checks are up against.

Things I have built

The real thing, not the demo. The timer ran out, and this is the whole screen until the problem is solved. Run lets you test a guess without losing an attempt.
The moment the speed rule exists for: every test passes, but 249 ms against a 47 ms budget keeps the machine shut. Captured in the browser demo, which measures on your own machine, so the gap reads larger than the installed app would show.
Where a focus block starts. The counters are from my own machine during development, not from users. Bypassed and abandoned sessions stay in the log next to the solved ones.
The escape list the product publishes about itself: twelve ways out of the desktop lock, with what actually happened for each. Three beat it. Two held. The rest say plainly what has and has not been tried.
Try it in the browser with nothing to install. The problem is winnable the wrong way: the obvious answer is correct, but too slow.

2026

CodeLock

A focus lock for Windows. When your timer runs out, the screen locks, and the way back in is solving a coding problem — correctly, and fast.

Every focus app has a dismiss button, and the person it is blocking can always reach it. CodeLock takes the button away. When the timer ends, the screen locks and hands you a programming problem chosen at that moment, so there is nothing to prepare in advance. It is a commitment device, not a prison: the write-up lists the ways around it.

I built every part of it myself: the service that keeps the timers and decides when you have earned your way out, the sandbox that runs your code safely, the lock screen, and the desktop app that actually holds the machine. Being right is not enough. Your answer also has to be fast, and a slow one keeps you locked and tells you how far off you were.

What is proven so far: 695 problems, each checked in six languages before it can be used; a faked unlock rejected against a live lock; and a public list of twelve ways to escape the lock, including the three that work. It is a personal tool, not a product yet, and the write-up keeps every limit next to the claim.

How the speed rule and the lock work

Making “fast enough” fair was most of the work. Every language starts up at a different speed, so each problem carries a time budget per language rather than one number for all. You get the better of two runs, and a small margin is added on top so a noisy measurement cannot lock you out unfairly.

The app is never allowed to decide it is unlocked. Only the server can say so, by signing a short note after your code passes and the speed check clears, and the desktop app checks that signature in a place the screen cannot touch. While writing this up I found a hole: a genuine note from one problem could open a different lock for five minutes. I closed it on 2 September 2026. That kind of bug only shows up by reading the code, not by using the app.

Checks that run on the user's own screen are suggestions. The real decision belongs on the server — and what the lock has actually survived is written down, route by route, including the rows that prove nothing.

  • TypeScript
  • Node 24
  • Express
  • Prisma
  • Postgres
  • Next.js 16
  • React 19
  • Electron
  • Expo
  • Docker

What I work with

The row marked Building with went into CodeLock. The rows marked Training on are what I am studying now.

Training on

Network fundamentals

How data finds its way from one machine to another, and how networks are kept apart. Most of my study time goes here.

  • TCP/IP & the OSI model
  • Subnetting and VLSM
  • Routing and switching
  • VLANs and segmentation
  • DNS, DHCP, NAT

Training on

Security foundations

Who is allowed to do what, and how a system proves it.

  • Authentication and authorization
  • TLS and certificates
  • Least privilege
  • Threat modeling
  • System hardening

Building with

Software I build with

Everything here was used to build and run CodeLock. Ask me anything about it.

  • TypeScript
  • Node and Express
  • React and Next.js
  • Postgres and Prisma
  • Electron
  • Docker
  • Git

Training on

Tools I am working with

Seeing what is really happening on a network, in a lab, instead of guessing.

  • Wireshark
  • nmap
  • Linux command line
  • pfSense / OPNsense
  • Virtual lab environments

Why networks

Tommy De Leon at a harbour railing, a city skyline and water behind him.

Type a name into a browser and you reach a machine on the other side of the world before you finish exhaling. None of that is obvious. A name has to become an address, a path has to be found across networks nobody owns, and your laptop has to agree on a secret with a stranger. All of it happens in a blink.

That is what hooked me. Networks are why a conversation with someone I have never met costs nothing and takes no time. Distance stopped being an argument.

Then the other question shows up. You never really know what is on the other end, only what it claims to be. Almost everything that keeps the internet safe exists to close that gap. That is the part I want to be good at.

I came at this from the hardware side, as an Electronics Engineering student, and I build software to check that I really understand things. CodeLock taught me more about trust than any textbook: the first version let the app decide it was unlocked, and seeing how easily that fell apart showed me exactly where a check belongs.

Identity on a wire is a claim until something proves it.

Hiring

Hire me

I am looking for a junior software or web developer role: full-time, part-time or internship. CodeLock shows how I work. The code, the write-up and a live demo are all public.

Clients

Start a project

I take freelance work: websites, web apps, and the small tools that never get built because nobody has time. Tell me what you need and I will tell you straight whether I am the right fit.

Email me about a project

Opens your mail app. The address is also listed on the left.

Questions about CodeLock are welcome too. I read everything that arrives.