Most people have hobbies but very few ever turn them into income. Not because they lack skill but because they lack clarity on where to start. That’s the problem I set out to solve. Hobby2Income. An app that helps you turn your hobbies into real income streams. This AI system let you: select a hobby (or type your own) Click “Turn into income” Get a complete, structured plan: Niche ideas Monetizat
An opinionated list of Python frameworks, libraries, tools, and resources
I shipped gni-compression to npm two days ago. One of the first questions I got (from myself, running benchmarks at midnight): does it work on anything other than chat data? Short answer: not yet. Long answer: I found out exactly why, and it led me somewhere more interesting than I expected. After the npm launch I ran GN against Silesia — the standard general text compression benchmark suite. Dick
Introduction Picture two doctors updating the same patient record at the same time - one in São Paulo, the other in London. Both are offline. When connectivity returns, whose changes prevail? This is not a hypothetical. It is the everyday reality of distributed systems: multiple nodes, no shared clock, no guaranteed network. The conventional answer has long been locking - one node waits while an
I keep seeing the same argument about AI making us dumber. It's the same argument people had about search engines, and before that books. The usual response is to point at history and say "every generation panics, every generation was wrong, relax." I think that response is half right, and the wrong half is what bothers me. Tools change what we bother to remember. The people who'd trained their wh
It started at midnight I had 24 hours, a free Replit subscription, and an idea: what if I could build something like Miro — but actually understand every line of code in it? The core problem I had to solve first Multiplayer sync sounds simple until you actually build it. The hard part isn't sending a canvas update — it's figuring out what to send. canvas.on('object:modified', (e) => { socket.emi
A few years ago I solved 200 LeetCode problems and still froze on Mediums I hadn't seen. The breakthrough wasn't another hundred problems. It was a different loop. A problem asks for the longest substring with at most K distinct characters. You've solved sliding window before. Maximum sum subarray of size K, done. Longest substring without repeating characters, done. This third one stalls you. Twe
Introduction Some code works. Some code lasts. The difference rarely comes down to typing speed, syntax mastery, or how many nights you're willing to push through. It comes down to how you think about a problem before you write a single line. Big-O notation is a mathematical framework that describes how an algorithm performs as its input grows. In plain terms, it answers one question: