Full Stack Python Developer | Backend & Database Engineering | Building useful things

Joined September 2017
133 Photos and videos
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 - tinyannadas.com/journal
1
168
Tiny Anna Das πŸ™‹πŸ½β€β™€οΈ retweeted
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.
Claude Cowork can apply to 50 jobs in under 30 minutes. Here's how to set it up.οΏΌ
114
278
4,885
766,237
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 settings.py. 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.

50
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.
47
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. 😊
1
40
Visualize step-by-step If you’re learning algorithms and feel dumb sometimes, this helps more than you think ! @neetcode1 @
91
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.
1
53
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 neetcode.io: - 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 πŸ˜‡
89
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
1
75
Cursor 2025, the wrap!
55
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.
44
Tiny Anna Das πŸ™‹πŸ½β€β™€οΈ retweeted
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 ↓
1
1
1
65
Day 1 of the job-switch grind after 9-hour work day Today’s grind: β€’ 6 LeetCode problems β†’ 6 Accepted βœ… β€’Day 10 of #30DaysOfRag - Enough with theory and decided to build something on my own. - DocQuery AI β†’ Chroma vector DB with my own PDFs created βœ…
1
2
66
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. Most of the feedback comes from people who aren’t designers, so everything is based on personal taste. No guidelines, nothing to reference… just opinions. That means I end up reworking the same screens again and again, and 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.
1
54
Tiny Anna Das πŸ™‹πŸ½β€β™€οΈ retweeted
Added a slide to my upcoming QCon AI NYC talk. Because I'm still hearing people say "RAG is dead" when to me it looks more alive than ever. LLMs need context. Either they find it (MCP, etc) or you give it to them (RAG). Both are valid and alive. Many ways to do each.
1
15
1,401
Here's a simple list explaining why each major programming language came into existence. For every language, the post explains the core problem people were trying to solve. 1. Assembly (1940s) Why invented: Computers only understand machine code (raw 0s and 1s). Writing that is painful and error-prone. Assembly gave each machine instruction a human readable name, making early programming possible. 2. C (1972) Why invented: Programmers needed a language that: - Could run extremely fast - Could control memory directly - Could still be portable across machines C solved this by giving β€œhigh-level syntax” (English-like keywords) while still letting you work close to hardware. 3. C (1985) Why invented: Large programs kept breaking because codebases got too big. C introduced classes and objects, tools that let you group related data functions together, making large software maintainable. 4. Java (1995) Why invented: Programs written in C/C couldn’t easily run on different computers. Java introduced the idea: β€œWrite once, run anywhere.” The Java Virtual Machine (JVM) made code portable and safe. 5. Python (1991) Why invented: Developers needed a language where the code is easy to read and the concepts are simple. Python removed ceremony and focused on: - simplicity - clarity - fewer lines of code It was built to lower cognitive load. 6. JavaScript (1995) Why invented: Browsers needed a way to run code on the client side to make webpages interactive (buttons, animations, validation). JavaScript filled that gap and became the default browser language. 7. PHP (1995) Why invented: The early web needed an easy way to generate dynamic HTML on the server. PHP let people embed logic directly inside webpages, perfect for blogs, forums, etc. 8. Ruby (1995) Why invented: Developers wanted a language that β€œfeels good to write.” Ruby focused on human happiness and developer experience. Later, Ruby on Rails made it the fastest way to build web apps. 9. Go / Golang (2009) Why invented: - Google struggled with: - enormous codebases - the slowness of C development - concurrency problems Go was designed to be: - fast - easy to read - built for massive, concurrent systems (network servers, cloud tools) 10. Rust (2010) Why invented: C/C give speed but have memory-safety bugs (use-after-free, buffer overflows). Rust introduced a new memory model where the compiler prevents unsafe patterns, giving C-level speed without common bugs. 11. Swift (2014) Why invented: Objective-C was old, verbose, and unsafe for iOS development. Swift provided: - modern syntax - safety by default - high performance - Ideal for Apple’s ecosystem. 12. Kotlin (2011) Why invented: Java was too verbose for modern app development. Kotlin fixed this by offering: - concise syntax - null-safety - full Java compatibility Became Google’s preferred Android language. 13. TypeScript (2012) Why invented: JavaScript grew too big and complex to manage safely. TypeScript added types, which act as rules to prevent mistakes before running code. It makes large JS projects reliable. 14. SQL (1970s) Why invented: People needed a way to ask questions to structured data using simple English-like commands. SQL created a declarative system: β€œTell me what you want, not how to get it.” 15. Bash/Shell (1970s) Why invented: Computers needed an easy way to automate tasks using small programs. Shell languages allow: - commands - pipelines - automation scripts forming the backbone of Unix systems.
51
7-day tweet series, each tweet explains one first principle building block of the request–response cycle in simple language. What is a Request? A request is just structured information sent from one program to another. The structure of a request is decided by the protocol (e.g. HTTP, SMTP, DNS) you choose. To understand structured information, imagine a letter, - It has a clear start (address, subject) - It has a body (what you want) - It has an end (signature) A computer needs the same structure to understand what you want it to do. So: - Client must form the request clearly. (e.g. Browser) - Server must recognize and interpret that structure.
50
fiver is down. Cloudflare again!
1
286