Sign in

AI Engineer; Masters in AI; Closet n3rd, Avid investor; Connect with me at→
Photo by Jakub Kriz on Unsplash

A career switch as Elsa said, is a journey “into the unknown”

My journey in its rawest form

Two years ago, I graduated college where I studied Economics and Finance. I was all set for a career in finance. Investment Banking and Global Markets — those were the dream jobs. 9 months before graduation, I snagged a role at an investment bank, feeling proud because it was typically hard to get a role if one hadn’t interned at that bank before.

Months into the job, I picked up some Excel VBA and learnt how to use Tableau, Power BI and UiPath (a Robotics Process Automation software). I realized I was more interested in picking up these tools and…

Interested to get into AI? Read this first.

Disclaimer: These opinions are mine and mine only. You may choose to agree or disagree with them. And yes, some examples are hyperboles, please take them with a pinch of salt. :)

Why you shouldn’t join AI

You want to get rich.

Let’s get the elephant out of the room. As the words “Artificial Intelligence” and “Machine Learning” get plastered all over the media with governments, public agencies and even large corporates advocating for and/or incorporating AI into their business one way or another, it’s hard not to imagine that the industry is flushed with hot money. Let’s be honest — it is.

Photo by Sharon McCutcheon on Unsplash

Want to raise seed money for your…

Full code snippets (GitHub Gists) included

Photo by Roman Synkevych on Unsplash

All code snippets are runnable as is (i.e., you can copy and paste it and it will be runnable). Do let me know in the comments if you spot any mistakes!

All snippets also describe each operation and its corresponding asymptotic runtime (i.e., Big O). All code snippets are authored by myself.

Table of Contents

  1. Stacks
  2. Queues
  3. Heaps
  4. Linked Lists
  5. Tree (BST)
  6. Tree (Trie)


Operation: push (add element to the stack)
Time Complexity: O(1)
Operation: pop (remove from stack)
Time Complexity: O(1)
Operation: peek (return first/topmost item in stack)
Time Complexity: O(1)
Operation: clear (removes all elements in stack)
Time Complexity: O(1)


Do you know what the resizing factor for lists is in Python?

Photo by Artem Sapegin on Unsplash

I’m only kidding. You don’t need to know Python’s list resizing factor to understand it well. But if you’d like to find out more, read here!

Coming from a non-computer science (CS) and non-technical background, I suffered from the lack of CS fundamentals when I first started my journey and career in Machine Learning (ML). This included things like understanding asymptotic runtime, memory usage, data structures, algorithms and much more. What made matters worse was that I jumped straight into ML without engineering fundamentals — I didn’t even know what the self in a class meant (in the Python context)…

Create your own personal stock updates slave

The telegram bot I will be referring to in this article is Stock Updates Slave and source code can be found here on this GitHub repository).

Photo by Christian Wiediger on Unsplash

You might be thinking, why do we even need a service to update us of our portfolio holdings? Truth is, most of us are too busy with our daily lives and brokerage platforms that we are subscribed to provide such services but their push notifications come in the form of emails or mobile-app alerts that we are almost never inclined to click on or open. …

What you should know when using Docker to deploy AI/ML solutions

Photo by Dominik Lückmann on Unsplash

One of my main motivations for writing this article stems from a particular client’s refusal to adopt the usage of Docker due to concerns related to Docker security and potential user permission escalation within the container itself. As a relatively naïve and green AI engineer doing ML deployment with Docker, I found myself unequipped with the knowledge to address this issue.

A Quick Overview

What is Docker and why is it so popular?

Since its release in 2013, Docker has gained massive traction amongst software companies as it made deployment of containerized microservices extremely convenient and easy. …

Doing more with less

Bash aliases, Vim, and useful VSCode extensions

Photo by Charles Deluvio on Unsplash

As an AI/ML Engineer (this applies to Software Engineers as well), the faster one can crunch out code, the greater our efficiency. Engineers are often good at their craft, but few try to squeeze out efficiencies in their day-to-day to maximize those gains.

These efficiencies or life hacks as I’d like to call them, may seem so insignificant to some but over time, really do add up to a lot. …

A step-by-step and end-to-end guide to building a durian classifier (code included)

So, I decided to build a web application to classify durians because hey, why not? Check it out here.

Web application demo (GIF created by author)

To all my international readers, if you don’t know what a durian is, it is a fruit (in Singapore we call it the King of Fruits) that has a creamy texture, a pungent smell (see image below) and a spiky exterior. This said pungent smell makes people either hate it or absolutely LOVE it (I fall into the latter category, obviously). If you think it smells good, then it probably tastes even better.

An afterthought to Lee Kai-Fu’s ‘AI Superpowers’

How far are we from complete AI coexistence?

Note: This article is largely inspired by Lee Kai-Fu’s ‘AI Superpowers’, along with some of my personal thoughts. Many ideas are abstracted from his book and any similarities found are intentional.

As a student, practitioner and advocate of AI, I’m fortunate to get a glimpse into how the AI technology works beneath the surface, and to a certain extent also allows me to imagine what kind of possibilities we have with AI not only in the present but also in the future.

To the man on the street, AI is seen as a technology that has the possibility to replace…

Introduction to SciPy’s Sparse Module

Photo by NordWood Themes on Unsplash

In recommender systems, we typically work with very sparse matrices as the item universe is very large while a single user typically interacts with a very small subset of the item universe. Take YouTube for example — a user typically watches hundreds if not thousands of videos, compared to the millions of videos YouTube has in its corpus, resulting in sparsity of >99%.

This means that when we represent the users (as rows) and items (as columns) in a matrix, the result is an extremely sparse matrix consisting of many zero values (see below).

David Chong

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store