Johnson Ng

Software Developer @ Snappymob | Malaysian
Pure Mathematics | | Web Development | Programming | Design | Gaming | Coffee & Tea
Jump to:

Personal Statement

The thrill of intellectual discovery satiates my desire to know, and it is a never-ending process, for new knowledge leads only to more questions.

I am a software developer who works mainly with web technologies. I am interested in teaching, programming, software/web design, or devops. Almost all of my computer-related skills are self-taught. Go further down to see what I have to offer. Do feel free to contact me either for enquiries, or if you would like to further discuss about what I can do for you.

Work Experiences

(Feb 2022 - now)
Software Engineer
Bridgit | Product, Data
  • Setup a BI tool for sharing data analysis across teams
22
months (Apr 2020 - Jan 2022)
Software Engineer
Snappymob
  • Rebuilt our company website for our rebranding project using NuxtJS, with a strong focus on accessibility (a11y).
  • Built the backend for a SaaS product for an enterprise client for an internal application, using NestJS and TypeScript (Project A).
  • Planned and set up the networking architecture for the above project on AWS, using Docker, ECS and Fargate, and employed best practices of security through our architecture.
  • Lead the backend team for Project A, keeping our goals clear, our team members informed, and our deliveries on time.
  • Setup a cloud function on AWS Lambda, for Project A, to perform image manipulations.
  • Took over an existing project (Project B, a public-facing lifestyle entertainment service) and codebase, and optimized various database (Postgres) operations by applying indexes to the appropriate columns.
  • Implemented a probabilistic mechanism for a mini-game in Project B.
  • Implemented a FIFO system for an existing point system in Project B using database procedures and views (Postgres), affecting over 45k users.
  • Implemented an Excel file import and export feature for a .NET project (Project C, another internal tool for an enterprise client) that uses the EntityFramework and Blazor server. The library used for handling Excel files is NPOI.
  • Redesigned the database schema for Project A to use an OLEP-based approach to our data, and balance out the difficulties in using an OLEP-based database schema with database views.
  • Gave several tech talks and hosted tech Q&A sessions for junior members of the company, sharing knowledge and dispelling myths.
6
months (Jan 2020 - Jul 2020)
Voluntary Frontend Web Developer
Guide Analytics
  • Streamlined cloud setup with Docker.
  • Modularized and documented custom plugins for Superset.
  • Provided clear vision and clarified developments of Superset to manager.
  • Acted as advisor for new team members: provided advise on usage of git and code cleanliness
4
months (Sep - Dec 2016)
Junior Data Analyst
Ontario Ministry of the Environment and Climate Change, Ontario, Canada | EAASIB, Financial Assurance and Brownfield Services
  • Dealt mainly with statistical analysis of workload and Record of Site Condition trends.
  • Automated generation of regularly-reported statistics.
  • Automated annual cleanup of project tracking Excel worksheet.
  • Streamlined input of project data into project tracking Excel worksheet.
9
months (Dec 2014 - Aug 2015)
Undergraduate Research Assistant
Dr. Malissa M.M.
  • Meta-analyzed over 1000 articles.
  • Collected, organized, and analysed data collected from selected articles.
  • Self-studied statistical models.

Project Highlights

relman
An offline-first personal relationship manager
 
  • Hand-crafted several components commonly understood in the wild, but with my own take on UX, and fussing over accessibility
  • Uses Objection.js and Knex.js
  • Uses Vite + Vue3
  • Uses Electron (sorry, not sorry, but just trying to see how far I can go)
salz | Frontend Web Developer
An experimental Halite-inspired AI bot programming game.
   
  • Worked with Nuxt.js, the front-end framework for the project.
  • Worked with Pixi.js for rendering game-related frames on a HTML canvas.
  • Project is comprised of 4 microservices: game core, database, API, and front end.
  • Brought visual life of the project to the team through basic knowledge of product design.
  • Learning how to use Jest for unit testing.
Personal website
A personal Jekyll site hosted on Gitlab with Gitlab Pages.
   
  • Uses Gitlab pages and Gitlab CI to deploy the site.
  • Uses Jekyll, a static-site generator written in Ruby.
  • Planned and designed site from the ground-up, using industrial practices.
  • Written bash scripts to improve experience of writing new blog posts.
  • Uses Gulp.js to automate various tasks, such as asset minification.
Enpitsu | Full-stack Developer
A command-line personal task manager. Project was previously written in JS as a simple CLI application.
 
  • Experienced solving and thinking about various problems, such as search (algorithms, approaches, and interface) and string parsing.
  • Creating a API library, API server, and CLI, currently entirely in Rust.
Houkai3rd Playdata
Create your own play data card for Houkai3rd (or Honkai Impact 3) on the web and save info as JSON
 
  • Learning Svelte.
  • Practiced creating more accessible components while staying aesthetically pleasing, while achieving modularity in code.

Volunteering Experiences

2014
Secretary
Sunway Taekwondo Club, Sunway University, Malaysia
  • Digitized member records, utilizing online forms that registers members into a database.
  • Later served as advisor for the Executive Committee of the year 2015.
Jul 2011 - Jun 2012
President
Hua Lian Taekwondo Club, Hua Lian Secondary High School, Taiping, Malaysia

Education

Jan 2016 to Dec 2019
Mathematical Studies (major), Pure Mathematics (minor), Actuarial Science (minor)
University of Waterloo, Waterloo, ON, Canada

Aug 2013 to July 2015
Actuarial Science
American Degree Transfer Program, Sunway University, Bandar Sunway, Selangor, Malaysia

Certifications

Passed Actuarial Examinations
SOA/CAS Exam P/1
Attempted Actuarial Examinations
SOA/CAS Exam FM/2

Tools of the Trade

Tools I love and know well
Tools I regularly use
Tools I occasionally use
Tools I know enough to do basic things
Tools I've used before
Services I've used before
Operating Systems I've used before
Linux macOS Windows iOS iPadOS
Other stuff I know
Babel (JS) Storybook DNS Machine Learning (Basics)

Skills & Knowledge

HTML
CSS
JavaScript
TypeScript
Vue.js
React
Svelte
bash
Rust
Python
Docker
git
NestJS
PostgreSQL

Language Skills

English
Bilingual Proficiency
Mandarin
Mother Tongue (MY)
Cantonese
Working Proficiency
Hokkien
Working Proficiency
Malay
Working Proficiency
Japanese
Basic Proficiency
Teochew
Limited Proficiency

Hobbies & Interests

Music
Games
Reading
Coffee
Photo
Math
Leaves
Clouds

Miscellaneous Achievements & Other Prides


This aside from the masonry layout,
everything else in the CV is handcrafted
with the power of templating in
static site generators, Stylus, and JavaScript.

(JavaScript was only used for generating the anchors)