It’s been many years since I started working as a web developer. And it’s been over a year since I started participating in the open-source community. But I have never had a personal website.
It was a conscious decision not to make one. I always felt I already had the necessary platform to connect and share my ideas through websites like GitHub and Twitter. All my projects are hosted there for free, and they’re elegantly presented and discoverable.
So, why start now?
I waited until I developed strong motivations so I can commit to making a website with a clear purpose.
Here are the goals I’d like to fulfill with my new site.
My own knowledge base
My primary motivations boil down to frequently wishing I had my own knowledge base.
I wanted something that can let me:
- Publish knowledge in a credible, coherent, yet approachable manner.
- Share descriptive links to the published knowledge.
- Let the published knowledge be discoverable on the open internet.
- Archive and recollect knowledge I had in the past.
I use the term knowledge loosely, but to start, I plan to publish decisions I’ve made (e.g. why I made this website), technical how-to guides, and general pro-tips. I’m sure this scope will grow in the future.
Here are some use-cases that describe scenarios where I wished I had my own knowledge base:
Solve once; Help many
After solving a recurring problem amongst my peers, I document the solution on my website. When someone encounters it again, I share the post with them. If new information arises, I update the post. As a result, I spend less time helping more people.
Sharing coherent tips
I discover an interesting tip or process that could also benefit others. I write a short article on why it’s useful, and include how-to steps, screenshots, and reference links. When sharing it verbally with peers, my thoughts are organized and coherent because I’ve written about it. I even have a URL to send them afterward.
Guidance on my projects
I open source a new tool to enhance developer experience. I write documentation for it but it’s too technical and daunting for an introduction. For beginners, I write a tutorial to quickly show the benefits and how it can be adopted. To demonstrate features, I implement integrations directly onto my website. I publish and link to it from the documentation and share it on social media.
Remembering good habits
I recall I had a good habit or mental model in the past. I can’t remember the details so I look it up on my website and find a detailed evaluation of how it works and why/when it’s beneficial.
My secondary motivations weren’t compelling enough to act on alone, but are still great benefits.
The common theme seems to be that they all cultivate personal growth. My website will serve as a way to exercise different skills.
I enjoy writing but I struggle with how long it takes me. Even writing this blog post took me a day or two. However, I’m determined to get better as it’s a powerful tool that will allow me to passively share my ideas.
Committing to writing regularly will take a lot of time away from coding, but that trade-off will be worth the increase in my impact.
I found an insightful quote by David McCullough:
“Writing is thinking. To write well is to think clearly. That’s why it’s so hard.”
As an engineer, I found this relatable as I have immensely benefited from using coding as a tool to think more clearly. After all, coding is functional writing. While coding, I’m able to reason with abstract technical implementation details intuitively. I could not always do this and it was not an easy skill to attain.
I’d like to use writing to attain this level of thinking when it comes to things I cannot directly codify.
I enjoy going back through my notes from months ago to see what I was working on or thinking about. My notes are scrappy and have a lot of blanks to fill. But sometimes, I would read something that faintly reminds me of a great idea I had and I would struggle to remember what.
Who knows how many great ideas have been lost this way.
Getting into the habit of documenting my ideas will allow me to create a high-fidelity archive of my thoughts. Being able to revisit my past thoughts will allow me to measure my growth.
Dog food my technical ideas
I’ve always been interested in web performance, optimization, and security. So much that I maintain a project to benchmark JS minifiers. I even used to be on the Performance team at work where we optimized web performance bottlenecks.
My most recent ideas have just been sitting in a queue as I no longer had any websites to experiment with. Having my own space where I can experiment freely and showcase them will be very fulfilling.
Exercising my artistic creativity
Although I’ve been a web developer for a long time, I’m recently more drawn to developer experience tooling and infrastructure. The majority of the projects I start are for Node.js, and as a result, I rarely have an opportunity to engage in web design.
I am very interested in web design though. I’ve spent about 3 years working on a design system at work so I think I have a good sense for usable and accessible UI. Every time I encounter a website with new and interesting ways to express an idea, I’m inspired to iterate on it and push it further. Unfortunately, I didn’t have a website to apply them to so I would just bookmark it and move on.
I’m excited to unbottle my inspirations and start designing new ways to present ideas over the web.