JT's Weblog

My Used Page, Part 2

published: October 30, 2025 estimate: 18 min read view-cnt: 2 views

In the previous article, I briefly introduced all the tools I’ve used in my previous working experience.

Here I will continue introducing the tools I’ve used in my personal space and lastly mention a few more titles that I’m currently into.

This is not supposed to be an exhaustive list—tedious items might be filtered out unless I have something to say about them.

Let’s GO!

Personal Amusement (Didn’t Use In The Previous Job)

Note: I also code my personal projects in C# and JavaScript. This list intentionally excludes items I also used in my job experience (not 100% accurate though).

Note Taking

I’ve used a lot of note-taking apps. Data becomes obsolete or gets lost every time I switch apps. But I still kept switching. It wasn’t that my data was disposable, but more like a green field/brown field problem of a long-running service. Data grows into a mess, becoming simply unmanageable. Yet each switch gives you the chance to re-implement the whole structure with the knowledge of previous failure experiences.

Over time, I’ve learned an important principle: separation of prose and data. Avoid defining rigid rules on prose—it’s fine to repeat yourself in writing. Instead, focus on the definitions of data: types, formats, and how to store them. Data should be deduplicated and kept manageable. Prose can flow naturally without over-engineering.

That’s just a brief overview of what happened in the past—the whole story would be another article for another day. Let’s start reviewing it 🤓

Productivity Tools

I’ve tried many productivity tools over the years, but I consistently return to vanilla solutions—plain text files and simple approaches. This pattern reflects a deeper realization: complex tools often become another burden to manage.

My preference toward text file-based solutions solidified after reading “Efficient Linux at the Command Line: Boost Your Command-Line Skills.” The book demonstrated many different ways to manipulate text files with bash one-liners and advocated that one should store data as plain text files. The concept was very inspiring and aligned perfectly with my minimalism.

Failed experiments (not exhaustive):

There were many other attempts, but there’s no point in listing them all.

Language

My programming language practice centers on minimalism: I try to find the minimal syntax for each function I implement. Bash, when it conforms to Unix philosophy, is probably the most concise solution available today. Beyond Bash, the other two languages I gravitate toward are Python and Raku—I prefer Raku because it achieves conciseness on its own without relying on tons of packages.

Learning a new DSL from scratch helps you become aware of the essential syntax of a programming language. It helps you compare syntax across different languages and discover how to code in a more succinct way.

An important shift: LLMs changed everything. LLMs are excellent at building small-scale programs in any programming language. You can kickstart projects WAY faster than before. This has fundamentally altered how I approach learning new languages and writing utilities.

Web Front-end & JAMstack

I am a full-stack web developer, primarily using the WISA solution stack (Windows, IIS, SQL Server, ASP.NET), and also familiar with React and the modern JavaScript ecosystem.

In my spare time, I love to explore front-end technology beyond the WISA stack. However, I found out that the need for learning new things is limited by what I actually want to build in my spare time. A simple content-driven website doesn’t need too many fancy features.

One lesson learned: there’s no need to pursue platform-independent or framework-agnostic features when you’re just trying to build a dead simple blog site. YAGNI applies strongly here.

Browser & Extensions

I’m a web developer, of course I’ve used more than 3 browsers! Worth noting that mobile browsers don’t simply equal desktop versions—especially iOS browsers, which are essentially wrappers of WebKit. There are many other browsers worth trying (like Polypane for web developers, or Arc for tech-savvy users), but I’ll leave those to my future self.

My browser journey: Chrome → Edge → Brave → Firefox

Extensions

Keyboard Layout & IME

I’ve experimented with various keyboard layouts and input methods to solve ergonomic problems and improve typing speed. The challenge with Chinese input is particularly interesting—Chinese homophones are extremely wild in comparison to English. There are edge cases where phonetic input methods are just not good enough, which is why graphological input methods exist.

There have been tons of different graphological Chinese input methods invented over the years, but none were popular enough to last for decades. I feel these inventions should be treated as cultural heritage conservation—a record that Chinese users, developers, and researchers all came together, trying to find solutions for wild homophones and hieroglyphs.

All typing speeds were measured as an average based on my observation. I used Monkeytype (English basic) to practice typing. (I type directly on my laptop, I don’t use any extra keyboard, minimalism FTW!)

IDE & Editor

These are the tools where I’ve invested time customizing workflows and building personal utilities.

Hardware

These devices represent personal milestones—each tied to a specific phase of my development journey.

Back-end

I don’t do fancy backend stuff in my spare time. JAMstack websites don’t require a backend server by definition. If I want to make something complicated, I normally go straight to C# console apps. That’s why my knowledge in the NodeJS ecosystem is quite limited. Most of the backend tools I use are C#/.NET based, which were mentioned in the previous article.

Database

My philosophy on data storage: I prefer to defer the data storage decision until the last moment. Usually, plain text files are sufficient for my needs. For example, I use a database only for view counts on my blog posts—which is obviously overkill. This reluctance to commit early to database choices reflects my minimalist approach.

DevOps

I occasionally experiment with modern DevOps tooling, though this isn’t my primary focus in personal projects.

Operating System

Note: This article records things I’ve used in the past, not necessarily what I’m currently using or learning.

Closing Thoughts

The pattern is clear: complexity promises more but delivers maintenance debt. Plain text, minimal syntax, and vanilla solutions consistently win. The brown field problem taught me that starting fresh isn’t about tools failing—it’s about learning what truly matters.

If you’re curious about my work-related tools, check out Part 1.



No comments yet

Be the first to comment!