DEV Community

Cover image for Why use Obsidian for Software Development ?
sc0v0ne
sc0v0ne

Posted on • Edited on

Why use Obsidian for Software Development ?

I've been using Obsidian for studying for a long time. As I read or watch a video lesson I add my notes, links, images....... and much more. But I had never used it for software development in my day-to-day work, so I decided to use it for work tasks for a week, writing down my observations to bring this post.

First of all, what is Obsidian?

I like to use Obsidian as a super notebook that is also quite simple. To get started with Obsidian you need to download the software from their official website. After installation you can start, Obsidian uses the markdown file format. It's similar to a text file, but it has features such as tags where you can organize the texts. I don't know about you, but I think it's really useful to use Markdown because it's simple to use and helps you focus on developing texts without needing a lot of configuration. To further improve Obsidian, it has extensions that are not official to Obsidian where developers can bring new features to further enrich the software. But the most interesting thing is its second brain feature, where you can connect files via hyperlinks and see relationships between different subjects.

Returning to the post, I decided to divide my observations into two themes:

  • Obsidian in teams
  • Individual Obsidian

Obsidian in teams

For those familiar with software development, you know very well that we have to document everything, everything and everything. Even more so for us software developers focused on AI, where we need to evaluate models, compare results and create reports. Having all this well documented is a difficult task.

Using Obsidian brought me benefits in this first point, during that week I created a directory outside the software's documentation, to focus solely on writing what was in the week's task. It was quite useful, as I was able to first place everything I needed on the documentation and then filter what was really necessary. I noticed that I spent less time in the browser and was just writing what I developed and putting in the necessary examples.

Next, I also needed to generate a report on some model metrics. Obsidian has the tables feature, so I added the results, of course you also have to be realistic that the tables feature is not the same as Google Sheets, but to use it as a presentation it makes it much easier.. With the hyperlinks feature you can connect documentation with reporting. This makes it easier to direct what was described in that file.

After all this development in the directory, I added GIT where I could start versioning and then send it to Github. This is very good, why?

If you work in a team, your card or task doesn't always go to done. It goes to re-view first. Your manager or someone else will evaluate your task if you are in agreement with it. Taking an example of a report that you developed, whoever evaluates it will be able to view it before going to the main branch, mark improvements in certain lines or add comments. If there are any changes, redo the cycle, if it has passed approval, this report, documentation or other situation can be controlled by versioning. Whenever it needs to be updated, it will have previous versions.

Bringing another resource, you can use Obsidian Publish. With it you can publish your content. In the case of documentation, you can provide access or in the case of AI models, you can provide development tutorials, obtained metrics, dataset reports.

Individual Obsidian

I won't talk about this part as I use it for personal things, about books, studies or other things. Focus and use for work. In the question above, teams were discussed. At this point we will talk about the case that you have Obsidian separate from the projects.

Starting with day-to-day tasks, I use Obsidian with another tool called Pomodoro. I have two files at root, a file called Pomodoro Today and Pomodoro 2024. Both have tables, with a column for date, name, number of pomodoros and observations.

When my work schedule starts, the first pomodoro. It's for organizing the day, where I check emails, check the task board, check chat messages and organize the table in the Pomodoro Today file, this file I update every day with the tasks I've been looking for at this moment, throughout of the day I run it and at the end of the day I take the progress from the Pomodoro Today file and transfer it to Pomodoro 2024, where the entire record for the year is kept. Leaving the organization pomodoro, the rest of the office pomodoros are focused on development and meetings, every time one ends, I go to the task of the day and mark a pomodoro. The pomodoro helps a lot in controlling time, time is our greatest and most precious resource, so there is always time to try to improve the use of it. When it comes to how long I should spend on the pomodoro, I recommend finding the time that is most comfortable for you.

To help with focus pomodoros, within Obsidian I leave files with references to documentation links, articles and projects, leaving something already ready in Obsidian as links, it helps to avoid accessing other sites that cause distraction, leaving us with no focus for development . One that I always leave in the root and notes of the day, whenever we are focused our mind brings some reminder of something we are forgetting or an idea that came up, this file is used to add quick notes so as not to conflict with something that you are focused on and end up distracting from the main focus.

Conclusion

This was my perspective using Obsidian that I wanted to share using for work. Remembering that everyone has their own way of working, you will not always adapt. So we should always look for resources that help us and also test to see if we like it. I hope you liked these examples. Thank you for reading this far.


About the author:

A little more about me...

Graduated in Bachelor of Information Systems, in college I had contact with different technologies. Along the way, I took the Artificial Intelligence course, where I had my first contact with machine learning and Python. From this it became my passion to learn about this area. Today I work with machine learning and deep learning developing communication software. Along the way, I created a blog where I create some posts about subjects that I am studying and share them to help other users.

I'm currently learning TensorFlow and Computer Vision

Curiosity: I love coffee


My Latest Posts


Top comments (4)

Collapse
 
chrisburkssn profile image
Chris Burks

Thanks for sharing your process. I've been wanting to use a similar app in my development process but had no idea of what that process would look like. This post helps.
Thanks again.

Collapse
 
sc0v0ne profile image
sc0v0ne

I'm glad I was able to help.

Collapse
 
qoyyuum profile image
Abdul Qoyyuum

Do you use any diagramming plugin or use the Canvas tool to draw out your software/app flows in Obsidian or do you use a different tool for that?

Collapse
 
sc0v0ne profile image
sc0v0ne

I used the one that obsidian already has, I think it's quite simple, it's the tool's standard. But there are other extensions, for example mindmap, but I don't know if it would be useful for flow.