Skip to content
View calvindotsg's full-sized avatar
  • HeyMax
  • Singapore
  • 15:11 (UTC +08:00)

Block or report calvindotsg

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
calvindotsg/README.md

Hi, I'm Calvin Loh

Business Systems Analyst at HeyMax, a loyalty and travel rewards platform in Singapore.

I build the systems that keep operations running and improving: docs-as-code platforms, workflow automation, and tooling that helps teams work with less friction.

What I Work On

At HeyMax, I own the operational backbone. In practice, that looks like:

  • Docs-as-code platforms. CI/CD pipelines that sync documentation across Git, Notion, and our project management tools. Includes automated quality validation and knowledge graph analysis.
  • Workflow automation. n8n orchestration, data pipelines, and process tooling. The goal is turning manual ops into repeatable, auditable systems.
  • AI-assisted operations. Custom AI skills and integrations so the team can find and act on operational knowledge without digging through docs.

Projects

  • calvin.sg — My personal landing page: who I am, what I'm working on now, and a live tracker for this year's cycling goal.
  • cc-menubar — Why do Claude Code quota tools only show what you've already spent? A macOS menubar gauge that shows runway (time to reset) instead.
  • mac-upkeep — Why do dev tools scatter caches and updates across macOS with no coordinated cleanup? A zero-config CLI that runs unified maintenance on boot and weekly via launchd.
  • granola-to-minutes — Why should meeting AI summaries stay trapped in one vendor's cloud? A one-time migration CLI exporting Granola transcripts, summaries, and notes to Minutes-native markdown — with optional Claude-powered extraction of action items and decisions.
  • homebrew-tap — Why ship install instructions when brew install exists? A personal tap that turns every CLI above into a one-line install on macOS, auto-bumped by release-please dispatch.
  • template-python-cli — Why re-scaffold release plumbing for every new CLI? A Python starter with uv, typer, hatchling, release-please, PyPI OIDC, and Homebrew tap dispatch wired in.
  • template-typescript-cli — Same painpoint, TypeScript side: commander, Biome, Vitest, release-please, and npm OIDC publish — cloned via gh repo create --template.

Get in Touch

calvin.sg · LinkedIn · hello@calvin.sg

Pinned Loading

  1. portfolio-v2 portfolio-v2 Public template

    Forked from Ladvace/astro-bento-portfolio

    My personal website, calvin.sg

    Astro

  2. granola-to-minutes granola-to-minutes Public

    CLI tool that exports Granola meeting data (AI summaries, transcripts, notes) to Minutes-native markdown

    TypeScript 1

  3. mac-upkeep mac-upkeep Public

    Automated macOS maintenance CLI

    Python 2 1