Search Tech Journey

Find topics, journeys and posts

· dineshblog · a working notebook

Notes on AI, ML, data & the engineering behind them.

Long-form essays and deep-dives. For the multi-week learning tracks, head to Learning.

Essays & deep-dives

98 entries
  1. LeetCode — From Basics to Interview-Ready (65 Sessions)

    LeetCode is a motor skill, not a knowledge skill. A 65-session pattern-first curriculum: one pattern per session, five problems that are that pattern in disguise, and a spaced queue that makes it stick.

  2. L61 · Mock Set 3 — One Hard, 45 min

    Decomposing an unfamiliar Hard: find the seam where it splits into two Mediums, and practise being productive for 45 minutes without a full solution.

  3. L62 · Company-Tagged — Microsoft & Amazon

    Work the frequency-ranked lists for the two companies that matter most to you, and adapt to each one's distinct interview style rather than treating all loops as identical.

  4. L63 · Senior-Flavour Coding

    The hybrid round where coding meets design: rate limiters, LRU caches, schedulers and consistent hashing — built by composing primitives you already own.

  5. L64 · Contest Simulation

    A real timed LeetCode weekly contest — the closest available replica of interview adrenaline, and the only place to practise performing rather than solving.

  6. L65 · Final Audit + Maintenance Plan

    Re-audit every pattern, compare against L59, and build the ongoing three-times-a-week loop that stops the whole thing decaying the moment the track ends.

  7. L56 · Advanced Graphs

    Dijkstra as BFS with a priority queue, Bellman-Ford for negative weights and bounded hops, and the two minimum spanning tree algorithms — with the cue for choosing between them.

  8. L57 · Mock Set 1 — Mixed Easy/Medium, 45 min

    The first cold pressure test: two unseen Easy and two unseen Medium in 45 minutes, no hints, timer visible — run as an experiment that produces data about your classifier.

  9. L58 · Mock Set 2 — Narrated & Recorded

    Two unseen Mediums solved entirely out loud, screen and audio recorded, then played back — the fastest available fix for interview communication.

  10. L59 · Blind 75 Sweep — Gap Audit

    Attempt-classify all 75 problems in one structured sweep, mark each cold, warm, hint or failed, and produce the personalised weak list that drives the rest of the track.

  11. L60 · Weak-Pattern Intensive

    Take the bottom three patterns from the L59 audit and repair them with the rebuild loop: blind template, three costumes, interleaved re-test.

  12. L51 · Design I — Composing for O(1)

    Hashmap plus doubly-linked list for LRU, array plus index map for GetRandom, and the general move of combining two structures so each covers the other's weakness.

  13. L52 · Design II — Streams & Time

    Two balanced heaps for a running median, binary search over versioned timestamps, and merging k sorted feeds — the design patterns for data that arrives over time.

  14. L53 · Sorting & Custom Comparators

    Partition-based selection and comparator design: Dutch national flag, quickselect for Kth largest in O(n) average, and cmp_to_key for orderings that are not a simple key.

  15. L54 · Segment Trees & Fenwick (BIT)

    Range query with point update in O(log n): the recursive segment tree skeleton, the Fenwick tree's low-bit trick, and how to recognise the rare problem that actually needs one.

  16. L55 · String Algorithms

    KMP's failure function, rolling hashes, and the Z-function — the three ways to avoid re-comparing characters you have already matched.

  17. L46 · Bit Manipulation

    XOR cancels itself, n & (n-1) clears the lowest set bit, and how to add two integers without the plus operator. The handful of bit tricks that actually recur in interviews.

  18. L47 · Math & Number Theory

    Fast exponentiation by squaring, the sieve of Eratosthenes, Euclid's GCD, and binary search on integers — the four math routines worth memorising outright.

  19. L48 · Intervals

    Sort by start, merge on overlap: the four-problem interval family, and why Meeting Rooms II needs a heap on top of the sort.

  20. L49 · Greedy — And Proving It Works

    Greedy feels right and is often wrong. The exchange argument, the counter-example hunt you should run first, and four problems where greedy genuinely is optimal.

  21. L50 · Matrix Manipulation

    Transpose then reverse to rotate in place, four-boundary control for spiral traversal, and using the first row and column as O(1) marker storage.

  22. L41 · DP IX — Palindromes

    Expand-around-centre versus the 2D palindrome table: two O(n^2) approaches with very different failure rates, and when partitioning forces you back to explicit DP.

  23. L42 · DP X — Interval DP

    dp[i][j] over ranges with an inner split point k: why Burst Balloons only works when you think about the LAST balloon, and how sentinel padding removes the boundary cases.

  24. L43 · DP XI — State Machine

    Naming your DP states explicitly: hold and free arrays for the stock problems, why drawing the transition diagram first collapses the difficulty, and how the k-transaction version generalises.

  25. L44 · DP XII — Bitmask DP

    Encoding a subset as an integer: when n is at most 20 the exponential state is affordable, the standard submask and popcount idioms, and why the constraint tells you before the problem does.

  26. L45 · Tries — Prefix Trees

    Children dict plus terminal flag: building a trie in ten lines, and why Word Search II is trie-plus-backtracking rather than a dictionary scan.

  27. L36 · DP IV — Subsequences (LIS / LCS)

    Longest Increasing Subsequence and Longest Common Subsequence are the two parent problems behind a huge family. Know both cold and most subsequence DP becomes recognition.

  28. L37 · DP V — 0/1 Knapsack

    The single most reused DP shape in interviews: a set of items, each taken at most once, under a capacity budget. Master the grid and the space-optimised 1D roll, and half of 'hard' DP becomes recognition.

  29. L38 · DP VI — Unbounded Knapsack

    The knapsack where each item is available in unlimited supply. One character changes from 0/1 — the capacity loop direction — and Coin Change, Rod Cutting, and Combination Sum IV all fall out of it.

  30. L39 · DP VII — 2D Grid

    Grid DP is the friendliest dynamic programming: each cell is built from the one above and the one to its left. Use it to make DP feel mechanical before string DP.

  31. L40 · DP VIII — String DP / Edit Distance

    The two-string DP table: dp[i][j] over prefixes, the three-way insert/delete/replace recurrence, and how Distinct Subsequences and Interleaving String are the same table with different transitions.

  32. L31 · Backtracking I — Subsets & Combinations

    One choose-explore-unchoose template that generates subsets, combinations and permutations, plus the two ways to skip duplicates without producing duplicate output.

  33. L32 · Backtracking II — Constraint Grids

    Pruning before you recurse, restoring board state exactly, and the O(1) validity checks that turn N-Queens and Sudoku from intractable into instant.

  34. L33 · DP I — Recognising Overlapping Subproblems

    DP is recursion plus a cache. Write the recursion, add lru_cache, convert to a table — mechanically, in that order, every time.

  35. L34 · DP II — 1D Linear

    Define dp[i] in English before you write code. The House Robber family, and why most DP bugs are undefined state rather than a wrong transition.

  36. L35 · DP III — Take / Skip Decisions

    The binary-decision DP shape: at each index you either act or you don't. State machines for cooldown, reachability for Jump Game, and split points for Word Break.

  37. L26 · Heaps & Top-K

    When a problem asks for the K largest, K smallest, or K most frequent of anything, you almost never need to sort. A size-K heap answers it in O(n log k).

  38. L27 · Graphs I — Representation & DFS

    Build the adjacency list, carry a visited set, and recognise that a grid is already a graph — then count connected components with a depth-first sweep.

  39. L28 · Graphs II — BFS & Shortest Path

    Breadth-first search level by level, why it gives shortest paths in unweighted graphs, and the multi-source variant that solves nearest-X grid problems in one sweep.

  40. L29 · Graphs III — Topological Sort

    Kahn's in-degree algorithm for ordering tasks with dependencies, and why a queue that empties early is exactly a cycle detector.

  41. L30 · Graphs IV — Union-Find (DSU)

    Fifteen lines of disjoint-set union with path compression and union by rank, and the family of connectivity problems it collapses into near-constant time.

  42. L21 · Recursion & the Call Stack

    Base case discipline, hand-tracing a call stack, and knowing when recursion is the wrong tool — the substrate under trees, backtracking and dynamic programming.

  43. L22 · Trees I — DFS Traversals

    Preorder, inorder and postorder as one recursive skeleton with the work line moved, plus the iterative forms and when they are worth writing.

  44. L23 · Trees II — BFS / Level Order

    Snapshot the queue length at the top of each iteration and you have level-order traversal — the one trick behind right side view, zigzag, and minimum depth.

  45. L24 · Trees III — BST Properties

    Two views of a binary search tree: inorder traversal yields sorted order, and validation requires passing bounds down rather than comparing parent to child.

  46. L25 · Trees IV — Paths & Accumulators

    The return-one-thing-track-another pattern: a recursion whose return value serves the parent while a separate accumulator records the global best.

  47. L16 · Stacks — LIFO & Matching

    Nesting, matching, undo and expression evaluation are one idea: push what you expect, pop when it arrives, and carry auxiliary state alongside for O(1) queries like min.

  48. L17 · Monotonic Stack

    Next greater and next smaller element in O(n): keep a stack whose order never breaks, and pop everything the current element resolves.

  49. L18 · Queues & Monotonic Deques

    The queue as BFS substrate, and the monotonic deque that answers sliding-window maximum in O(n) by discarding candidates that can never win again.

  50. L19 · Linked Lists I — Traversal & Reversal

    The dummy head that deletes most linked-list edge cases, and the prev/cur/next three-step reversal you should be able to write without thinking.

  51. L20 · Linked Lists II — Cycles, Middle, Reorder

    Floyd's tortoise and hare for cycle detection and entry point, finding the middle in one pass, and composing split-reverse-merge to reorder a list in O(1) space.

  52. L11 · Sliding Window III — With Counts

    Windows whose validity depends on a frequency map, and the single integer counter that lets you test that condition in O(1) instead of rescanning the map.

  53. L12 · Prefix Sums & Difference Arrays

    Precomputing cumulative sums to answer range queries in O(1), and the prefix-plus-hashmap combination that counts subarrays where sliding windows are unsound.

  54. L13 · Binary Search I — The Template

    One binary search template with a half-open invariant that never loops forever and never goes off by one, and the discipline of owning exactly one version of it.

  55. L14 · Binary Search II — Rotated & 2D

    Binary search when the array is no longer sorted end-to-end: decide which half is still sorted, then discard the other. Same trick flattens a 2D matrix into one index space.

  56. L15 · Binary Search III — On the Answer

    Stop searching the array and start searching the answer range: define a monotonic feasibility predicate, then binary search the smallest x for which it holds.

  57. L06 · UMPIRE — The Problem-Solving Framework

    A six-step process for the twenty minutes between reading a problem and having working code, so that being stuck becomes a step rather than a state.

  58. L07 · Two Pointers I — Opposite Ends

    Two indices converging from the ends of a sorted array, and the monotonicity argument that proves you can discard a whole row of candidates with one comparison.

  59. L08 · Two Pointers II — Same Direction & Fast-Slow

    Two pointers moving the same way at different speeds: the read/write compaction you already know, and Floyd's cycle detection, which finds a loop in O(1) memory.

  60. L09 · Sliding Window I — Fixed Size

    Maintaining a window aggregate incrementally so that sliding costs O(1) instead of O(k), which turns the obvious O(n*k) scan into a single pass.

  61. L10 · Sliding Window II — Variable Size

    Expand right unconditionally, shrink left while the invariant is broken, record at the right moment — and the amortisation argument that keeps it linear.

  62. L01 · The LeetCode Game — How to Read a Problem

    Constraints are not decoration. They are the interviewer quietly telling you which complexity class is acceptable, and therefore which algorithm to reach for.

  63. L02 · Big-O in Practice — Counting, Not Vibes

    How to derive the cost of a Python data structure operation from how it is built, instead of memorising a table you half-remember under pressure.

  64. L03 · Python for Speed — The 20 Idioms That Matter

    The small set of standard-library tools that turn a fifteen-line interview solution into a five-line one, and the syntax you must be able to type without thinking.

  65. L04 · Arrays & Strings — In-Place Discipline

    The read pointer and write pointer skeleton that solves a surprising share of Easy problems, and the index bookkeeping that makes it correct on the first try.

  66. L05 · Hashing — Your Default Weapon

    The complement-lookup skeleton and the general move of trading memory for time, which is the first thing to try whenever a problem looks quadratic.

  67. Where LLMs Came From, and What They Actually Are

    The 80-year origin story, the five ideas that actually matter, and a verified watch-list to go deeper — no maths required.

  68. Building a Learning System That Actually Sticks

    Most self-study fails at retention, not effort. The complete architecture of a 26-week system — 130 concept sessions, 65 LeetCode sessions, spaced revision, and a calendar that enforces retrieval practice instead of re-reading.

  69. Kimi K3 From Zero to Deep — Math, Architecture, Training, and Systems

    A zero-to-deep Kimi K3 course: prerequisite math and terminology, Transformers and MoE, KDA, AttnRes, vision, RL, training systems, inference, benchmarks, and a verified YouTube learning path.

  70. How Transformers actually attend

    Beyond the textbook diagrams — what a single attention head is really computing, how multi-head splits the world, and why scaling laws keep rewarding bigger context.

  71. Designing a recommendation system from scratch

    Retrieval vs ranking, candidate generation, freshness vs relevance — the tradeoffs every real recommender lives by.

  72. Kafka 101 for ML engineers

    Topics, partitions, consumer groups — the parts of Kafka that actually matter when you put ML features behind it.

  73. Overall Engineering Clarity — Data, Distributed Systems and AI (Deep Dive)

    A long-form, primary study companion. Internals, flows, decision trees, code, and Q&A with reasoning across Spark, lakehouse, graphs, search, LLMs, RAG/agents, distributed HLD, governance, modeling, SQL, JVM, Python, K8s and CI/CD.

  74. Data Infrastructure for AI & Experimentation at Scale

    A comprehensive deep-dive into the data backbone powering ML, personalization, experimentation, and GenAI on modern streaming platforms

  75. Automating audio generation

    From text , generate audio files and publishing them to webapp

  76. Deploying scripts as an API in Azure

    Deploying local python scripts and converting them as an API.

  77. Learning how to build an recommendation system from initial signals

    From a few initial adopters of a product, how we can target new set of users who are more likely can use the product

  78. Building windows app and publishing to app store.

    Exploring the fundamentals of building an .exe file from scratch, including C++ compilation, object files, linking, DLLs, and more.

  79. Stanford CS229: Machine Learning Course

    CS229 provides a broad introduction to statistical machine learning (at an intermediate / advanced level) and covers supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines); unsupervised learning (clustering, dimensionality reduction, kernel methods); learning theory (bias/variance tradeoffs, practical ); and reinforcement learning among other topics

  80. Best LLM Prompt for understanding any concept in-depth

    Use this prompt for gathering information all at one place

  81. Introduction to TensorFlow on Google Cloud

    Diving deep into a Google Skill boost

  82. Diving deep into Tiktok recommendation engine

    Going deeper into the video rec repo Monolith and paper produced by Bytedance

  83. Basics of Azure AI Foundry

    A self-sufficient guide to Azure AI Foundry — what it is, how the hub/project/deployment model works, how to ship a grounded agent end-to-end with SDK + Bicep, and the security/eval/cost levers you cannot skip.

  84. Reading on MEDICAL ERROR DETECTION AND CORRECTION IN CLINICAL NOTES

    This blog explores a paper on detecting and correcting medical errors in clinical notes using Large Language Models (LLMs)

  85. Apache Airflow - open source orchestration engine

    Architecture of Apache Airflow, how DAGs help design complex flows and dependencies, and how we can leverage Apache airflow to train a ML Model and monitor.

  86. Taking the Azure Fabric Ignite Edition Challenges to Complete

    Microsoft Learn Challenge conducting a challenge to get good in few of the challenges which are super useful to complete to gain knowledge on Microsoft Fabric.

  87. Exploring different services in GCP

    Exploration and documentation of different services offered in GCP

  88. Starting a company in India

    Documenting the process of starting a company in india

  89. Exploring Azure Data Explorer and Best Practices

    A self-sufficient deep-dive on Azure Data Explorer (ADX/Kusto) — architecture, the KQL language from zero to advanced, ingestion patterns, performance/cost levers, and operational best practices.

  90. Google 5 Day Gen AI course with interactive hands-on practice

    Google and Kaggle provided good summary course on Gen AI , the blog contains details and highlights of the course.

  91. RAG architecture basics and workings

    Retrieval-Augmented Generation from first principles — embeddings, vector databases, chunking, retrieval, prompt construction, evaluation, and common failure modes — enough depth to build one yourself.

  92. AI Voice chatting to help with Customer support use-cases

    Using current speech augmented LLMs (SpeechLLMs) with realtime voice modality to understand user issues and to provide support and solutions.

  93. Audio to Video Generation Using Replit AI and Deploy as an Azure Webapp

    Tool to convert an uploaded audio mixed with an image and generate a video format with image and uploaded audio in the video format.

  94. Deploying Web Applications in Azure with Docker

    A self-sufficient, production-minded walkthrough — from Docker internals to a hardened deploy on Azure App Service / Container Apps.

  95. Orchestrating ML Pipelines with Azure Data Factory

    Leveraging Azure Data Factory for Scalable and Efficient Machine Learning Workflows

  96. Developing a Astrology webapp version 1.

    Initial version 1 of Astro app hosted at astroyuga.com

  97. Improving the UI of this blogging app - V2

    Changing the UI layout and improving the experience by modernizing the UI with custom styling

  98. Leveraging CURSOR and Azure Services for Rapid Web Deployment

    Accelerating Development and Deployment Cycles with AI Tools

Everything here is public and free. If it helped, tell someone else who's trying to level up. That's the whole loop.