Choon-Siang Lai

Choon-Siang Lai @jeffrey04

About: Full-time software engineer, part-time struggling writer.

Location:
Subang Jaya, Malaysia
Joined:
Jul 30, 2018

Choon-Siang Lai
articles - 38 total

The Pygame Framework I Didn’t Plan: Building Tic-Tac-Toe with Asyncio and Events

Over the last weekend, I spent some time mucking around with Pygame. Despite facing some challenges...

Learn More 0 0Jul 5

My Pygame Evolution: Embracing Asyncio and Immutability for Scalable Design

Maintaining a blog is a lot of work, especially when it comes to finding new ideas. Over the weekend,...

Learn More 0 0Jun 24

From Dotfile Hacks to Open Source: My Development Environment Evolution

Let’s talk about setting up a development machine for work today. If there is one thing techies love...

Learn More 0 0Jun 18

Beyond Hardcoding: My Breakthrough in Testable Parallel Python

Last week, we talked about removing hardcoded synchronization primitives. The refactoring was...

Learn More 0 0Jun 8

Telegram Chatbot’s Evolution: Decoupling Parallel Python’s Shared State for Clarity

After building the intro animation last week,,) I finally took the time to make a video based on the...

Learn More 0 0Jun 3

Code Rain’s Revelation: Embracing Existence Before Perfection

I would like to start this article by thanking the editorial team of JavaScript in Plain English for...

Learn More 0 0May 27

The Unchaining: My Personal Journey Graduating from jQuery to Modern JavaScript

When I was building a quick frontend to the LLM game, I used jQuery to quickly whip out a prototype....

Learn More 0 0May 20

Dao of Functional Programming (Chapter 1: Clean State)

This would be an irregular series of posts on my new attempt to learn Category Theory. This time, it...

Learn More 0 0May 17

Vibe-Coding, Storytelling, and LLMs: A Collaborative Approach

I probably mentioned this before, the growing count of articles here calms my mind in the midst of my...

Learn More 0 0May 14

The Quest Continues: Porting the Word Game With AsyncSSH

Last week, we reimplemented our 20-questions variant, and it received quite a bit of attention. So...

Learn More 0 0May 4

Leveling Up LLM Game Development with DSPy

After completing the series on asynchronous programming, I needed some time off to deal with the...

Learn More 0 0Apr 27

Concurrency vs. Parallelism: Achieving Scalability with ProcessPoolExecutor

In our previous exploration, we dove deep into AsyncIO by writing a task scheduler. We discovered how...

Learn More 0 0Apr 8

AsyncIO Task Management: A Hands-On Scheduler Project

We discussed Awaitables last week. The article covered coroutines, tasks and futures as well as a...

Learn More 0 0Apr 1

Understanding Awaitables: Coroutines, Tasks, and Futures in Python

Previously, we explored chatbot building with AsyncIO. As I am committing to publish one article a...

Learn More 1 0Mar 24

A Love Story in Code: Building My Self-Hosted Photo Album

I am almost one year into my current relationship. It is hard to believe how fast time flies, until I...

Learn More 0 0Mar 20

The Versatility of __call__: A Python Developer’s Secret Weapon

While reviewing the code in my current chatbot project, I discovered asyncio.to_thread accepts...

Learn More 0 0Mar 10

How to write an AsyncIO Telegram bot in Python

Last week, we discussed a quick weekend project on building a word game. That project was sparked by...

Learn More 0 0Mar 5

I built a word guessing game with LLM

After a period of regrouping, I resumed my quest for a new job or project. While sourcing ideas from...

Learn More 0 0Feb 24

Hair dryers have standards, why not software? A call for Rights by Design.

We can plug and use electrical appliances without fear, thanks to the existence of SIRIM...

Learn More 0 0Feb 21

Beyond the Code: A Lunar New Year Reflection on Career, Recovery, and New Beginnings

The lunar new year celebration just concluded yesterday. My family and I went to the temple to offer...

Learn More 0 0Feb 13

Applying Cramer’s Rule for Advent of Code 2024, day 13

Day 13 is relatively easy, especially if you’re comfortable with math. I originally started with a...

Learn More 0 0Jan 28

Finally, an application for my FSM library! Advent of Code 2024 day 11

We’ve finally completed 10 puzzles, surpassing my previous record (though I still have days 24 and 25...

Learn More 0 0Jan 21

Climbing a depth-first search hill, Advent of Code 2024, day 10

Today, we’re diving into the Day 10 puzzle. Like Day 6, it’s a 2D grid, but this time, we need to...

Learn More 0 0Jan 13

How to parse computer code, Advent of Code 2024 day 3

Having tackled some of the later Advent of Code challenges, I wanted to revisit Day 3, which...

Learn More 0 0Jan 6

How to repair a bridge, Advent of Code 2024 Day 7

After what felt like an eternity (five hours, to be precise), Day 20 part 2 finally decided to...

Learn More 0 0Dec 30 '24

How to trace steps in a map, Advent of Code 2024 day 6

Back to my Advent of Code challenge, due to some unforeseeable issues, I am unable to complete the...

Learn More 0 0Dec 27 '24

Video data IO through ffmpeg subprocess

As I restarted my job search (yes, I am still #OpenToWork, ping me!), in one of the job applications,...

Learn More 0 0Dec 18 '24

How to code a Sorting Algorithm for Advent of Code 2024 day 5

In the previous post, I briefly mentioned that I am participating in this year’s Advent of Code....

Learn More 0 0Dec 10 '24

Why does everyone love sorting algorithms?

I had an interview a few weeks ago, and was asked to implement a sorting algorithm. I didn’t manage...

Learn More 0 0Dec 3 '24

Building state machine library with help from AI tools

Just out of boredom, while waiting for my follow-up interview sessions, I built a state-machine...

Learn More 1 0Nov 26 '24