Hi! I'm Clarence 👋
👨💼 I'm a technology professional who started my career in SAAS Support roles
But my work was always abstracted from the code of the software I supported 😔
😤 To become a better technology professional, I knew I had to get more technical
So in 2021, I took the plunge and started building my coding portfolio 👨💻
🤦♂️ And it hasn't been easy.
But it has been extremely interesting 🤔 mentally stimulating 💡, and beyond rewarding
💚 My work paid off in 2022, when I joined Sauce Labs as a Support Engineer 💼
I learned a ton about test script automation and helped many QA professionals fix and run their test script code 💼
🔧 Now, I'm a vendor for Microsoft, supporting their Azure OpenAI and Cognitive Services offerings
👇 Feel free to scroll on to learn more about me & the stuff I've coded
And don't hesitate to reach out to me! 👨🔧
💼 PORTFOLIO
The live demos of the projects below are hosted on free web hosting platforms, so you may experience longer-than-usual load times. Thanks for waiting!

Web-Based Maplestory Mini-game
Remaking the mechanics of the popular MMO Maplestory, translating it into a web-based game. Built form scratch with vanilla Javascript.
Tech Stack
- Built with Javascript, HTML, and CSS.
- Obects drawn to screen with HTML canvas, and game logic + event handling is handled with Javascript
- Version control with GitHub, Hosted with Netlify
Technical Achievments
- Implemented collision detection, gravity, & platforming logic whereby the player can move and interact with objects on a 2d plain, jump, travel on platforms at various heights on the map
- Simulated random "enemy" movement by regularly calling a random integer function, and performing actions according to the random integer generated
- Animates character sprite sheets with varying numbers of frames and varying animation types
- Implemented a simple gamestate design pattern to manage the different phases of the game. At any given time, one gamestate is active, which controls elements like the background image, active functions, etc.

Todo Productivity App
A To-do web app with a growing suite of productivity features. Built with React front-end and a Django back-end, communicating via REST API.
Tech Stack
- Front-end built with the React.js Javascript framework
- Back-end built with the Django Python framework
- API connection built with the Django REST framework
Technical Achievments
- Used Django REST API framework to connect a React frontend with a Python/Django backend
- Developed this app with a emphasis on employing React best practices, ensuring states are set for key variables, and are updated correctly
- Implemented bootstrap for styling, alongside custom CSS
- Implemented a modal pop-up feature to "Focus" on each individual task, giving additional options such as editing the Todo entry
- Implemented a timer feature in the Focus Modal, so the user can use it as a Pomodoro-style timer for productivity

A Foodstand Clam
A web game based on running a food stand on Maple Island. A fun project with the purpose of learning to code in vanilla Javascript. Built from scratch.
Tech Stack
- Built with Javascript, HTML, and CSS.
- Obects drawn to screen with HTML canvas, and game logic + event handling is handled with Javascript
- Version control and deployment with Git
Technical Achievments
- Used empty arrays to represent game objects like bullets, coins, npcs, etc. Interactions between these gameobjects, collision handling, as well as input handling from the user, are handled with Javascript functions. Game variables are 'upgradable', so the user can increase the "food" spawn rate, and decrease the "enemy" spawn rate with in-game upgrades. User "lives" are tracked to end the game after sufficient losses.
- Simulated random "enemy" generation and movement by using a random integer function, and performing actions according to the random integer generated
- Created gameloop with a stabilized frame rate of 100fps on all computers/browsers. Did this by implementing a gameloop which ingests the current timestamp, and checks the difference between the last timestamp. If the change in time is >= 10 milliseconds, the next frame is updated. This means a new frame is loaded 100 times a second, so the game framerate is cemented at 100 frames per second regardless of the user's browser speed.
- Implemented a simple gamestate design pattern to manage the different phases of the game. At any given time, one gamestate is active (like a Pause gamestate, Menu gamestate, etc.), which controls elements like the background image, active functions, etc.

Learning Log
A web based learning journal / note taking application. This project was built with guidance from the amazing book Python Crash Course, Project #3
Tech Stack
- Built with Python and the Django framework.
- Database created with SQLite
- Styled with Bootstrap4
- Version control with Git
- Deployment with Heroku
Technical Achievments
- Implemented user registration and authentication with Django, and tied each user's content to their respective user account.

Personal Portfolio
A personal 1-page website built to showcase my programming portfolio and professional qualifications. Built with an emphasis on interactivity and user engagement.
Tech Stack
- Built with HTML, CSS, Javascript, and the three.js library
- Version control with Git
- Deployment with Netlify
Technical Achievments
- Created a scroll-interactive "starry background" feature in Javascript by generating a 3d scene with randomized dots and scrolling the camera through the scene, with the help of the three.js library.
- Used Javascript to manipulate CSS upon click, in order to create buttons which show hidden content upon being clicked (in the FAQ section)
- Implemented custom CSS on-hover animations to preserve a minimal look, while giving additional info when certain modules are hovered-over (such as the Portfolio section cards)
⌨️ OTHER PROJECTS I'M PROUD OF:

Zense
2018-2019
Cofounded Zense along with 5 other UBC Business / Engineering students. We created an award-winning start-up project with the goal of creating an IoT product to ensure safer and longer independent living for seniors.
○ 🥇 Placed first at UBC's 2019 Innovation OnBoard start-up competition
(a UBC-wide dragons-den type pitch competition)
○ 🏆 Awarded funding from the RBC Get Seeded funding program
○ 🏅 Awarded the Glympse Internet of Things prize at the 2019 University of Washington Dempsey Startup
Competition

UBC Biztech Mentorship Program
2016-2017
Sole manager of a student & professional mentorship program, connecting technology students in UBC's tech community with local professionals in the technology sector.
○ 🧑🏻🤝🧑🏽 Scaled membership from 32 to a total of 74 members
○ 📋 Organized, managed, and led 2 program meetings with 95%+ program attendance
○ 🏅 One of BizTech's best rated programs of the year, with many positive testimonials
EDUCATION

University of British Columbia
2015-2019
Bachelors of Commerce with honors,
Business Technology Management Co-op
🎖️ Awarded the Chancellor's Scholar designation
🎓 Graduated with Honors
📋 Notable Courses:
RESUME & OTHER LINKS
SKILLS & TECHNOLOGIES
Here are the programming languages/frameworks/tools I'm most experienced with:







And I'm in the process of learning these right now:


CONTACT ME
If you'd like to contact me, you can fire off an email to me with this form:
FAQ
I'm a tech professional, born + raised + currently based out of in Vancouver, Canada.
Prior to pursuing a developer role, I've worked as a Technical Support Analyst for two years, using my technical acumen to support Visier's SAAS data analytics web application
But I was always a technologist, even before joining Visier.
In my university days, I worked in IT help-desk on campus at UBC's Dept. of Psychology, making sure the faculty + students + staff all had exactly what they needed IT-wise to perform their research and classes.
I also interned for 12 months in a Pre-sales role at Appnovation, a Technology Services company specializing in open source technologies.
And had a 4-month summer internship as a Jr. Business Analyst for BC's healthcare's Clinical & Systems Transformation (CST) project.
Now, I’m making the next step in my career, looking to find a role where I can leverage my SAAS Support background with my growing passion for development
In 2019, I graduated from the University of British Columbia (UBC)
I earned a Bachelor's of Commerce in Business Technology
Management.
Despite getting a business degree, I had my sights set on working in the tech industry going into this degree.
This is reflected in the major I chose, the computer science electives I took, and the extra-curriculars I got
involved with throughout my university career.
There are a few reasons:
The first would be that business disciplines (particularly entrepreneurship, finance, and business analysis) interest me greatly.
Second, I've been lucky enough to have a great mentor in my youth who's an entrepreneur. He influenced me greatly and piqued my interest in entrepreneurship and finance.
Three, I figured going into a business degree would be good for building my soft-skills.
Between these factors, it just felt natural to into a business program.
Although I think a computer science degree would've been incredibly valuable, I do take pride in self-learning development.
I think being a self-taught developer is a powerful demonstration of my intrinsic motivation towards continuous, life-long learning.
And at the end of the day, I believe that all technical professionals have to be "self taught" to some
degree--
Web technologies grow and mutate so quickly that it seems the learning never stops in this profession.
So I can confidently say I'm happy with being a business school grad trying to be a Dev; and having a sharp business acumen and strong customer focus will make me a very well-rounded tech professional in the end.
I've tried to "learn to code" many times throughout my life. I think this is a relatable experience.
I'd always get through a few Python tutorials, learn syntax, and even make a simple Pong game or Sodoku solver--
But I never stayed the course long enough to build a complicated piece of software from scratch.
It wasn't until my last role with Visier ended in June 2021, when I decided to try to "learn to code" for the last time, and actually build 100% custom software applications from beginning to end.
I would categorize my reasons for learning Development can be broadly categorized into three themes:
After working in a variety of different roles and companies in the technology industry, I've noticed a universal truth in this business: knowledge of code is powerful.
I know that the hours I've spent debugging code, and racking my brain setting up my project environment, will pay off in any role I undertake in the IT field. In a nutshell, this development experience would add a ton of value to what I offer as a tech professional.
My biggest professional/life value is lifetime learning. I feel most accomplished when I'm improving in something, or learning something new.
This translates well to the field of technology, where the learning never ceases. Learning to develop applications is a natural result of my pursuit of learning and improving as a professional.
Another of those values is that I take a lot of pride in my work. When I'm responsible for a piece of work, I'm often not satisfied unless it's completed to a standard of quality at which I can be proud of my work.
Even though this has made me slower to finish tickets in my as an Application Support professional, I think a dedication to quality results in robust and readable code.
Over the years, I've developed a deep knowledge of how I work best, when my best thinking occurs, and what type of work environment I’m most happy + productive in.
I've found that my best work comes out of long, concentrated work sessions where I can thrash away at a problem/project for hours. Once I hit my stride and enter a flow state, my motivation is highest and my mind is sharpest.
This work style has served me very well while learning to program. It undoubtedly can be mentally strenuous to be staring at a text editor for hours on end. However, once I hit my stride, I can't stop. I'll often end up hacking away at features all night.
In terms of the tools and learning resources I’ve been using:
- Started with books (Python Crash Course)
- Youtube videos to start projects in Javascript and web development
- Stack overflow and computer science blogs
However, the absolutely most important element of my learning has been a project-based mindset.
With a project-based learning mentality, I learn only what I need to get started with a new language, and then start projects, and continue learning by building and committing code.
I'm at a stage in my career where I'm 100% focused on professional growth. The role I'm looking for reflects that-- I want to be somewhere where I'm growing my technical knowledge in enterprise-level technologies.
In a perfect world, I'd love to be in a role where I can leverage my user support background, while touching codebases, and refining my ability to work with enterprise-level technologies/code-bases.
In the past few years, I've been spending many weekends working on my old project cars, and keeping them on the road. I'm particularly fond of 90's german cars! I also keep in touch with my cultural roots by performing lion dance, and practicing often, to impress crowds on Chinese New Year and at weddings and other ceremonies.