This page records everything I’ve studied, learned or practiced.
The points with (*) are my favorites.
- Read ‘The Staff Engineer's Path’ by Tanya Reilly
- Read ‘Designing Data Intensive Application’
- Read ‘Software Engineering - The Soft Parts’ by Addy Osmani
- Learned Node stream & Highland JS to build efficient data processing pipeline on a huge dataset
- Used Clinic JS to debug memory issue in NodeJS
- Learned Actor Model
- Learned HTMX
I quit my job at Billplz after working for 8 months. I started a new career at SEEK Asia as a Senior Software Engineer.
- Learned Remix and NestJS framework
- *Learned Deno runtime & Fresh framework
- Used Terraform & Cloudformation to manage AWS resources
- Used k6 to perform load test
- Used Datadog & OTEL for monitoring & observability
- Used Playwright and Cypress for testing
- Used monorepo in JS
- Read ‘Software Engineering at Google’ book
I quit my job at Onapp KL after ~4 years working. I started a new career at Billplz as a Software Engineer L3.
- *Learned Clickhouse DB and amazed by how great and unique this OLAP database is. I operate the database with tens of millions of rows
- Learned B-tree and B+ tree data structure, database indexing, optimization, transaction and isolation levels. Earned Percona Database Indexing Course certification.
- Learned Ruby on Rails (again after 10 years) and its design patterns (Presenter, Service, Concern, Background Jobs) for my new day job
- Learned Typescript, NextJS, React for new day job and Asthma Journey SaaS. React Hooks is really challenging and I’m still working on it.
- *Built a POC API server for JKJAV website using Redis and Go Fiber, utilizing Go Waitgroups, goroutine, Redis connection pooling, denormalization and transaction.
- Set up Meilisearch to enable searching on our Firestore database. Took a few hours to set up the Meilisearch instance and sync the data from Firestore to Meilisearch.
- *Shipped my first Golang code to production, integration of an API server with a Malaysia payment gateway (iPay88). The API server is consumed by a mobile app.
- Taught myself beginner-level Elixir Phoenix framework. Published a simple benchmark here. Tried to build several web apps and API servers using Phoenix but still not feeling productive with it yet.
- Used Django REST Framework, Nuxt and TailwindCSS to build Tax App
- Studied UI/UX by reading and watching Refactoring UI by Adam Wathan & Steve Schoger
- Taught myself OWASP security vulnerabilities (CSRF, XSS, SQL Injection) and mitigations (CSRF Token, SameSite cookies, CSP)
- Other techs I taught myself: *Redis, Supabase, Chakra UI, Tailwind
- *Taught myself intermediate-level Django & Django REST Framework. Loving this framework.
- *Taught myself beginner-level Nuxt & Vue
- Built many JAMstack web apps together with Django REST Framework
- Taught myself PostgreSQL and CockroachDB. Learned a bit of DB knowledges like compaction, Write Ahead Logs (WAL), RocksDB storage engine, indexing, materialized views, etc.
- Taught myself AWS products eg. DynamoDB, S3, Lambda, APIGW, CDK, RDS, etc. Built Voting Serverless App using these techs. Learned DynamoDB single-table pattern and aggregation with DDB stream.
- Taught myself GraphQL client. Built a simple chat app that utilizes GraphQL query, mutations and subscriptions. It’s built using Hasura and Nuxt.
- Taught myself GCP products eg. GCS, BigQuery, Data Studio, GCR, Cloud Build, etc. for my day job
- Studied programming theories like Domain Driven Development, Dependency Injection, Event Sourcing, CQRS, Saga pattern, Design Patterns, choreography & orchestration, Microservice architecture, Port & Adapter pattern, Clean architecture pattern, etc.
- Other techs I taught myself: Firebase Auth, Stripe integration (Billing & Payments), Hasura, Hashicorp Nomad
- *Taught myself intermediate-level Kubernetes
- Wrote a Proof of Concept Kubernetes CSI-compatible storage controller based on Rancher Local Path Provisioner.
- Plan, set up & manage multiple on-prem edge clusters
- Taught myself basic AWS & GCP cloud. Taking A Cloud Guru courses
- Taught myself basic Go. Built non-production web apps using Echo & Gin web framework
- Other techs I taught myself: Ansible
I started working as a full-time SWE at Onapp KL
- *Taught myself basics of message brokering & how asynchronous, microservice system works. It radically changed my views on how scalable systems are built.
- Learned about Python concurrency, multithreading and multiprocessing. Encountered a problem with Global Interpreter Lock (GIL) and solved it by not sharing database connection between threads
- Taught myself DevOps tools like Puppet, Grafana, Netdata, etc.
- Other techs I taught myself: InfluxDB, Nginx Lua, MongoDB, etc.
This is during my university internship year
- *Taught myself Python. Wrote my first unit tests. Fell in love with Python ever since.
- Taught myself Docker. My personal development process has changed ever since.
- Other techs I taught myself: Java Spring & Hibernate, Behavioral Testing with Ruby Cucumber, CI/CD with Jenkins, Elastic stack
- Studied basic Java, PHP & MySQL in my university years.
- Developed a document management system with a team of 5 students using IBM Cloud, Cloudant & Cloud Foundry for our university dissertation project.
- Taught myself Ruby on Rails, Sinatra & jQuery. Built a simple blog and aiming to build a Youtube clone. Too ambitious for 16 years old kid.
- Deployed my first Heroku deployment
- Taught myself MySQL