Not The Same Pre-fork Worker Model

Running into bugs when forking at the wrong time

Intro At my company, we have a web app that monitors websites of investment firms for any new investment deals they make. The web app runs on Python Flask with Gunicorn and queues scraping jobs to Celery workers. Lately, we ran into an issue where a database query returned empty when it should not have. Since this issue occurs sporadically, I suspected it was due to our multithreading code. The ORM that we’re using, SQLAlchemy, warns that session is not thread-safe, and should not be accessed concurrently from multiple threads. [Read More]


Learning to run stand-ups effectively

My team’s scrum master went on vacation for 3 weeks, and I was selected to cover his duties while he’s away. I had a head-start preparing for this, as I had taken over leading the daily stand-up for a couple of weeks already. Still, I feel that I don’t have enough knowledge yet, and hence I reached out for help from the book The Scrum Field Guide. The book was quite enlightening, as I learned that we don’t follow the scrum process described in the book exactly, and the problems we face were quite common to those faced by other teams. [Read More]

The Phoenix Project

A novel on IT & DevOps

Finished reading the book The Phoenix Project recently. Not to be confused with the troubled Phoenix pay system, The Phoenix Project tells a story of how a newly promoted IT exec overcame IT adversities and turned the business around. What’s interesting to me is how similar CPPIB is to the company in the novel (Parts Unlimited). The characters and teams in the novel are easily relatable. At CPPIB, we have the Core Technology team, which performs change management, deployment, and hardware. [Read More]


An insightful personal finance/budget/accounting app

After watching the Toronto housing price skyrocket in the past year, I started to worry if I could ever afford a house. So last week, I started exploring various personal finance applications to figure out how much money I was saving a year, and how I can increase my savings. I first looked at popular applications such as and YNAB (You Need A Budget). These applications are most popular, but they either require a subscription, or require login credentials to online banking account. [Read More]

Soft Skills

The Software Developer's Life Manual

Yesterday, I began reading a new book titled Soft Skills - the software developer’s life manual. This book is the first non-technical book on software development that I’ve read. It doesn’t talk about how to program something. Rather it contains advice on how software developers should plan their career, market themselves, learn, be productive, manage finances, maintain fitness, and etc. The book has 70+ chapters, but each chapter is a short read. [Read More]

H2 Embedded Database

Doesn't work exactly like Oracle

Recently, I have been using the H2 embedded database at work to stage financial data for processing. H2 is really convenient to set up. I don’t have to install anything on the web server. No need to start/stop the database server when deploying the application. All I need to do is to add the dependency in Maven and I’m good to go. As convenient as H2 is, I got tripped by last week by a few unexpected differences between H2 and Oracle, the database that I was using previously to stage data. [Read More]

Hello World

Back to blogging

Back in 2013, I bought my first internet domain. I found a deal offering free web hosting and was excited to create my first blog! I didn’t know any web programming at the time, so I went with the most popular content management system, Wordpress. I set up Wordpress, installed all the useful plugins, and started to fill my blog with ideas. Then one day, an unfamiliar flag appeared on my homepage, with some propaganda message mocking me that my website had been compromised. [Read More]