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
Software Engineer
Bridgit | Product, Data
- Setup a BI tool for sharing data analysis across teams
22
months (Apr 2020 - Jan 2022)
Software Engineer
Snappymob
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
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
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.
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.
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, MalaysiaEducation
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, MalaysiaCertifications
Passed Actuarial Examinations
SOA/CAS Exam P/1
SOA/CAS Exam P/1
Attempted Actuarial Examinations
SOA/CAS Exam FM/2
SOA/CAS Exam FM/2
Tools of the Trade
Tools I love and know well
Tools I occasionally use
Services I've used before
Operating Systems I've used before
Linux macOS Windows iOS iPadOS
Other stuff I know
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
- Taekwondo (WTF) Black Belt 2nd Dan
- Happy Arch Linux user (see my dotfiles and scripts)
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)