From Brute Force to top 40% on LeetCode
I spent three years as a software developer at a UK SME. I joined straight from university as a graduate hire and—unusually—never had to pass a technical, LeetCode-style interview. I wasn’t introduced to data structures and algorithms until the summer of 2023, when a colleague bought an AlgoExpert subscription and opened the door to a whole new way of thinking about code.
I beat Two Sum with brute force, then learned two smarter, faster ways: hash maps and two pointers. Seeing “Big O” and that complexity graph flipped a switch in how I write code. By December 2023 I was doing AlgoExpert and trying Advent of Code; the first couple of days were harder than I expected, but they showed me where I needed to improve.
Figure 1: big O complexity graph - credit Free Code Camp
I hadn’t planned to study DSA seriously, but everything changed when my company announced a major restructuring and that developer roles were at risk. I’d entered the job market three (almost four) years earlier as a graduate, and suddenly the interview process felt a lot more daunting. I had to sit the same interviews as everyone else to keep my job. I doubled down on learning: I made lists of the core data structures and algorithms I needed to master and began taking detailed notes in Obsidian:
Figure 2: My Obsidian notes on DSA
Using the open-source whiteboard Excalidraw, I sketched how trees, graphs and other structures worked until the concepts stuck:
Figure 3: My Excalidraw diagram of a BST
I survived the redundancy process, but the office closed and many colleagues left; the place I’d enjoyed working at wasn’t the same, so I began looking for a hybrid role. The LeetCode grind helped rebuild my confidence, it paid off: I eventually landed a new role at ProcessVision:
Figure 4: 2024 LC submissions
That summer I participated in a coding game, but otherwise I’d become complacent in my new role and rarely practised coding challenges. The one exception was when I started learning Rust, I used easier Codewars katas to get comfortable with the syntax.
In summer 2025 I decided to take things more seriously and learn the core DSA categories properly. One of the best resources I found was NeetCode: his YouTube channel and the structured roadmap on neetcode.io gave me a clear path through the different techniques. I treated each topic, from backtracking to dynamic programming, as a tool to add to my toolbox. If I could complete that roadmap, I figured, I’d be in a much stronger position for interviews and real‑world problems. I finished most of the list by October 2025.

Dynamic programming (DP) was by far the hardest topic for me. I did not really start to understand it until I was about halfway through the 2-D DP section, and the turning point came when I stopped just copying solutions and began asking why they worked. I watched several YouTube explainers, read articles, and sketched examples until the ideas began to settle. Ultimately, grinding lots of problems and watching NeetCode walk through solutions cemented the concepts for me. Learning to think in states and to choose between memoization and tabulation depending on the problem changed how I approached other topics as well.
Even after that breakthrough I felt a bit directionless, so I started the LeetCode 75 list. The roadmap structure I had followed before made tackling the list feel more like a game than a chore, because a logical order to practice makes consistent progress much easier and a lot more fun:

As it stands, 2025-11-03 here is my current LC profile:

I’m excited to keep learning algorithms, improve my problem solving, and join the biweekly competition whenever I can, my next goal is to get into the top 10%. Day to day, I notice that I reach solutions much faster and have more approaches at my disposal than before this LeetCode grind.
Check out my LeetCode profile, read more on Dev Daily Hub, and connect with me on LinkedIn. Good luck on your DSA journey, I’d love to hear how you first got into it.