I have been solving problems and writing code for over a decade. In recent years, I’ve been spending more time on the management side of things, which doesn’t require hands-on coding. I occasionally write code in my free time for my personal pleasure, but I wanted a way to stay consistent and committed. So this year, I started a little streak called “One Solution Every Week” (or “1SeW” for short).

One Solution Every Week

The idea is to solve one small problem every week and commit it. These problems can be from anywhere—math, science, history, algorithms—anything that involves some interesting thinking, and it doesn’t need to be a complex at all. There’s no fixed language or technology I have to use, but I’ve been going with Kotlin just because I enjoy it. Along with each solution, I write a short README talking about the problem and what made me pick it that week.

I’ve just wrapped up 12 weeks of this streak, and I thought it’d be fun to share how it’s been going. Here’s a quick look at the solutions I worked on during the first 12 weeks:

Weeks 1-12 (missed Week 9)

  • Week 1 — Checking Harshad numbers. I knew I had to start with this one when I first came across the term “Harshad Number” in a Hacker News post last year. It’s a straightforward problem and didn’t take much effort to solve.
  • Week 2 — Simulating Squid Game S2 prize money distribution for 456 participants. This idea came right after I watched Squid Game Season 2. I wanted to figure out how the prize money would be distributed for every possible elimination scenario among the 456 players.
  • Week 3 — T9 phoneword to phone number. This is something I always wanted to hand-code, just for fun.
  • Week 4 — Checking for same Gmail address. Gmail allows using dots (.) and the plus sign (+) and irrespective of these symbols, it still turns out to be the same Gmail inbox. I wanted to write a small algorithm to extract the actual username from a Gmail address that contains these symbols.
  • Week 5 — Using a byte to store 8 different flags. I first heard this idea from my professor back in 2009 (the same professor who taught me some life lessons). I’ve always wanted to try coding it by hand.
  • Week 6 — Comparing SemVer version numbers. A common tech problem—like checking if a user’s installed app version is outdated.
  • Week 7 — Writing Boustrophedon text. I came across this writing style while reading about early civilizations, and thought it’d be fun to implement.
  • Week 8 — Visualizing Benford’s Law. I first heard about this from a Netflix documentary—“Connected: The Hidden Science of Everything”, S01E04. It fascinated me. I’d already experimented with it in Python, but wanted to give it another go in Kotlin—this time visualizing it using just terminal characters.
  • Week 9 — Missed this one due to travel, and couldn’t find time or tools to work on it.
  • Week 10 — Testing the Collatz Conjecture. This simple but unsolved math problem caught my attention after watching a Veritasium YouTube video. I gave it a try this week.
  • Week 11 — A simple password generator. Inspired by Bitwarden’s password generator, I built a basic tool that can create strong, random passwords quickly.
  • Week 12 — Linked List implementation in Kotlin. I couldn’t find an interesting challenge this week, so I decided to go back to the basics and hand-code a simple Linked List.

You can check out the GitHub repo here and explore the solutions. If this inspires you, why not start your own streak too?

Consistency is the Key

Staying consistent is the key—but it’s not always easy. If you look at my activity graph, you’ll notice most of them happened in the last 2–3 days of each week. That’s usually when the weekend nears, my FOMO kicks in, and I get the urge to solve something and stay on track.

GitHub Activity Graph

Finding the Right Problems is a Challenge

Finding simple, interesting problems is also a challenge. Sometimes they show up in daily life—like Week 3’s phoneword-to-number conversion. I see phonewords all the time in ads around me, so it felt natural to try it out. Other times, I stumble upon unusual ideas—like Week 7’s Boustrophedon text, something I had never heard of before but found by chance and decided to explore.

I could always ask ChatGPT for suggestions, but discovering and solving real-life problems feels more meaningful and fun than working through random puzzle-like ones it might suggest. That real-world connection makes the process more satisfying.

And of course, there are weeks when I run out of fresh ideas and fall back on classic problems—like Week 8’s Benford’s Law, which I’d explored before but wanted to revisit with a different approach. Or Week 12, where nothing particularly interesting came to mind, so I went back to basics and hand-coded a simple Linked List in Kotlin.

Solving the problem, writing a small README, and committing everything doesn’t take more than an hour out of the whole week. But the process gives me a surprising amount of joy—and enough motivation to keep going week after week, hunting for new problems and staying committed.