Written by Melodies Sim who lives and works in the Bay Area, California turning novel ideas into reality. Check out her projects on Github.
First Look at Hazard Pointers
October 23, 2021Hazard pointers are a solution to safe memory reclaimation to lock-free concurrent objects. To motivate the use of hazard pointers, let us consider a problem: we want to implement a concurrent key-value map that satisfy the Write-Rarely-Read-Many (WRRM) property...
Lessons Learnt from Scaling Memcached in Production
April 22, 2021Key considerations and strategies to build a highly available cache solution for business use cases...
Connection Pooling: 3 things you need to know to build a Connection Pool from scratch
January 01, 2021A complete guide on how to build a connection pool to optimise inter-services communication.
Testing Python3 Context Managers
September 14, 2020Python3 Context managers are beneficial tools for resource handling that involves locks and files. However, it might not be straightforward to test/mock...
Swift: The Power of Protocols
September 08, 2020Understanding Swift’s protocols and how to apply them to improve code performance and modular flexibility
Lessons learnt from Hosting a Graphql server on GAE with Cloud Firestore
May 07, 2020This article will be a quick guide on how to bootstrap a Graphql server on Google App Engine, using Firestore as a cloud database...
Building a Physics Engine from Scratch - Swift Series Part 2
February 17, 2020MSpriteKit strives to be a general-purpose framework for drawing edges, and volume based nodes in two dimensions. It includes an in-built view renderer, while offering a simple programming interface...
Protocol-Oriented Programming - Swift Series Part 1
February 04, 2020After watching WWDC talk on Protocol-oriented programming in Swift [2], I'm convinced there must be a better way than subclassing the pegs for three reasons. Here I'll summarise the 3 points I've gathered about classes...
Import images dynamically using require.context
December 27, 2019The problem was trying to display an arbitrary number of images, each with a filename not known before hand ...
My Reflection on Startup Financing
October 07, 2019Given that 70-90% of startups fail, from an investor's perspective, he needs to consider whether a startup can eventually scale up to 10x rewards. The VC model is hence, not to hope that all startups they invest in will succeed but ...
My Reflection on React Native vs Flutter
September 01, 2019React Native allows one to utilise native components by running code through the native JS Engine and a Native JS Bridge, where Flutter uses virtual components. ...
Implement Password Reset Using JWT
August 12, 2019This article aims to give a high-level overview of implementing password reset flow using JSON Web Tokens (JWT). ...
How to use Promise.all for multiple async functions
August 01, 2019Consider this case: I have an array where I want to perform an async function on each element of the array. ...
Interesting Tech Meetups
July 31, 2019Some of the ways I get to keep myself updated with the technology in the field is through atending tech meetups and listening to podcasts. ...
Hello World
July 30, 2019This is my first post on my new personal website! As some of you might already know, I have created this website using Gatsby which is so awesome! ...