Twenty-one. Final year CS student who lives in terminal windows and gets a little too excited about system calls.
The Origin Story
My first "Hello World" didn’t print anything to the console. It crashed. Turns out I forgot the semicolon in C++, and the compiler error looked like it was written in ancient runes. Most people would’ve Googled the fix and moved on. I spent two hours reading about syntax parsing and how compilers work.
That’s kind of been the pattern since.
I don’t write code because I want to build the next unicorn startup. I write it because watching a well-designed algorithm solve a problem in O(log n) instead of O(n²) feels like discovering a cheat code to reality.
What Actually Happened
Started coding in high school to solve math competition problems faster. Wrote a Python script that brute-forced combinatorics. It was ugly, inefficient, and crashed on anything beyond 10 inputs. But it worked. That feeling — the moment when logic you wrote makes a computer do exactly what you told it to — that’s the drug.
Fast forward: competitive programming became an obsession. Not for the rating or the bragging rights, but because there’s something deeply satisfying about staring at a problem for three hours, having no idea how to approach it, then suddenly seeing the pattern. The reduction. The elegant solution hiding behind the complexity.
Currently Specialist on Codeforces. Not because I’m naturally gifted at algorithms (I’m not), but because I’m stubborn enough to debug my solution until 4 AM when everyone else has given up.
How I Learn Things
I broke my Arch Linux install at least a dozen times before I actually understood what /etc does. My first “distributed system” was a chat app where messages occasionally arrived in the wrong order and sometimes just… disappeared. My window manager has crashed mid-presentation. Twice.
I learn by breaking things, then fixing them. Then breaking them again in a different way to see what else might happen.
When I wanted to understand how search engines rank results, I built one. When I got curious about how LLMs actually generate text, I implemented a tiny transformer from scratch (it was terrible, but I understood attention mechanisms after). When PostgreSQL’s query planner confused me, I read the source code until it didn’t.
Most of my projects are unfinished experiments. Half-working prototypes. Things I built to answer a single question, then abandoned once I got my answer. This site is different though — this is where I document the journey. The confusions, the breakthroughs, the “wait, that actually worked?” moments.
Right Now
Grinding through final year. Figuring out what comes next. Interviewing for places that let me work on hard problems. Contributing to open source when I find code that makes me think “I could make this better.”
Writing here when something interesting happens — a bug I spent way too long debugging, an algorithm that clicked after the 10th attempt, a systems concept I finally wrapped my head around.
Trying to get better at competitive programming. Not to flex a rating, but because solving a hard problem in 20 minutes instead of 2 hours means I’m getting faster at pattern recognition. And pattern recognition is basically the entire job.
The Stack (What I Actually Use)
Daily driver: Arch Linux, Hyprland (tiling WM), Kitty terminal, zsh with way too many aliases
Code: Neovim for quick edits, VS Code when I need a debugger that actually works, Zed when I want to pretend I’m living in the future
Languages: Python for prototypes and backend, C++ for competitive programming and when I need actual performance, TypeScript for web stuff (this site is Astro + Tailwind)
Database: PostgreSQL when it matters, SQLite when it doesn’t
Other tools: Git, tmux, lots of small CLI utilities I wrote and forgot about
I change my setup constantly. Not because I’m chasing productivity hacks, but because I get curious about how a different tool works and need to try it myself.
Connect
I’m @screenager on most platforms — GitHub, Codeforces, X.
Always up for talking about:
- Why your algorithm is actually O(n log n) not O(n)
- Obscure bugs that only happen on Tuesdays
- Why某system design choice is brilliant/terrible
- Competitive programming strategies
- That one edge case you didn’t think of
Fair warning: I will get unreasonably excited about CS fundamentals. You’ve been warned.