Hi! I'm Alvin. I enjoy building software and web services to replace drudgery with delightful workflows.

twitter: @alvinlai
email: a@alvinlai.com

Mac and iOS apps

— Mac screenshot annotation with intuitive hotkeys and Imgur upload.
Nanotate on the Mac App Store
I wanted a straightforward screenshot capture tool with adjustable annotations powered by intuitive shortcut keys. Couldn't find an modifable annotation-friendly view class so I subclassed NSView and rolled my own annotation view, which I promptly used for Freshlog and Screendocs. Sure had fun with NSBezierPath. You can link with Imgur to upload your screenshots there easily too.

— Screenshot annotation tool tightly integrated with Basecamp.
My first foray into Objective-C and learning that people will pay for software I write. Incoming PayPal "payment received" emails were my gateway drug to selling software online.

— Capture step-by-step screenshots and publish a html webpage with them online using Dropbox.
Screendocs on the Mac App Store
I wanted to provide top notch customer support and documentation for Freshlog. The clearest way was to use step-by-step screenshots. People found it useful enough to pay for it too.

— Companion iOS app for the first lightfield camera sold to the masses.
It also connects to your lightfield camera using Wi-Fi and uploads your pictures using your phone's data connection. Pretty handy.

— Top finance category download in the Singapore Apple iOS App Store.
Updating tableViewCells in near real-time for stock price changes and ensuring expansion animations work nicely whilst ensuring smooth scrolling was a fun challenge.

Web apps

Handpick — Collect the right links for the right people, sent as a daily or weekly email digest.
Written in Rails and jQuery. Launched with paying subscribers.

Resnip — Webpage snapshot and annotation tool with delightful auto-scrolling annotation access.
Web service written in Rails and Coffeescript. Webpage snapshot archival, readability-style processing message queue worker written in Go and Docker for orchestration and deployment. I use Resnip daily to archive webpages and surface goodies from walls of text.

Liberate — Empower others to update your website without porting to a CMS or blogging engine.
Powered by PHP, Rails and Javascript. Fun proof of concept to easily add dynamic content to static webpages with just a little PHP code.

ShareInvestor — The number 1 website if you trade on the Singapore/Malaysia/Thailand stock market.
Got acquired by Singapore Press Holdings. Rails and Javascript.


Hands on with Docker
— With a friend, I created the first Docker training course and became Docker's first official training partner. We taught a 3-hour Docker course to a live audience and produced a 4-hour video training course on how to use Docker.
Docker, Inc. then licensed our course for $10,000 to create their enterprise Docker training course.