Portfolio · X · LinkedIn · npm · Resume (light / dark) · Email · Sponsor
I've spent 9+ years as a product manager in fintech, SaaS and CRM. I joined the team building DarkHorseStocks when it had no users, and we grew it to 100k+ monthly visitors. Along the way I learned to build the whole product myself, from schema to storefront.
Now I open-source the tools I build for my own work: a native macOS notch app, a webfont extractor, a component picker that AI agents can drive, and a free MCP server for equity research.
Quick installs
npx fontfetch https://stripe.com # every webfont, project-ready
claude mcp add component-picker -- npx component-picker-mcp # let your agent pick componentsShinobiData MCP: in Claude or ChatGPT, go to Settings → Connectors → Add custom and paste https://mcp.shinobidata.com/api/mcp/mcp. It's free, and you sign in with OAuth.
Also contributing to OpenMLS, the Rust implementation of the Messaging Layer Security (MLS) end-to-end encryption protocol.
I'm open to full-time, contract and consulting work as a full-stack engineer, forward deployed engineer, product engineer or technical PM. I work remotely from Vietnam (UTC+7) and have shipped with teams in India, Singapore and the US.
| I can help you… | Where I've done it |
|---|---|
| Go from idea to production. Schema, API, UI, infra and launch, all owned end to end | OpCreative: ~86k-line platform in production, cut over from the legacy system with zero downtime |
| Embed with your customers. Forward-deployed: sit with the people using it and ship the integration they need | SimpliDeliver: 5 messaging channels and in-chat payments through Meta |
| Put AI on your data. MCP servers, agents, tool calling, natural-language search | ShinobiData MCP: 32 OAuth tools used from Claude and ChatGPT |
| Take payments anywhere. India, Southeast Asia and global gateways | 11+ gateways: Stripe, PayPal, Razorpay, PayU, Cashfree, BillDesk, MoMo, ZaloPay… |
| Cut your cloud bill. Consolidation and right-sizing on AWS | 3 AWS accounts into 1 ECS host: -75% monthly bill, ~5 s total downtime |
| Build fintech data products. Screeners, ETL, real-time market data | ShinobiData: 10k+ tickers, sub-50 ms filters |
Let's talk → Email me · LinkedIn · DM on X · Resume
| Product | What it is | |
|---|---|---|
| DarkHorseStocks | Stock research platform I helped build from zero users to 100k+ monthly visitors, with ~19k followers on Instagram. Scroll to the bottom of the site for the custom-designed footer. | |
| SimpliDeliver | Marketing CRM that sends up to 100k messages a minute across WhatsApp, Instagram, Messenger and Zalo | |
| ShinobiData | US stock data analysis platform, similar to Screener and Tijori | |
| OpCreative | Warehouse management and print-on-demand fulfillment for a Vietnamese client | |
| SimpliDeliver Email | Transactional email on AWS SES, with a REST API, event pipeline, BYODKIM and an npm SDK | |
| Enigma | Privacy-first messenger with an MLS end-to-end encryption tier and one Rust crypto core for iOS and Android |
Also: a real-time Indian-markets terminal for DarkHorseStocks (200+ stocks, 4 broker feeds), a self-hosted secrets vault on a single S3 bucket (Secrets Backup), React Native and Flutter mobile apps, WhatsApp automation bots and internal tooling.
TypeScript 30.8 MB █████████████░░░░░░░░░░░░ 51.51 %
JavaScript 7.5 MB ███░░░░░░░░░░░░░░░░░░░░░░ 12.63 %
HTML 5.2 MB ██░░░░░░░░░░░░░░░░░░░░░░░ 8.67 %
Kotlin 4.0 MB ██░░░░░░░░░░░░░░░░░░░░░░░ 6.64 %
Swift 3.2 MB █░░░░░░░░░░░░░░░░░░░░░░░░ 5.34 %
Python 2.9 MB █░░░░░░░░░░░░░░░░░░░░░░░░ 4.86 %
TSQL 1.3 MB █░░░░░░░░░░░░░░░░░░░░░░░░ 2.18 %
CSS 1.2 MB █░░░░░░░░░░░░░░░░░░░░░░░░ 2.09 %
Other 3.6 MB ██░░░░░░░░░░░░░░░░░░░░░░░ 6.09 %
Commits, not hours — GitHub's API has no notion of time spent. A repo's commits split across its languages by share of code, so a polyglot repo counts toward each one.
| Month | Commits | TypeScript | Kotlin | Swift | JavaScript | Elixir | Rust | Other |
|---|---|---|---|---|---|---|---|---|
| Aug 2026 | 755 | 430 | 99 | 81 | 14 | 21 | 8 | 102 |
| Jul 2026 | 746 | 418 | 122 | 97 | 27 | 25 | 10 | 47 |
| Jun 2026 | 430 | 95 | 126 | 100 | 26 | 26 | 10 | 47 |
| May 2026 | 528 | 428 | · | · | 46 | · | · | 54 |
| Apr 2026 | 120 | 96 | · | · | 15 | · | · | 9 |
| Mar 2026 | 47 | 40 | · | · | 5 | · | · | 2 |
Counted across 63 repos, 56 of them private. Generated from a local snapshot on 31 Aug 2026 — no third-party service, no WakaTime.
If these tools save you time, sponsoring keeps them free, maintained and shipping. Thank you. 🙏




