The Theory of Layered Documentation
August 11, 2024
Combined with recent reading of "A Philosophy of Software Design" and earlier reading of all-time classics "Clean Code", my practices of documentation including code comments have evolved to a stable stage. Learning is the first stage, ensues the…
My long term struggle with digital addiction
August 03, 2024
Every single morning, I woke up and reached out to my phone start scrolling the Google discover page (the leftmost home page) for all customised content, mostly hard news, cycling news, product reviews or whatever Google guesses I would be interested…
Kickstart the topic of system thinking
November 12, 2023
What's system thinking? It's the realisation that individual events are not the cause but the result of a wider system traced back to way earlier. It's when more focus are put on the interactions of parts rather than themselves. "Thinking in Systems…
Progress on my learning of cognitive biases and emotional control
July 09, 2023
Conscious control of emotion has been a ever-lasting struggle with myself. Many times I find myself in the middle of aftermath of instinctive emotional response, bewildered why it ended up there. On top of that, in less serious but more common…
Every decisions in architecture is about trade-off: Review of Software Architecture: The Hard Parts
May 31, 2023
The sub title of the book is "Modern Trade-off Analyses for Distributed Architectures", which perfectly summarizes the key topics of the book: distributed system and trade-offs. What makes this book stand out, in my opinion, is the latter. What makes…
Notes on Devoxx UK 2023
May 11, 2023
Developer Jox by Sven Peters from Atlassian Simple process could be automated, like poking people to review code Measure developer joy with 8 metrics Speed to ship Waiting time Independence Access to tools Effort managing external standards Managing…
Five dysfunctions of a team is a must-read for all
July 30, 2022
When reading the book, I had the impression that it's not only about workplace collaboration, it's the utopia we'd like to achieve in all our society. A place You could comfortably expose your vulnerability, knowing that it won't be leveraged against…
Thought after joining second job in UK
June 25, 2022
I left Codurance this April and joined an online mortgage platform company, named Landbay. So far, the challenges and the novel experiences have been more or less as I had expected before joining. It's a good timing to record the fresh thoughts…
Using systemd drop-in configuration to allow remote docker host
January 10, 2022
Summary It's supposed to be an easy task, but the technical loophole at every step make it harder than expected. The problem I was trying to solve is to allow myself working on a M1 macbook with some x86 only docker images running on a Ubuntu box at…
Async Vue lifecycle hook
January 07, 2022
Summary For who is looking for an approach to ensure async operation such as backend data loading is done in created lifecycle hook, this blog hopes to shed some light and reveal under the hood mechanism for the sake of other scenarios. Final…
A real case study of distributed messaging - explicit contract, business logics driven and more
November 27, 2021
Summary This article is about a real case in my project to deliver a real-time feature, which relies on distributed messaging between service boundaries. Instead of a pure technical literature on choice of tools or coding approaches, or the…
Why it's hard to write notes for [the Secrets of Consulting]
June 26, 2021
It's a peculiar book. the Secrets of Consulting by Gerald M.Weinberg is a mixture of insights, anecdotes, fabricated rules and invitation of further thoughts. It could be compared to Goals or The Phoenix Project which embrace the style of novels…
Tricks to read legacy code
January 12, 2021
Though it's always a fancy thing to start with a greenfield, the same chances are that we start with a codebase having been there, large or small, messy or tidy. Reading an existing codebase could be a preparatory work before a project (as mentioned…
Testing strategy in real cases
September 20, 2020
This is a topic I'm not capable to cover succinctly yet. I'll try my best at the moment and revisit later. Why tests are valuable Confidence in implementation Freedom of change Act as documentation Reduce costly debugging All practices come with…
Book review on [The Software Craftsman] by Sandro Mancuso
September 20, 2020
Summary There have been a whole bookshelf of books, if not more, on the market about software development practices, both methodological and practical approaches. They are also covered in the book The Software Craftsman by Sandro Mancuso, with a…
My work environment setup
September 20, 2020
Hardware Macbook Pro 13-inch 2018: Nowadays fast SSD and at least 16 gigabytes of memory is the lowest bar for a development box Normal mouse and normal keyboard: I'm not even using mechanic keyboard, might due to their noises. I'm still using a ten…
How to work with huge git repo
August 08, 2020
Background Monolith doesn't only bite you in one way. Lately I have been in a project with thousands of developers working on the same git repo. Every day there would be dozens of new branch and hundreds of new commits. Don't mention that some guys…
Reading [So you want to talk about race]
July 19, 2020
Summary For the motivation we are all aware of, I finished this book a colleague mentioned. This has been a self-discovery read with frequent rejection at first and ensuing doubt then uncertainty. The author, Ijeoma Oluo, combined the ideology with…
How I reinstall macbook
June 21, 2020
Why I've never actually cleaned my Macbook system since my first use of it even the current Macbook has been my third one. The migration experience has always been perfect, and I don't really feel any slowness due to the growing system. Somehow…
Book review on [The Phoenix Project]
June 14, 2020
Praise The Phoenix Project is a must read for anyone serious about modern IT industry. Its format in novel set the scene for the readers whom are brought back to their daily life: endless task queue, unsatisfied boss, and worst of all, tensioned…
Understanding wait time versus utilization - from reading Phoenix Project
May 18, 2020
Source of the confusion When reading the novel book on software development, Phoenix Project, one formula kept popping up and caused an enduring confusion in me. This is the chart I take directly from the book. It's involved in a discussion about…
Transducers in Clojure Explained
April 13, 2020
If you've read the official article and still feel confused, you're not alone. So here I try to articulate it with my own words and examples. Transducing is an idea based on reducers. It's introduced into Clojure since 1.7, and there's not really a…
Takeaway on Teaching Apprentices
March 15, 2020
Background In my current workplace Codurance, there's a program called Software Craftsman Apprenticeship in which developers with working experience but not fully ready to be a Software Craftsman are recruited with salary. They will take a three…
The story of debugging a failure of apt-update in Docker container
February 16, 2020
Summary This blog is about how I encounter an unexpected issue while maintaining the AWS deployed machine. Plus how I found out the true culprit and solve it acceptably for now. Also, the joining of my colleagues eased the pain a lot. Brief take away…
Approaches to Installing Ubuntu along with Windows 10
February 07, 2020
Why I've got a Intel Skull Canyon mini PC box at home with Windows 10 installed. Most of time it's only used for watching online stream on projector and as light gaming pc for my wife for Planet Zoo. Still MacBook is my main working platform but I am…
Thoughts about Practices/Principles behind Good Design (Part 1)
September 10, 2019
Object Calisthenics It’s one of my favorite practices for clean code. It seems a bit strict and hard to follow at first encounter, yet proves profitable if you could stick with it or at least have those principles in mind. I believe the name comes…
First impression of Event Storming
August 28, 2019
You may have heard of Event Storming before, or maybe not. Yet today is the first time I kinda have a grasp of what that amazing tool is about. What’s more, we practiced that on a user story kata and the process evoked a lot of thinking inside me. I…
Very Incomplete Summary of 'Learning How To Learn'
August 20, 2019
Before we started apprenticeship in Codurance, there was a list of recommended readings all of which were quite valuable and worth an attentive reading. Yet among other topics like apprenticeship program itself, TDD, etc, I found this non-technical…