I'm Poom, a software engineer and community builder from Bangkok, Thailand.
I'm enthusiastic about building software, crafting indie products, supporting open-source, learning in public, exploring computer science, and building communities and projects at the inter-disciplinary intersection of technology, creativity, and humanities. Nice to meet you!
- I'm currently working at Metabase as a frontend engineer.
- I love building projects with TypeScript, Rust, and React. I'm also learning Kotlin, Elixir and Clojure. I like to use these React libraries for my projects. I'm primarily a full-stack developer, and I've been writing software professionally for 6+ years.
- I like getting my hands dirty in a very wide range of things in computer science and software engineering, from low-level stuff, building compilers, reverse engineering binaries, all the way up to abusing TypeScript's type system to build libraries, architecting frontend applications and backend systems, and building interactive apps. Even if I primarily worked on frontend development & architecture in my day job, exploring various topics keeps me happy and growing.
- I co-founded Creatorsgarten, a collective of creators and software engineers with love of hacking, creativity, and interdisciplinary thinking. It's basically a group of friends who likes building things, and exploring different domains! We've organized 50+ hackathons, meetups, events and long-term community projects in Bangkok, Thailand since 2017.
- I dropped out of high school since I was 15 years old to focus on building software, and I've worked in several startups in Thailand and United States since.
- I was the VP of Engineering, Director of Product and Head of Platform at Brikl, where I explored people and product management in addition to software engineering. While I could do people and product management, I believe coding and building in public is what truly makes me happy!
- I gave ~60 talks on software engineering and learning principles in meetups, conferences and universities.
- I'm a plushie collector, I really love plushies and you will see me carrying plushies everyday. I'll pay for your dinner if you can remember 20 of my plushies' name!
- I enjoy onsen baths, Japanese cuisine, Macarons, swimming in the sea and waterfalls, hiking the mountains, camping, jogging, and jet skiing.
- Visual Assembly Canvas: A visual canvas and bytecode virtual machine for writing assembly to build cool things. Create machines and connect them together. The bytecode VM and compiler is built in Rust, compiled to WebAssembly, and used in the visual editor built with TypeScript, React, Reactflow, Nanostores, Radix UI and WebAssembly Bindgen.
- OpenCyberDance: An open-source cybernetic dance system built with Three.js and motion capture, based on traditional Thai dances and performance arts, in collaboration with MIT Media Lab and Pichet Klunchun Dance Company. See the prototype.
- Spending Visualizer: Parses your transactions from credit card and bank statements, and visualizes how you spend your money. Built with TypeScript, Svelte and SvelteKit. Check it out.
- Poom.dev: My personal website, portfolio, blog and digital garden. Built with Astro and Svelte. Check it out.
- Poom's Dotfiles: Configurations for my terminal life, including my fish, tmux, kitty, neovim, yabai, skhd, chezmoi, emacs, sketchybar, vscode, and other configs and shell scripts. Uses chezmoi to sync configurations. Can be used as a Docker image, or installed in Linux and macOS environments
- EventKit: Organizing tech events doesn't have to be chaotic! A collection of tools and applications that help your team run events, from early planning to the chaotic event days. Built with TypeScript, React, Vite, Nest.js, GraphQL and Prisma. See the prototype.
- FastSpend: Log your spending in seconds with short text snippets. Powered by Rust, Cloudflare Workers and Svelte. See the prototype.
- Prisoner's Dilemma Visualizer: Visualizes the Prisoner's Dilemma with React, Jotai and Framer Motion. See the prototype.
- Bullshit Tech Stack Generator: Generates a random tech stack from NPM API out of any word. Built with React and TypeScript. Check it out.
- Bank Statement and Credit Card Statement PDF Parsers: Parses bank and credit card statements from Kasikorn Bank's PDF documents.
- Advanced Types Demo: Code sample from my talk on advanced types at TypeScript Berlin Meetup #4
- Launchboard: Uses your Novation Launchpad as an animation studio and sound board, built with TypeScript, React, MobX, WebMIDI and Emotion. See the prototype.
- ESP Recorder: Code for my ESP32 video recorder sent to space in the Blue Origin rocket in the MESSE project, built with C++.
- Adaptors for PromoStandards: PromoStandards API proxy to transform and cache the legacy SOAP/WSDL-based API into a modern GraphQL API.
- Garden Gate: Door access control for Garden Zero club members.
- DotBudget: Flat-file budgeting tools for productive geeks. See the prototype.
- Totality Editor: Live-editable editor for hacking on simulations, great for embedding in your blogs and digital garden.
- Webpack Dependency Graph Analyzer: Analyzes and visualizes webpack's dependency graph.
- Visual Binary Editor: A visual binary editor, because hex editors are overrated! See the prototype.
- Unicode Sprites: Turn a unicode character into a 4x4 binary matrix. Create cool drawings out of unicode strings. See the demo.
- PyVoiceKit: Python learning toolkit built with Pyiodide to create voice assistants in the web. See the prototype.
- DumbAssembler: Use dumb humans to run assembly instructions. See the prototype.
- Mob Sign: Create flashy rainbow signs instantly, good for crowded events, parades and photoshoots.
- Songphracharoen.js: A JavaScript library for adding Thai ceremonial banners to your site.
- Dropbox Online: Drop messages to your friends after camps and workshops. See the demo.
- National ID Card Analyzer: Understand what your 13-digit Thai national id card actually means. See the prototype.
- EventDuty: An early prototype of EventKit; event scheduling management tool for tech events.
- Voiz: A silly voice assistant used for teaching JavaScript to kids.
- Git Garden: Visualizes your git commit history into a grid of trees. More green = more commits. See the prototype.
- GraphQL in 3 milliseconds: A prototype for my GraphQL in Rust talk
- Glassmorphic UI: Glassmorphic-style UI components for the web. See the demo.
- Terminal UI with CSS: Aesthetically pleasing terminal-style UI components for the web. See the prototype.
- Data Oriented Game Engine: A data-oriented game engine written in TypeScript.
- React Rust: Use WebAssembly and Rust in your React apps, from my lightning talk at JSConf.Asia
- Mastering Backend Course: My old TypeScript course back in 2019.
- Truth Table to Verilog: Converts a truth table into Verilog code.
- Asmterpreter: Interactive Assembly Interpreter, written in TypeScript and React.
- Prototypal Assembler: A Kotlin REPL to play and experiment with assembly.
- Advent of Code.rb: Poom's Advent of Code solutions in Ruby.
- JWCx Grading: Submission grading system with React, Firebase, Ant Design and Redux Saga. See the demo.
- JWCx Registration: Registration frontend built with React and Redux Saga.
- Launchkey on the web: Use Novation Launchkey on the web.
- Talk to Drumpf: Have a conversation with donald trump. Uses web speech recognition API. See the prototype.
- Muay Lumken: What is the superstitious meanings behind your phone number? Powered by traditional Thai dark magic and a sprinkle of regular expressions and SAT equation solver.
- Algorithms in TypeScript: Exploring algorithms and data structures in TypeScript.
See my other projects and writings at https://poom.dev
Here are some of my talks. More slides and talk recordings will be shared soon!
- Building an open-source design system for Thais, at CSS Meetup 16/08/2023, timestamp 02:17:39.
- Copilot for Polyglot Programmers, at Microsoft GitHub Copilot Meetup
- Building open source to make Bangkok suck less, at FOSSAsia Summit 2023
- Building a data-oriented game engine at TypeScript Bangkok Meetup
- Building an MVP for Developers at KU Startup Camp
- AI Trends: Human and Machine Symbiosis at KMITL Lifelong Learning Centre
- How to learn almost anything at KMUTT University
- GraphQL in three milliseconds with Rust, at GraphQL Bangkok meetup.
- Building Brikl: Frontend Monorepo at Scale
- You might (not) need advanced types for TypeScript Berlin Meetup #4.
- Building Magic at TEDxYouth Bangkok
- For the love of WebAssembly, Tencent OpenHouse, at timestamp 59:30
- Hacking on Libra with Rust at Libra Developer Meetup, timestamp 26:42
- CodeMania Conference
- React Bangkok 3.0.0
- WebAssembly in Action, at JSConf.Asia (Lightning Talk)
- More talks are available at my website.
I've co-founded, organized and hosted a number of developer community projects, hackathons, meetups, workshops and events in Bangkok, Thailand since 2017. There is quite a lot of stories and memories behind these projects. It takes a lot of time and effort to do this, but it's totally worth it. Come join us in Bangkok!
- Bangkok Open Source Hackathon
- The Stupid Hackathon Thailand series (2017 - 2023)
- Hacktoberfest Thailand series (2019 - 2023)
- Garden Zero Hack Club series
- How to learn almost anything series
- Side Projects Showdown
- Elm for Frontend Developers
- Functional Programming Meetup
- Biological Aesthetic of Nature
- Svelte Bangkok Meetup
- Data-Driven Love series
- Code Golf Party
- Marshmallow Campfire
- GraphQL Meetup Bangkok
- BKK.JS series (2020 - 2023)
- Young Creator's Camp series
- CodePlearn
- More events are available at Creatorsgarten's website
- Contact me via Email at [email protected]
- Ping me on Twitter at @heypoom
- I'm on DEV as @heypoom, and also Reddit as @heypoom
- Need to verify my message? My Keybase is on @phoomparin