About Me

my profile picture

Hey there, I'm Nok Hang.

I'm an 18-year-old second year Computer Science undergraduate at the University of Warwick. In my first year, I was awarded a prize for Exceptional achievement in the first-year of Computer Science, achieving a mark of 86.5%.

I'm an aspiring software engineer interested in systems programming, linux, compilers, and quantum computing. I'm passionate about simple work setups, in particular, using the terminal and avoiding IDEs. I try to use as much open source and free software as possible.

I've been programming since 2021, and in my free time, I work towards improving at competitive programming and becoming a LeetCode & CodeForces warrior. So far, I've placed 3rd in Warwick for the UKIEPC 2024, and won the UWCS Programming Competition 2025.

I am currently:

  • A contributor for A-Level CS tutorials on python sponge, a computer science educational website run by the Perse School, Cambridge.
  • A member of the authoring and reviewing committee of PCTC, a programming competition under the UKCT umbrella
  • A systems operations volunteer at the Free Software Foundation

Hello, World!

I started programming at the age of 14, when I learnt my first language - Python, which I'm still most proficient with to this day. I started out by making video games: my first project was a 2D minecraft clone made using pygame. For a while, I stuck to making games, my latest game being Drift Boss 2D. Around July of 2021, I decided to pursue computer science at university.

01/2021

Let's get competitive

I first entered the world of competitive programming via Advent of Code 2022, and other various competitions I did during Year 12. In my first AOC, I would attain 34/50 stars, but it would take me two more years to achieve all 50 stars. Later down the line, I started solving problems on Project Euler, where I completed 100 problems in just 6 weeks by July 2023.

12/2022, 07/2023

r2[31:0]=000000A8

Following on from learning Verilog in Year 12 to build a RTL microprocessor simulator, I built a compiler that translated my own simple programming language into custom assembly that the microprocessor used. Although the language didn't have functions or data types, it could reliably compute the number of primes under 1000 - the program's VCD output is in the heading. This deepened my knowledge of how a computer works, and set me up to learn C, C++ and Rust later down the line.

02/2024

sqrt/binary

One of my interests is learning in depth about how systems work at the low-level, and this time I was intrigued about how so called "next-generation" quantum computers work. I learnt the basics off IBM Learning and various other online courses, such as Grover and Shor's algorithms, and started using the Qiskit framework to write quantum programs myself. This directly inspired the animation in the title of this website, hover over the title to find out more.

08/2024

At last

I participated in the UK & Ireland Programming Contest (UKIEPC) 2024, and as a team of three, we got 3rd on the Warwick leaderboard, 37th nationally. In January 2025, I headed a team of three to win the UWCS Programming Competition, my first ever competitive programming win.

10/2024, 01/2025

Free 4 Everyone

I joined the Free Software Foundation as a systems operations volunteer to help contribute/maintain projects done by the FSF. Through migrating a MediaWiki instance and testing a full stack PHP application, I furthered my terminal & system skills whilst finally entering the world of web development. I worked with standard web-dev tools like Apache, MySQL and PHP, but also free software like IRC, Trisquel and GPG encryption. My newfound appreciation for free software made me finally switch from Microsoft Edge & Outlook to Firefox & Thunderbird.

06/2025

2021
2022
2023
2024
2025

migrate: 🇭🇰 -> 🇬🇧

After completing my IGCSEs with 9 A*s, I moved from my birthplace, Hong Kong, to Cambridge, UK, where I started sixth form at the Perse School, Cambridge.

06/2022 - 09/2022

BlueBotChessTest4

Leaving the realm of game development, my first major project that wasn't a video game was a minimax chess engine written in Python. Over the course of a year, I came to realise that Python wasn't exactly the best language for this, but eventually the chess engine reached a rating of 2000+ on chess.com after many optimisations I learnt off the Chess Programming Wiki

04/2023 - 04/2024

Python Sponge

After graduating from sixth form, I joined my first volunteering work helping write A Level CS tutorials for Python Sponge, my sixth form's Computer Science educational website. In addition, I was invited to the authoring and reviewing committee for PCTC, a coding competition hosted by my school.

07/2024

Where warriors are made

I started my 4-year MEng Computer Science degree at the University of Warwick after completing A Levels with 4 A*s in Maths, Further Maths, Physics, and Computer Science. Around the same time, I began my LeetCode journey as a side project with an aim to improve reasoning and competitive programming skills. To date, I've completed over 300 problems.

09/2024

What's an IDE?

I first picked up Linux in August 2024 via an Ubuntu VM, and alongside it, I also started using vim. However, after multiple failed attempts to transition to using vim as my main editor, I finally made the switch to Neovim in May 2025 after successfully writing a config. From then on, I've improved at using the terminal and also made command line tools to help me with daily tasks, e.g. tatum.

05/2025

The Present

I've completed my first year at Warwick achieving the 2nd highest mark in my cohort, and I'm about to start the second year of my 4-year degree. Recently, I've started grinding Codeforces to further my competitive programming skills, and have been learning more about web development. I plan on revisiting past areas to dig even deeper, and also expand my use of free & open source software - even if it means creating a free version myself. If you have enough motivation and ability to learn, you will eventually reach your goals - nothing can stop you!

09/2025

Technical Skills

Programming Languages

Frameworks & Languages

Development & System Tools

More Info & Miscellaneous

Programming Languages: I'm most proficient with Python (4 years), but I am semi-proficient in other languages like C, JavaScript, Java and Haskell. In addition, I know a bit of Verilog (no icon available)

Frameworks: I'm mostly a beginner with web-dev frameworks, but I also know PyQt for UI's and Qiskit for quantum computing.

Systems: Mostly decent with Linux (Ubuntu-based distros) and terminal skills. I also have skills in using QEMU/KVM for virtual machines, and GPG encryption.


Coding Challenges

One of my hobbies is doing coding challenges - whether it is a casual 11pm LeetCode session, or an early morning Advent of Code rush. Aside from LeetCode and Codeforces, I've also done Advent of Code 2022, 2023 & 2024, where I only attained all 50 stars in my lastest attempt. In addition, I've also done 123 problems on Project Euler to date, where I completed the first 100 in just 6 weeks. At the moment, I'm working towards 400 problems completed on LeetCode, and 100 problems completed on Codeforces.

leetcode
codeforces