Posts
LeetCode Challenge Day 47 — 3217. Delete Nodes From Linked List Present in Array
Day 47 of my LeetCode challenge! Today’s problem is "Delete Nodes From Linked List Present in Array" — a medium-level linked list problem that tests efficient traversal and node deletion using hashing. I share my JavaScript solution with a clean one-pass approach.
November 1, 2025
LeetCode Challenge Day 46 — 3289. Get Sneaky Numbers
Day 46 of my LeetCode challenge! Today’s problem is "Get Sneaky Numbers" — a simple array problem that tests how you handle duplicates efficiently. I share my JavaScript solution with an optimized linear-time approach and clear reasoning.
October 31, 2025
Amazon Layoffs Explained - A Deep Dive into Andy Jassy’s Restructuring Strategy and What It Means for Engineers
Amazon’s recent decision to lay off 14,000 employees has raised eyebrows across the tech world. Beyond the headlines about AI and macroeconomics, the reality is that Andy Jassy is fundamentally reshaping Amazon’s management structure. This blog explores the context, reasons, internal leaks, and what these changes mean for engineers, managers, and the broader job market.
October 30, 2025
LeetCode Challenge Day 45 — 1526. Minimum Number of Increments on Subarrays to Form a Target Array
Day 45 of my LeetCode challenge! Today’s problem is "Minimum Number of Increments on Subarrays to Form a Target Array". The trick is to realize you only need to pay for increases between consecutive elements. I share my JavaScript solution with complexity analysis.
October 30, 2025
LeetCode Challenge Day 44 — 3370. Smallest Number With All Set Bits
Day 44 of my LeetCode challenge! Today’s problem is "Smallest Number With All Set Bits". I realized it boils down to finding the next number of the form 2^k - 1 that is greater than or equal to n. I share my JavaScript solution with complexity analysis.
October 29, 2025
LeetCode Challenge Day 43 — 3354. Make Array Elements Equal to Zero
Day 43 of my LeetCode challenge! Today’s problem is "Make Array Elements Equal to Zero". I simulate starting from zeros, walk left/right with direction flips, and check if all numbers can be reduced to zero. I also share my JavaScript solution with complexity analysis.
October 28, 2025
LeetCode Challenge Day 42 — 2125. Number of Laser Beams in a Bank
Day 42 of my LeetCode challenge! Today’s problem is "Number of Laser Beams in a Bank". I explain how to count security devices row by row, track consecutive non-empty rows, and share my JavaScript solution with complexity analysis.
October 27, 2025
LeetCode Challenge Day 41 — 2043. Simple Bank System
Day 41 of my LeetCode challenge! Today’s problem is "Simple Bank System". I simulate a banking system with deposit, withdraw, and transfer operations, explain the intuition, and share my JavaScript solution with complexity analysis.
October 26, 2025
LeetCode Challenge Day 40 — 1716. Calculate Money in LeetCode Bank
Day 40 of my LeetCode challenge! Today’s problem is "Calculate Money in LeetCode Bank". I break the deposit pattern into full weeks and leftover days, then sum them up with a clean JavaScript solution and complexity analysis.
October 25, 2025
LeetCode Challenge Day 39 — 2048. Next Greater Numerically Balanced Number
Day 39 of my LeetCode challenge! Today’s problem is "Next Greater Numerically Balanced Number". I explain the idea of numerically balanced numbers, show how to pre-generate all valid candidates, and share my JavaScript solution with complexity analysis.
October 24, 2025
LeetCode Challenge Day 38 — 3461. Check If Digits Are Equal in String After Operations I
Day 38 of my LeetCode challenge! Today’s problem is "Check If Digits Are Equal in String After Operations I". I simulate the digit-reduction process, explain the intuition, and share my JavaScript solution with complexity analysis.
October 23, 2025
AWS Mass Outage Explained - A Deep Dive into the DNS Resolution Failure That Disrupted the Internet
The recent AWS mass outage brought down major services including Fortnite, Snapchat, Alexa, and even Amazon.com itself. This blog post provides an in-depth analysis of what actually happened in the Northern Virginia region (US-East-1), why DNS resolution failures in DynamoDB triggered widespread disruptions, and the lessons engineers and companies can learn about resilience and redundancy.
October 22, 2025
LeetCode Challenge Day 37 — 3347. Maximum Frequency of an Element After Performing Operations II
Day 37 of my LeetCode challenge! Today’s problem is "Maximum Frequency of an Element After Performing Operations II". I explore how to use sweep line + difference arrays to track interval coverage, analyze complexity, and share my JavaScript solution.
October 22, 2025
LeetCode Challenge Day 36 — 3346.Max Frequency After Operations
Day 36 of my LeetCode challenge! Today’s problem is "Max Frequency After Operations". I explore how to use range contribution + difference arrays to maximize element frequency, analyze complexity, and share my JavaScript solution.
October 21, 2025
LeetCode Challenge Day 35 — 2011. Final Value of Variable After Performing Operations
Day 35 of my LeetCode challenge! Today’s problem is "Final Value of Variable After Performing Operations". I explore how to simulate increment/decrement operations directly, analyze complexity, and share my JavaScript solution.
October 20, 2025
LeetCode Challenge Day 34 — 1625. Lexicographically Smallest String After Applying Operations
Day 34 of my LeetCode challenge! Today’s problem is "Lexicographically Smallest String After Applying Operations". I explore BFS state-space traversal, how to systematically generate new strings, analyze complexity, and share my JavaScript solution.
October 19, 2025
LeetCode Challenge Day 33 — 3397.Maximize Distinct Elements Within Range
Day 33 of my LeetCode challenge! Today’s problem is about picking distinct integers from flexible ranges. I explain the greedy interval strategy, why sorting by endpoints works, analyze complexity, and share my JavaScript solution.
October 18, 2025
LeetCode Challenge Day 32 — 3003. Maximize the Number of Partitions After Operations
Day 32 of my LeetCode challenge! Today’s problem is "Maximize the Number of Partitions After Operations". I dive into greedy partitioning with at most one character change, explain how precomputation + binary search helps, analyze complexity, and share my JavaScript solution.
October 17, 2025
LeetCode Challenge Day 31 — 2598. Smallest Missing Non-negative Integer After Operations
Day 31 of my LeetCode challenge! Today’s problem is "Smallest Missing Non-negative Integer After Operations". I explore the idea of using modulo arithmetic, frequency counting, simulate the construction of numbers, analyze complexity, and share my JavaScript solution.
October 16, 2025
LeetCode Challenge Day 30 — 3350. Adjacent Increasing Subarrays Detection II
Day 30 of my LeetCode challenge! Today’s problem is "Adjacent Increasing Subarrays Detection II". I dive into the idea of combining left and right increasing runs, show how to use dynamic programming arrays to track them, analyze complexity, and share my JavaScript solution.
October 15, 2025
Self-Hosting on the Public Internet – How to Stay Secure Without Losing Convenience
Many self-hosters are told to never expose their services to the internet and to stick with VPNs like Tailscale or WireGuard. While this is generally safer, there are real-world scenarios where public exposure is necessary or simply more convenient. This in-depth guide explores practical, layered security strategies to keep your setup safe from bot-driven attacks, from tools like Fail2Ban, CrowdSec, and GeoBlocking to advanced measures like Single Sign-On, mTLS, and honeypots. It also emphasizes the importance of monitoring, alerting, and the principle of least privilege for building resilient systems.
October 14, 2025
LeetCode Challenge Day 29 — 3349. Adjacent Increasing Subarrays Detection I
Day 29 of my LeetCode challenge! Today’s problem is "Adjacent Increasing Subarrays Detection I". I walk through the intuition of increasing runs, show how to precompute with DP, analyze time and space complexity, and share my JavaScript solution.
October 14, 2025
The New Tech Job Market - Why Hiring Feels Broken & How You Can Still Stand Out in a Saturated Landscape
The tech job market has shifted dramatically, moving away from a frenzied hiring spree to a period of cautious, deliberate growth. This in-depth analysis explores the macroeconomic and technological factors behind the slowdown, from investor sentiment shifts to the transformative impact of AI. It provides a comprehensive, actionable guide for engineers on how to recalibrate their job search strategy, emphasizing the critical importance of referrals, product-minded thinking, and technical mastery that goes beyond mere problem-solving.
October 13, 2025
LeetCode Challenge Day 28 — 2273. Find Resultant Array After Removing Anagrams
Day 28 of my LeetCode challenge! Today’s problem is "Find Resultant Array After Removing Anagrams". I explain the intuition of consecutive anagram removal, show how to use frequency signatures, analyze time and space complexity, and share my JavaScript solution.
October 13, 2025
LeetCode Challenge Day 27 — 3539. Find Sum of Array Product of Magical Sequences
Day 27 of my LeetCode challenge! Today’s problem is "Find Sum of Array Product of Magical Sequences". I explain the combinatorial DP intuition, walk through binary carry simulation, analyze time and space complexity, and share my JavaScript solution.
October 12, 2025
LeetCode Challenge Day 26 — 3186. Maximum Total Damage With Spell Casting
Day 26 of my LeetCode challenge! Today’s problem is "Maximum Total Damage With Spell Casting". I explain the DP + binary search intuition, walk through the value grouping trick, analyze time and space complexity, and share my JavaScript solution.
October 11, 2025
LeetCode Challenge Day 25 — 3147. Taking Maximum Energy From the Mystic Dungeon
Day 25 of my LeetCode challenge! Today’s problem is "Taking Maximum Energy From the Mystic Dungeon". I explain the dynamic programming intuition, walk through the subsequence partitioning approach, analyze time and space complexity, and share my JavaScript solution.
October 10, 2025
LeetCode Challenge Day 24 — 3494. Find the Minimum Amount of Time to Brew Potions
Day 24 of my LeetCode challenge! Today’s problem is "Find the Minimum Amount of Time to Brew Potions". I explain the prefix sum intuition, walk through the gap calculation approach, analyze time and space complexity, and share my JavaScript solution.
October 9, 2025
LeetCode Challenge Day 23 — 2300. Successful Pairs of Spells and Potions
Day 23 of my LeetCode challenge! Today’s problem is "Successful Pairs of Spells and Potions". I explain the binary search intuition, walk through the sort + lower bound approach, analyze time and space complexity, and share my JavaScript solution.
October 8, 2025
LeetCode Challenge Day 22 — 1488. Avoid Flood in The City
Day 22 of my LeetCode challenge! Today’s problem is "Avoid Flood in The City". I share the greedy “dry just in time” intuition, explain the ordered-set + map approach (binary search over dry days), analyze time and space complexity, and provide my JavaScript solution.
October 7, 2025
LeetCode Challenge Day 21 — 778. Swim in Rising Water
Day 21 of my LeetCode challenge! Today’s problem is "Swim in Rising Water". I share the minimax path intuition, explain the Dijkstra (min-heap) approach, analyze time and space complexity, and provide my JavaScript solution.
October 6, 2025
LeetCode Challenge Day 20 — 417. Pacific Atlantic Water Flow
Day 20 of my LeetCode challenge! Today’s problem is "Pacific Atlantic Water Flow". I explain the reverse-flow intuition, walk through the BFS approach from both oceans, analyze time and space complexity, and share my JavaScript solution.
October 5, 2025
LeetCode Challenge Day 19 — 11. Container With Most Water
Day 19 of my LeetCode challenge! Today’s problem is "Container With Most Water". I explain the two-pointer intuition, walk through the step-by-step shrinking window approach, analyze time and space complexity, and share my JavaScript solution.
October 4, 2025
LeetCode Challenge Day 18 — 407. Trapping Rain Water II
Day 18 of my LeetCode challenge! Today’s problem is "Trapping Rain Water II". I explain the heap + BFS intuition, walk through the Dijkstra-like expansion approach, analyze time and space complexity, and share my JavaScript solution.
October 3, 2025
LeetCode Challenge Day 17 — 3100. Water Bottles II
Day 17 of my LeetCode challenge! Today’s problem is "Water Bottles II". I explain the greedy intuition, walk through the simulation approach, analyze time and space complexity, and share my JavaScript solution.
October 2, 2025
LeetCode Challenge Day 16 — 1518. Water Bottles
Day 16 of my LeetCode challenge! Today’s problem is "Water Bottles". I explain the intuition behind repeatedly exchanging bottles, walk through the simulation approach, discuss time and space complexity, and share my JavaScript solution.
October 1, 2025
LeetCode Challenge Day 15 — 2221. Find Triangular Sum of an Array
Day 15 of my LeetCode challenge! Today’s problem is "Find Triangular Sum of an Array". I walk through the intuition, explain the simulation approach, discuss time and space complexity, and share my JavaScript solution.
September 30, 2025
LeetCode Challenge Day 14 — 1039. Minimum Score Triangulation of Polygon
Day 14 of my LeetCode challenge! Today’s problem is "Minimum Score Triangulation of Polygon". I explain why dynamic programming is a natural fit here, how to define the state transition, and share my JavaScript solution.
September 29, 2025
LeetCode Challenge Day 13 — 976. Largest Perimeter Triangle
Day 13 of my LeetCode challenge! Today’s problem is "Largest Perimeter Triangle". I explain how to check triangle inequality efficiently, describe the greedy + sorting approach, and share my JavaScript solution.
September 28, 2025
LeetCode Challenge Day 12 — 812. Largest Triangle Area
Day 12 of my LeetCode challenge! Today’s problem is "Largest Triangle Area". I explain how to use the shoelace formula to compute triangle areas from 3 points, describe the brute-force O(n³) approach that works given small input size, and share my JavaScript solution.
September 27, 2025
LeetCode Challenge Day 11 — 611. Valid Triangle Number
Day 11 of my LeetCode challenge! Today’s problem is "Valid Triangle Number". I explain the triangle inequality condition, walk through the two-pointer approach after sorting, and share my JavaScript solution with O(n²) time complexity.
September 26, 2025
LeetCode Challenge Day 10 — 120. Triangle
Day 10 of my LeetCode challenge! Today’s problem is "Triangle". I go over how to find the minimum path sum from top to bottom, explain the bottom-up dynamic programming approach, and share my JavaScript solution that optimizes space by reusing a single array.
September 25, 2025
LeetCode Challenge Day 9 — 166. Fraction to Recurring Decimal
Day 9 of my LeetCode challenge! Today’s problem is "Fraction to Recurring Decimal". I explain how repeating decimals are formed, how to detect cycles using a hashmap, and share my JavaScript solution that simulates long division while tracking remainders to insert parentheses at the right spot.
September 24, 2025
LeetCode Challenge Day 8 — 165. Compare Version Numbers
Day 8 of my LeetCode challenge! Today’s problem is "Compare Version Numbers". I break down the intuition, explain how to handle version strings with different lengths and leading zeros, and share my JavaScript solution that splits versions, compares revisions as integers, and handles missing revisions as zeros.
September 23, 2025
LeetCode Challenge Day 7 — 3005. Count Elements With Maximum Frequency
Day 7 of my LeetCode challenge! Today’s problem is "Count Elements With Maximum Frequency". I explain the intuition behind the problem, how to approach it step by step, and walk through my JavaScript solution using a frequency map to count occurrences, finding the maximum frequency, and summing up all elements that share that maximum efficiently.
September 22, 2025
LeetCode Challenge Day 6 — 1912. Design Movie Renting System
Day 6 of my LeetCode challenge! Today’s problem is "Design Movie Renting System". I explain the system-design style challenge, how to approach it, and walk through my JavaScript solution using heaps for ordering, maps for lookups, and lazy deletion to handle stale entries efficiently.
September 21, 2025
Trump’s $100,000 H1B Visa Policy: Why It Could Spark a Global Tech Renaissance Outside the United States
Trump’s proposal of a $100,000 charge on H1B visas could reshape the global tech landscape. While it seems like a setback for Indian engineers, this policy shift might actually accelerate remote job growth, empower India, Vietnam, Bangladesh, and others, and push us toward building our own platforms — from social media to search engines and cloud infrastructure.
September 20, 2025
LeetCode Challenge Day 5 — 3508. Implement Router
Day 5 of my LeetCode challenge! Today’s problem is "Implement Router". I explain the problem, how to approach it, and walk through my JavaScript solution using a queue for FIFO, a set for duplicate detection, and a map of timestamps with binary search for efficient counting.
September 20, 2025
LeetCode Challenge Day 4 — 3484. Design Spreadsheet
Day 4 of my LeetCode challenge! Today’s problem is "Design Spreadsheet". I restate the problem, explain how to approach it, give a step-by-step solution, include my JavaScript implementation, analyze complexity, list edge-cases, testing strategies, and embed a responsive walkthrough video.
September 19, 2025
LeetCode Challenge Day 3 — 3408. Design Task Manager
Day 3 of my LeetCode challenge! Today’s problem is "Design Task Manager". I explain the problem, how to approach it, and walk through my JavaScript solution using a max-heap + hashmap with lazy deletion.
September 18, 2025
Code90 Day 1-A Beginner's Journey into Web Development – Building the Visual Studio Code Front Page with HTML & CSS
Join us for Day 1 of Code90, a 90-day web development bootcamp for absolute beginners! Learn the basics of HTML and CSS while building a simplified version of the Visual Studio Code front page. This detailed guide breaks down every step, making web development accessible to non-CS students—no prior experience needed.
May 5, 2025
Are Online Courses Worth It for Aspiring Software Developers?
Discover whether online courses are worth the investment for learning software development. This in-depth guide explores their benefits, compares cheap, mid-priced, and expensive courses, and provides practical tips to choose the right one for your journey—saving you time and frustration.
April 30, 2025
Master CodexCLI - A Complete Guide to Streamlining Your Development Workflow
CodexCLI is a powerful AI command-line tool that can enhance your development process by automating tasks and providing quick access to useful commands. This guide will show you how to leverage CodexCLI to boost your productivity. 🚀
April 17, 2025
Code90 — My 90Day Full Stack, DevOps & Web3 Journey
I’m kicking off a 90-day deep-dive into everything I’ve learned in 7+ years — from Web Development to DevOps, Web3, and real-world projects. Follow along as I rebuild, relearn, and share it all in public.
April 15, 2025
React Server Components - A Game-Changing Paradigm
Discover how React Server Components simplify data fetching, boost performance, and enhance SEO while retaining React's flexibility. 🚀
April 12, 2025
Moving Forward-From Agency Life to a Full-Stack Tech Dive
After years of running my own web development agency, I'm shifting gears to focus on full-stack development and modern tech. Here's how I'm transitioning and what’s coming next.
April 7, 2025
Understanding Caching in Next.js for Blazing Fast Web Apps 🚀
Next.js offers powerful caching mechanisms to boost performance and deliver faster experiences. Learn how caching works in Next.js and how to configure it for maximum speed and efficiency. ⚡
April 4, 2025
Understanding Short Circuiting in Programming
Short circuiting is an essential concept in programming that helps optimize boolean logic operations. Learn how it works and how you can use it to write cleaner and more efficient code! 🚀
April 2, 2025
How to Sync Your Obsidian Notes Privately Across Windows, iOS, and Android
Sync your Obsidian notes securely across Windows, iOS, and Android using SyncThing and Tailscale—no cloud services needed!
March 31, 2025
Why You Should Review Your Own Code and How to Review It Effectively
March 28, 2025
How to Build Projects 100% Faster
Planning your projects effectively saves time, prevents frustration, and helps you finish them faster with a clear roadmap! 🚀
March 26, 2025
🚀 Yes, I Am Now Starting to Blog!
March 25, 2025