Hi there!

My name is Fadhil Yaacob (pronounce Fa-dale). I am a Senior Software Engineer and freelance Go developer. I’m based in Kuala Lumpur, Malaysia.

During my free time, I enjoy cooking with my wife and shredding my guitar \m/ You can see some videos in my Youtube channel.

People that I admire:

Interests#

  • Highly performance programming: concurrency, multithreading, event loop, caching, server scaling out
  • Distributed system: microservice, message brokering, CDN
  • Database optimization: indexing, compression, column-store/row-store db, scale out DB, SQL/NoSQL, embedded DB

* This does not mean I’m good in any of these but I’m interested & motivated in these areas

Work Experiences#

Senior Software Engineer L4, SEEK Asia - Apr 2022 to Present#

  • Responsible for the reliability of home page of many Seek brandings globally, has over >500M users and tens of millions of daily visits
  • Leading projects as an epic driver in the team of 5 engineers, BA and EM:
    • Lead a project with 2 engineers to migrate our services to Istio on Kubernetes and in a shared VPC maintained by platform team with zero downtime, resulting in cost reduction and lesser maintenance burden.
    • Inherited a project from a staff engineer that redirects legacy URLs to the new URL format
      • Lead a project with 7 engineers, 2 business analysts and 1 engineering manager
      • Reviewed more than 60 PRs from project commencing to completion
      • Drive a solution option on system design to be modular, cleaner and avoiding spaghetti code with optimal code composition
      • Improve a very critical function on hot code path that uses linear time complexity to constant time complexity from PR reviews and pairing
      • Gather and analyze requirements, prepare and groom the tasks to delegate to the team
      • Plan the resource allocation in JIRA Advance Roadmaps
      • Keep the codebase clean and abide to code standard by reviewing PRs
      • Making trade off decisions on the project direction
      • Worked with more than 6 teams in the company to deliver the project
      • This project took more than 6 months to be delivered
    • Inherited a project of adding hundreds of millions of URLs to our sitemap generation job
      • Lead a project with 5 engineers, 2 business analysts and 1 engineering manager
      • Scaled our sitemaps across multiple brands from listing 50M of total URLs to >200M total URLs
      • Re-architect our sitemap system to be modular to maintain readability and maintainability while improving its service reliability.
      • Empower and upskill the team with Node stream & Highland JS to smoothen the project delivery.
      • Wrote a design doc proposal on how we’re going to build the project
      • Breaking down tasks and delegate the tasks for team members to start contribute to the project
      • Debug and diagnose high memory issues using Clinic JS to improve its reliability
      • Reviewed more than 20 PRs from project commencing to completion
      • Worked with 3 squads/teams in the company
      • The project took more than 3 months to be delivered
    • Load test and optimize the autoscaling policy of our microservices to handle >150% of current traffic
      • Worked with different teams to achieve this and part of big program internally
      • Observe the load test and find the bottleneck of the system owned by the team
    • Audit microservices ownership and cataloging them in Backstage
  • Served as a supervisor/line manager to a Gradute Software Engineer in the team and responsible/accountable for her success
  • Instrumented our service using Open Telemetry
  • Instrumented unit tests in CI process, identify and eliminate all flaky unit tests in one of our most active repository. This improves the team development velocity.
  • Participate in on-call rotation & load testing sessions, investigate incidents using Datadog and communicate with other teams to remediate the issues
  • Work with geographically distributed team (Hong Kong, Malaysia and Australia)

Technologies used: AWS services, Cloudflare Worker, NodeJS, Terraform, OpenTelemetry, Datadog, k6, Playwright

Solo Founder - Asthma Journey - Jan 2021 to Present#

  • Build an asthma tracker app and market it to the public

Technologies used: NextJS, Django, CockroachDB, Fly.io

Software Engineer T3, Billplz - Aug 2021 to Apr 2022#

  • Building data analytic product using Ruby on Rails API, Clickhouse DB, and NextJS. Hand-written custom SQL queries for Clickhouse operations to utilize its special features like timezone conversion and WITH FILL modifier. Used techniques like caching & memoization in Rails to speed up the response time.
  • Advocate for Clickhouse DB adoption in the team of 4 people
  • Write batch ETL background jobs that sync the data from PostgreSQL to Clickhouse and verify its integrity
  • Setup the production environment using AWS Elastic Beanstalk, RDS, Elastic Cache, S3, and EC2. Implements security best practices by setting the IAM permission to allow minimum permission for each service.
  • Ingesting millions of rows per month into Clickhouse DB. Optimize the database to ensure the response time in milliseconds. Now we’re managing tens of millions of data rows and gigabytes worth of data.
  • Set up pgbouncer connection pooling and cut the DB-intensive operation by 80% by scaling out the worker servers

Technologies used: Ruby on Rails, Sidekiq, Clickhouse, PostgreSQL, Redis, AWS

Contract Software Engineer, Codepro - Feb 2021 to May 2021#

Work on freelance project with a group of 3 developers to build a pharmacy app for a client.

Career Highlights

  • Integrate ipay88 payment gateway into our backend API service written in Go
  • Setup CI/CD pipeline using Gitlab CI
  • Deploy Caddy web server
  • Deploy Meilisearch for search engine

Technologies used: Go Gin, Firebase, Caddy webserver, Meilisearch, Swaggo, Gitlab CI, Google Cloud

Software Engineer, CDN.net (Onapp subsidiary) - Jan 2020 to Aug 2021#

  • Lead a team of 4 developers and tester to:
    • Build VOD service for our OTT system, allowing users to upload video, transcode and distribute the video
    • Integrate our Django app with the external billing system. Make sure the data submitted to the billing system are idempotent by setting the cursor time.
    • Revamp our Django app frontend with a new internal UI Kit and jQuery
  • Built reporting features in our app, used materialized data views in MySQL, and used ChartJS to present the data.
  • Design and set up the central Kubernetes cluster using k3s on baremetal
    • Use Flux for GitOps
    • Use Helm for setting up RabbitMQ cluster and MySQL
    • Use Grafana stack (Loki for logging and Prometheus for metrics)
  • Set up multiple edge Kubernets clusters on client’s real estate and automate the process with bash script
  • Set up CICD pipeline using Google Cloud Build
  • Setup data analytic pipeline using Syslog, Google BigQuery, and Datastudio, ingesting over 1GB of log data per day to visualize traffic flowing through our CDN

Technologies used: Django, k3s on-prem Kubernetes, MySQL, RabbitMQ, jQuery, GCP, video.js

Software Engineer, Onapp - Feb 2018 to Aug 2021#

Working on Content Delivery Network (CDN) and Video Streaming products using Python during that period. I have a deep understanding of how CDN works in addition to web development and DevOps knowledge.

Career Highlights

  • Lead a team of 4 developers & QA to build a log collection and data analytic feature using RabbitMQ & ELK stack and successfully deployed to over 400 edge servers globally
  • Setup internal monitoring system for >400 of our edge servers globally using Grafana, InfluxDB and Netdata
  • Involved in an effort to update our codebase from Python 2.7 to Python 3.5 (the whole process took over 2 years)
  • Appointed as Technical Account Manager (TAM) for 3 key CDN customers
  • Trained our support teams in Utah, USA and Lviv, Ukraine with CDN & OTT technologies
  • Mentored 2 new comers in the team
  • Participate in on-call rotation to investigate & remediate system errors whenever downtime occurs

Technologies used: Django, Python, Kubernetes, MySQL, RabbitMQ, Apache Thrift, Puppet, Nginx, Elasticsearch, Grafana