Calvin
Hello, I am Calvin C. Chan 👋
Senior Software Engineer - Javascript/Typescript
For the last decade, my entrepreneur journey taught me to build fast, learn from mistakes, and embrace change based on feedbacks and validation. I have been responsible for collaborating with clients, teams, and stakeholders to formulate effective design and execution strategies, designing the architecture of new software, building micro-service based REST-API servers, creating web frontends and mobile apps, managing cloud infrastructure, and implementing deployment pipelines.
You can find my contact below.
Latest blog posts
Persist state in ReactJS
How to persist state in ReactJS by storing the state of a component in the browser's session storage, so that when the user refreshes the page, the state is not lost. Read âž”
Self-hosted Supabase - Auto Expiring Session After X Minutes
By default, an authenticated user of Supabase Javascript Client will stay logged in indefinitely regardless of the JWT expiry time and browser closing/reopening. This guide will show you how to implement auto-expiring sessions that self destroy after X minutes. Read âž”
Self-hosted Supabase - Adding Custom Claims Using Auth Hook
Notes on how to add custom claims to JWT token using the auth hook in self-hosted Supabase. Read âž”
Technologies
Node.js, Javascript/Typescript, MongoDB, PostgreSQL, Redis, Jest, Supabase, Docker, Fastify, Restify, Express.js, OpenAPI, Stripe, MasterCard, eTapestry, Active Directory, OneSignal, Vue.js (v2), React.js, Material UI, refine.js, React Native, CircleCI, BitBucket Pipeline, AWS EC2, Docker, AWS S3, Google Cloud Platform, Axure RP, Adobe Illustrator
You can find many of my open source projects on GitHub (opens in a new tab).