Knowledge Management for Software Developers

Knowledge Management for Software Developers

by | 7 min read

As developers there is so much information that we need to retain in order to be able to do our jobs.

There is the general programming knowledge such as language syntax, design patterns and architectural best practices that we need to remember.

But there is also going to be a lot of domain-specific information that you need to know to be able to actually solve problems for those you work for.

When I used to work in the payments industry I had to know how card payments worked from end to end and it was just too much information to store in my head.

Whether you are currently learning how to program or you are trying to work your way up the engineering career ladder, you need a system to be able to retain all of this knowledge.

This is where knowledge management systems come in or KMS for short. KMS is really just a fancy way of taking notes, linking them together and organising them.

Now you may have heard of people talking about the Second Brain or the Zettlekasten method. These are both ways that you can organise your notes.

The Second Brain method is a bit more structured and uses folders to split out things like projects and knowledge areas whereas the Zettlekasten method is a bit more free and consists of most of your notes in just one folder.

It really doesn’t matter what method you choose especially if your goal is just to remember things that you have learned. These methods are mostly for writers and creators who need a way to retain knowledge and combine their thoughts into new ideas. For software developers, your notes will probably resemble more of a personal wiki than these other methods.

It can be very easy to get sidetracked and spend too much time trying to come up with the perfect system.

Don’t do that.

Just focus on taking notes and you can always change how you organise things in the future.

Developer Features

When it comes to note-taking applications there are quite a few to choose from, however, not all of them are that great for developers.

If you are going to be writing notes about software development then you will likely want a note-taking app that has great support for code blocks as well as the ability to add diagrams.

One of the best ways I have seen for adding diagrams to your notes is to use Mermaid.

Mermaid has support for loads of different diagrams such as:

  • Flowchart
  • Sequence Diagram
  • Class Diagram
  • State Diagram
  • Entity Relationship Diagram
  • User Journey
  • Gantt chart
  • Pie Chart
  • Requirements diagrams
  • Gitgraphs

Depending on what you plan on doing with your notes you may want API support as good plugin support.

So let’s have a look at some of the options.

1. Notion

I am sure you have probably heard of Notion already. It is one of the easiest note-taking apps out there, it works across all devices and it has a very generous free tier.

One of the great things about Notion is the fact that comes with cloud syncing for free which is usually paid feature on a lot of the other note-taking applications.

Notion has great support for syntax highlighting and it also supports mermaid diagrams as well.

Notion does support markdown but it isn’t a proper markdown editor. As soon as you finish writing something it will convert it into the Notion format which means any changes require often require you to use a mouse or delete what you have just written.

Where Notion shines is not in its ability to create notes but in how it organises the data that you put in.

I use Notion for all my planning. Just the ability to have a Kanban board on one view and then switch easily to the calendar is really useful.

Notion also has an API which allows you to do some really cool things with other applications as well. There is a whole load of ready-made integrations that you can use.

Personally, I have my Notion connected with a self-hosted n8n so I can do things like:

  • Schedule Tweets on Twitter
  • Update my Kanban board when Videos or blog posts go live
  • Keep track of all the keywords that I am trying to rank for

For pure note taking though there are better options out there.

2. Obsidian

Obsidian is my personal favourite. It is completely free and has native support for markdown.

In fact, all of your notes are just stored as markdown files on your computer which means if you do want to switch applications in the future it isn’t going to be too difficult.

Obsidian supports syntax highlighting and mermaid diagrams just like Notion. It also supports themes and a large amount of official and community-made plugins. You can even set up to use Vim keybindings for those Vim wizards out there.

The downside of Obsidian is that it doesn’t have a free cloud syncing option but for those that are conscious about their privacy that is probably a good thing.

You can pay for Obsidian Sync which will set you back $10 a month however you don’t need to. As your notes are just stored as files on your computer you can just place the folder in whatever cloud storage you currently use whether that be iCloud, Dropbox or OneDrive. On top of that, there is also a community plugin that can sync your notes with a private GitHub repository.

Obsidian does come with apps for iOS and Android but to be honest I haven’t had the best experience with them.

The apps are probably fine if you don’t use a lot of community plugins but for me, I find it locks up quite a bit.

If the community plugins aren’t essential you can make a copy of your .obsidian settings folder and rename it to and then go to “Settings > About > Override config folder” on your mobile device and then you can disable plugins without it affecting the plugins on your computer.

Overall I really like Obsidian but it isn’t everyone’s cup of tea so let’s look at some of the other options.

3. Dendron

If you spend most of your day using VS Code then this option might be for you. Dendron isn’t a note-taking app but an extension for VS Code.

Like Obsidian everything is stored as markdown files and it obviously has support for syntax highlighting. It also supports Mermaid diagrams as well out of the box.

On top of that, you have all of the VS Code extensions that you can use. So if there is a particular extension or theme that you can’t live without then this might be the best option for you.

As far as I am aware there are no official mobile apps for VS Code so you are out of like there. If you do want to see your notes on mobile then you potentially could use Obsidian for this as the notes are just markdown files.

I don’t use Dendron myself so I haven’t tried it so it is possible there could be some compatibility issues that I don’t know about. If you do use Dendron and Obsidian together then let us know in the comments below.

4. Inkdrop

Another great option this time from an indie developer is called Inkdrop.

Inkdrop has been specifically designed for developers so has full markdown support, syntax highlighting and mermaid support.

It seems to have a pretty good community around it as there are a ton of community-created plugins and themes for it.

Inkdrop however is not free and it does cost $4.99 a month. It is a lot simpler than Obsidian and the UI is very similar to Apple notes. If you want something simple, developer-focused while supporting an indie developer then Inkdrop might be a good choice.

5. Bear

Another option that is often mentioned is Bear. I really like the clean interface that Bear has but it isn’t a great option for developers.

For one it is Mac and iOS only so if you are on Windows or Android you are out of luck.

It does support markdown but it doesn’t have full markdown support. So you can’t create markdown tables or add images using markdown which is a bit disappointing.

Bear does have syntax highlighting but it doesn’t support mermaid diagrams.

Your notes in Bear are also stored in an SQLite database rather than markdown files so it isn’t as flexible as some of the other apps we have mentioned.

Bear does have a nice-looking mobile app but if you want your notes to sync across then you need to sign up for Bear Pro which is $1.49 a month. It isn’t a huge amount but I think there are better free options available for developers.

Final Thoughts

There are of course other apps available, I know a lot of people like Roam Research but at $15 a month, I can’t see the benefits over the other free options here.

Notion is probably the easiest option. My only concern is about having all my notes stored in a proprietary format in the cloud. If something happened to the Notion servers I would lose all my notes so I prefer Obsidian combined with having multiple backups of my notes in lots of different places. That might just be me being paranoid though.

If you liked this video then you might like to watch this one on how I take and organise all my notes.

🙏 Was this helpful? If you want to say thanks, I love coffee ☕️ , any support is appreciated.


Why You Struggle to Learn to Code

Why You Struggle to Learn to Code

  • 20 January 2023
Learning to code is easy, until it’s not. When you first start learning how to code, you are learning the syntax and some of the basic…
15 Best Books for Programmers You Should Read

15 Best Books for Programmers You Should Read

  • 19 January 2023
As software developers we constantly need to learn new concepts, programming languages and technologies to stay up to date. One of my…
How I Take (and Organise) My Notes As a Software Engineer

How I Take (and Organise) My Notes As a Software Engineer

  • 05 January 2023
Taking notes is incredibly important as a software developer or for any career for that matter, our brains just aren’t designed for…
Code Katas: Can They Make You A Better Developer?

Code Katas: Can They Make You A Better Developer?

  • 21 November 2022
They say “practice makes perfect”, although I much prefer “practice makes improvement”. Either way, how do you practice being a programmer…
Why can’t all programming books look like this?

Why can’t all programming books look like this?

  • 12 January 2016
I have read quite a lot of programming books over the years. A lot of them have been really useful in learning a new programming language…
The Big List of Free Pluralsight Courses for Developers

The Big List of Free Pluralsight Courses for Developers

  • 09 October 2015
One of the most important aspects of being a software developer is the ability to learn new skills quickly. Our industry is moving so…