Mahamudul Hasan Rubel
HomeAboutProjectsSkillsExperienceBlogPhotosContact
Mahamudul Hasan Rubel

Senior Software Engineer crafting high-performance web applications and SaaS platforms.

Navigation

  • Home
  • About
  • Projects
  • Skills
  • Experience
  • Blog
  • Photos
  • Contact

Get in Touch

Available for senior/lead roles and consulting.

bd.mhrubel@gmail.comHire Me

© 2026 Mahamudul Hasan Rubel. All rights reserved.

Built with using Next.js 16 & Tailwind v4

Back to Blog
LearningJune 22, 20265 min read

Knowledge management for developers: The Zettelkasten Method

Knowledge management is the developer's superpower. Learn how to use Zettelkasten to build a second brain that connects technical concepts and boosts learning.

knowledge managementzettelkastennote-takingproductivitysoftware engineeringlearningBooksMental Models

I spent years treating my notes like a digital graveyard. I’d copy a snippet from a Stack Overflow answer, paste it into a massive Markdown file, and tell myself I’d "read it later." Naturally, I never did. My notes weren't a tool; they were just a place where information went to be forgotten.

That changed when I started treating my documentation as a living, interconnected graph rather than a linear diary. If you’re tired of losing track of how a specific library handles edge cases or why you chose a particular architectural pattern six months ago, it’s time to rethink your knowledge management strategy.

Beyond simple note-taking for developers

Most developers approach documentation by documenting what they did. We capture the command to restart a service or the API endpoint for a specific microservice. That’s useful for a day, but it’s not how you build long-term expertise. True mastery requires understanding the why and the how—the connections between concepts.

When I started applying the Zettelkasten method to my technical workflow, I stopped writing "how-to" guides and started writing "concept" notes. A Zettelkasten, or "slip box," forces you to break ideas down into atomic units. Each note should be small enough to be understood in isolation but connected to others to form a larger web of meaning.

If you want to understand how to approach this, How I learn a new technology fast: A Pragmatic Engineer’s Guide is a great starting point, as it emphasizes the active synthesis I’m talking about here.

Building your Zettelkasten system

You don't need expensive software. I use Obsidian (v1.5) with a basic folder structure for my slip box. The magic isn't in the tool; it’s in the process of linking.

  1. Fleeting Notes: Quick ideas or questions that pop up during a sprint. I capture these in a single "Inbox" file.
  2. Literature Notes: Summaries of what I’ve read or watched. I pull these into my own words as soon as I finish a technical book or a deep-dive article.
  3. Permanent Notes: The core of the system. These are the atomic ideas written in my own voice.

Here is how a typical permanent note looks in my vault:

MARKDOWN
# Title: The trade-off of Eventual Consistency
ID: 202310271420
Tags: #distributed-systems #consistency

Eventual consistency allows for higher availability in distributed systems by 
relaxing the requirement that all nodes see the same data at the same time. 
This is critical for high-throughput write systems.

Related to: [[CAP Theorem]], [[Database Partitioning]]

By linking my note on "Eventual Consistency" to "CAP Theorem," I’m not just storing a definition. I’m building mental models that help me reason about system design when I’m in the middle of an on-call rotation.

Why this works for engineering

The biggest hurdle in technical learning is the "illusion of competence." You read a tutorial on React state, and you think you understand it. But can you explain how it relates to your existing knowledge of Redux or Context API?

Using Zettelkasten forces you to ask: "Where does this piece of information fit?" It turns passive consumption into active construction. I’ve found that by creating these links, I’m essentially creating a map of my own brain. When I’m stuck on a bug in Docker for app developers: A mental model that sticks, I can quickly traverse my notes to see how container networking behaves compared to the virtualized environments I worked with years ago.

The messy reality

I’ve had a few false starts. Early on, I tried to make every note perfect. I wasted roughly two days trying to build the "perfect" folder hierarchy, which is exactly the wrong way to do it. The beauty of a Zettelkasten is that it’s organic. Don't worry about categorization; rely on links.

If a note doesn't have a connection, it’s not yet part of your system. You have to force the synthesis. Ask yourself:

  • How does this contradict what I already know?
  • How does this support a previous technical decision I made?
  • What is the edge case where this rule breaks?

Final thoughts

Effective knowledge management isn't about having the most notes; it's about having the most useful connections. I’m still refining my own process. Some weeks I’m diligent, and other weeks my "Inbox" folder grows to about 50 unorganized notes. That’s fine. The goal isn't perfection—it’s building a network that makes you a more thoughtful, deliberate engineer.

What I’m still unsure about is how to archive old notes that are no longer relevant. As tech stacks evolve, some of my "permanent" notes become obsolete. Do I delete them, or move them to an "archive" graveyard? For now, I keep them for historical context, but I’m tempted to prune more aggressively. Start small, build your links, and let your system evolve as you do.

FAQ

Do I need a specific app for Zettelkasten? No. While I use Obsidian, any tool that supports bidirectional linking (like Logseq or even simple Markdown files in VS Code) works perfectly.

How much time does this take? It adds maybe 10-15 minutes to my daily workflow. It’s an investment that pays off when you’re debugging complex issues later.

How do I know when a note is "permanent"? When you’ve rewritten it in your own words and linked it to at least two other concepts in your vault, it’s usually ready to be a permanent note.

Back to Blog

Similar Posts

LearningJune 21, 20264 min read

Mental models for software engineering to build better systems

Mental models for software engineering help you write cleaner code and design resilient systems. Learn how to shift your perspective for better results.

Read more
Stylish desk setup with a how-to book, keyboard, and world map on paper.
LearningJune 20, 2026
4 min read

How I learn a new technology fast: A Pragmatic Engineer’s Guide

How I learn a new technology fast involves a repeatable, three-phase framework. Stop watching tutorials and start building to master new stacks efficiently.

Read more
AI/MLJune 22, 20264 min read

Prompt management strategies for reliable LLM deployment pipelines

Master prompt management by treating your templates like production code. Learn how to implement version-controlled pipelines for safer LLM deployment.

Read more