I asked my 2019 journal "tell me about a day I felt truly alive."
It found an entry from November. I had forgotten that day existed.
That's what I'm building. A journal that talks back. Fully local, nothing leaves your machine.
Still validating - https://t.co/cOyhik9mss
If you want to get hired, open the screen recorder on your computer and create a short, tailored intro / pitch video to the company you want to get an interview with.
DM this video along with a short introduction and link to your 1 page resume to someone in the company responsible for the role you are hiring for.
Most importantly, only do this for roles you actually think youโre capable of.
It will work 1,000x better than this slop.
Django taught me to use JWT.
FastAPI taught me what JWT actually is.
I spent three years doing auth in Django with SimpleJWT. Hit /api/token/, get tokens back, done. request.user just worked. I never called jwt.encode() once. Never wrote a get_current_user function. Never thought about what was actually inside the token.
Then I built something in FastAPI.
Suddenly I had to write everything myself, the payload, the expiry, the hashing, the dependency that decodes the token on every request, the error handling when it's expired or tampered with. It was more code. It was also the first time I actually understood what I'd been using.
The difference isn't really about which is better.
It's about what each framework thinks your job is.
Django says: here's a working auth system, configure it in https://t.co/tw1vNF6PNa.
FastAPI says: here are the primitives, wire it yourself.
One gives you speed. The other gives you understanding. The dangerous assumption is thinking you have both when you only configured one.
If you've only ever done JWT in Django, try implementing it from scratch in FastAPI once. Not because it's more practical. Because you'll come back to Django knowing exactly what SimpleJWT is doing behind the scenes, and that knowledge will matter the next time something breaks in production at 2am.
The best engineers I've met aren't the ones who know the most frameworks.
They're the ones who know what the frameworks are hiding.
The US military used Claude for target selection and intelligence analysis during Iran airstrikes.
Hours later, Trump told agencies to stop using it, via Truth Social. Not an executive order. A post.
The Pentagon followed by labeling Anthropic a "supply chain risk to national security", the same designation reserved for foreign adversaries,because the company refused to enable autonomous weapons and mass surveillance.
Same day. OpenAI signed a Pentagon deal.
The message to every AI company watching:
build the kill switch, get the contract.
refuse, become the threat.
Solved Leetcode 76. Minimum Window Substring today. My first Leetcode "Hard" problem. "Solved" is doing a lot of heavy lifting in that sentence.
Here's what actually happened:
Watched a YouTube video. Didn't get it. Rewatched. Still didn't get it. Rewatched again but slower this time, like slowing down the video would somehow slow down the algorithm too. It didn't.
Asked Claude to explain it step by step. Understood 80% of it. The other 20% is somewhere between my left pointer and my right pointer, and I've chosen to leave it there.
But here's the thing, the code runs. All test cases pass. And I understand most of why.
That's not failure. That's just how it actually works. Nobody tells you this, but the first time you solve a hard problem, it looks less like a breakthrough and more like: watch, rewatch, copy, break it, fix it, ask someone, half-understand, submit, pass, stare at it, still half-understand, post on LinkedIn pretending you get it.
I'm skipping that last part. I half-get it and I'm posting anyway.
68 down. 3,792 to go.
If you read this far, I hope every hard problem you attempt makes slightly more sense than it did five YouTube rewatches ago. ๐
Excerpts from the Diary of a Full-Stack Developer
Iโve been doing UI work for the past few weeks, even though Iโm naturally more of a backend person. And honestlyโฆ itโs been heavy.
What makes it tougher is the review cycle. Before a UI gets approved, many people share their opinions, and I end up reworking the same screens again and again. Even after several rounds, nothing feels final.
Some days it feels like Iโm getting duller, not better. Like the work is draining the part of me that usually enjoys building things.
If youโre struggling to start Data Structures & Algorithms, read this.
Let me show you a simple stat that changed how I look at it.
First, what is NeetCode?
NeetCode is a popular learning platform that curates the most important DSA problems (mostly from LeetCode) and organizes them into a clear roadmap, so youโre not randomly solving questions.
Now the interesting part ๐
According to data from https://t.co/nWvHZD3ac9:
- Solving just 11 questions already puts you in the top ~26% of users
- Solving 25+ questions puts you in the top ~8.5% of users
Read that again.
You donโt need 300 problems.
You donโt need to be a โDSA godโ.
You just need to start.
Most people never even cross 10 problems. Consistency alone separates you.
If youโve been delaying your DSA journey because it feels overwhelming - this is your sign.
Open NeetCode. Pick one problem. Start today.
P.S. I am in the top 15.3% by the way ๐
Fixed a critical JWT token refresh race condition that was logging users out unexpectedly
Ever had users complain about being randomly logged out during active sessions? We found the culprit: a race condition in our token refresh logic.
The Problem:
When multiple API calls failed simultaneously (like on page load with 5+ requests), each one tried to refresh the JWT token independently. This caused:
- Multiple refresh requests hitting the server at once
- Token invalidation when the backend consumed the refresh token
- Users getting logged out unexpectedly
- Poor UX during active sessions
Implemented a mutex pattern to ensure only one token refresh happens at a time. All concurrent requests now wait for the same refresh operation instead of creating duplicate requests.
The Impact:
- Zero unexpected logouts
- Reduced API calls (1 refresh instead of N)
- Better performance and user experience
- Cleaner, more predictable code
Progress in any initiative is limited by how fast you can fail, recover, and come back at it again.
- Tried to solve a LeetCode problem but couldnโt do it.
- Watched a solution video and didnโt understand it.
- Watched it againโstill couldnโt get it.
- Watched it 4โ5 times, giving myself time in between.
- Slowly, things started to make sense.
Most people will never admit this about web development: the biggest lie in 2025 is that "AI will replace devs."
Itโs bullshit - but the truth is far scarier.
1/20 โ