Johnny C.

I'm a software engineer based in Toronto, Canada. I work on backend systems, mostly with Java, Kotlin, TypeScript, Spring Boot, and NestJS. My interests include the JVM, microservices, and distributed systems.

GitHub ยท LinkedIn

Personal projects

ChatGPT CLI (2023)

A command-line client for the OpenAI API, written in Go. Start a conversation, resume an earlier one, or save the history to a file. Built for fun and to learn Go.

Terminal demo
Animated terminal demonstration of ChatGPT CLI
A conversation from the terminal.

HouseHunterPro (2023)

A rental property monitor for the Netherlands. It watches for new listings and notifies subscribers when properties become available. Built with Michael Tong, using React, Java, Spring Boot, and Selenium.

Screenshots (3)
HouseHunterPro rental property listings
Rental listings
HouseHunterPro home page
Home page
HouseHunterPro notification subscription page
Notification subscriptions

CryptiChat (2021)

An anonymous messaging app with private, temporary chat rooms. Create a room, invite someone, and chat without an account. The room is destroyed after everyone leaves. Built with React, a backend migrating from Express to Spring Boot, and PostgreSQL.

Screenshots (7)
CryptiChat login page
Login
CryptiChat guest mode
Guest mode
Creating a room and sharing its code in CryptiChat
Creating a room
Accepting or rejecting a CryptiChat room invitation
Room invitations
Typing indicator in a CryptiChat conversation
Typing indicator
Text messages and emoji in CryptiChat
Messages and emoji
CryptiChat room closing when a participant leaves
Leaving a room

Other work

Some projects I contributed to professionally, and my university project.

DBS Card+ (2022)

Backend microservices for a credit card app: payments, transfers, payment reminders, content management, and notifications. I also worked on unit and integration tests with JUnit and Mockito. Java, Kotlin, Spring Boot, and Kubernetes.

DBS Financing (2022)

A web application connecting policyholders with premium financing specialists. My work covered API design, JWT and OAuth2 authentication, role-based access control, logging, and maker-checker workflows. NestJS, React, AWS ECS, and Docker.

Screenshots (3)
DBS Financing website overview
Website overview
DBS Financing application interface
Application interface
DBS Financing online application preparation steps
Preparing an application

Messaging and Location Portal (2021)

An SMS platform with a web interface and REST API. I developed poller microservices and the web interface, and performed unit, integration, and load testing. Java, Spring Boot, Kubernetes, and RabbitMQ.

Screenshot
Messaging and Location Portal web interface
The web interface.

General Data Migration Tool (2021)

An internal command-line migration framework built with Java and Spring Boot. I designed reusable migration logic and interfaces for developers to supply their own business rules.

Security for Mobile Intercloud (2020)

My final-year project at The Hong Kong Polytechnic University. I extended an Intercloud Gateway and developed MIT App Inventor extensions so mobile apps could connect to Intercloud networks and transfer data. Written in Java.