Tejas Mahajan
No ideas · Open for Opportunities
I'm Tejas. 21. Final year CS student who gets unreasonably obsessed with understanding how things actually work.
When I see a piece of technology do something that feels like magic, I can't just accept it. I need to tear it apart, read the source code, rebuild it from scratch until the magic disappears and becomes logic. That's what this site is. My lab notebook.
What Drives Me
I don't trust abstractions I haven't built myself. When I wanted to understand indexing, I built a search engine for research papers. When I needed to understand networking protocols, I made a P2P chat app. I run Arch Linux with Hyprland because I wanted complete control over my environment. When your window manager crashes at 2 AM, you learn about process management whether you want to or not.
I solve problems by breaking them down to first principles. Strip away the framework magic, the library abstractions, the "it just works" mentality. What's actually happening at the system level? What are the real constraints? Where's the actual bottleneck?
Currently grinding competitive programming. Specialist on Codeforces. There's something addictive about reducing a 200-line brute force solution to 20 lines of elegant logic. It's pure pattern recognition and algorithmic thinking.
What I Build
Most projects start because I encountered something I didn't understand and refused to move on until I figured it out. I'm not building products or chasing metrics. I'm building to learn.
Working with LLMs because the technology is genuinely fascinating. Implementing algorithms from papers because reading about them isn't enough. Creating tools that expose how systems work under the hood.
I spend a lot of time alone, focused. Debugging edge cases. Implementing data structures from scratch. Reading library source code to understand why something behaves a certain way. My brain doesn't turn off until the problem is solved.
What I Write About
I document my journeys of discovery. When I encounter a piece of technology that feels magical or broken, I fall down the rabbit hole of research and experimentation until I understand it completely. Then I write about it.
Not tutorials. Not guides. Just the story of figuring something out. The confusion, the dead ends, the moment it finally clicks. If explaining something forces me to understand it at a deeper level, then it was worth writing.
Right Now
Final year of B.Tech. Figuring out what comes after graduation while balancing placements, academics, and the projects that won't leave my head.
Planning to contribute more to open source. The fastest way to level up is to read production code written by people better than you, then try to improve it without breaking everything.
My Stack
System: Arch Linux via HyDE Project, Hyprland, Kitty terminal, zsh
Code: VS Code, Zed, Neovim depending on what I'm doing
Languages: Python for AI/backend, C++ when performance matters, TypeScript for web
Web: Next.js + TailwindCSS (this site), FastAPI for backends
Database: PostgreSQL for production, SQLite for experiments
ML: PyTorch
CP: C++ on Codeforces (@screenager), LeetCode, AtCoder
If it doesn't make me faster or help me understand something better, I don't use it.
Connect
Find me at @screenager or @the_screenager on most platforms.
Up for technical discussions, debugging weird problems, or talking about why a certain approach is fundamentally broken. I won't judge your tech choices.
Fair warning: I respond with excessive enthusiasm about CS fundamentals.