Interfaces, state, and design systems from shipped products—grouped here and tied to project evidence. frontend engineering goes deeper on the work.
Frontend technologies
CSS- 19 projects
Layout and responsive styling for ecommerce navigation, energy dashboards, and early client marketing sites.
TypeScript- 18 projects
Shared type layer across trading data, auction contracts and indexers, and the admin, mobile, and API packages of AI assistants.
React- 17 projects
Component model for web UIs across trading interfaces, admin dashboards, and marketplace screens in Next.js and standalone apps.
JavaScript- 16 projects
Client and server scripting for community platforms, ecommerce navigation, energy dashboards, and early full-stack products.
Tailwind CSS- 12 projects
Utility-first styling for trading interfaces, AI dashboards, virtual-world shells, and marketplace UIs across Next.js and React apps.
GraphQL- 7 projects
Typed API layer for blockchain subscriptions, exchange data, onchain ratings, and marketplace services.
Next.js- 7 projects
Full-stack React framework for trading apps, auction platforms, AI assistants, and virtual-world experiences with SSR and server components.
React Native- 5 projects
Cross-platform mobile for neobank apps, AI assistants, EOS wallets in chat apps, and retail AR previews.
TanStack Query- 4 projects
Server data caching for RAG assistants, auction platforms, options trading, and chatbot interfaces on Next.js.
AngularJS- 3 projects
SPA framework for subscription apps, flight-information dashboards, and fitness trackers in early full-stack products.
Bootstrap- 3 projects
Responsive grid toolkit for energy dashboards, WordPress sites, and early subscription web apps.
nuqs- 3 projects
URL state synchronization for auction filters, trading views, and shareable assistant pages on Next.js.
shadcn/ui- 3 projects
Accessible React component layer for options trading, auction screens, and AI assistant interfaces on Next.js.
MooTools- 2 projects
JavaScript framework for responsive medical landing pages in early client work.
Redux- 2 projects
Shared application state for retail AR features and photo editor commerce workflows in React Native and web apps.
Wagmi- 2 projects
React hooks on Viem for wallet connection, contract calls, and token balance subscriptions in Opyn's trading app and Bitlauncher's auctions.
Data Charts- 1 project
Interactive energy-consumption visualizations for Gridium's commercial-building monitoring dashboard.
Expo- 1 project
React Native toolchain for LegalAgent's voice assistant and realtime speech on mobile.
LESS- 1 project
CSS preprocessor for ARINC Microfids' AngularJS flight-information display styling.
Stitches- 1 project
CSS-in-JS styling for Bitcash's React exchange interface alongside Zustand client state.
TanStack Form- 1 project
Headless form layer for LegalAgent's document categorization and system prompt management in the admin dashboard.
TanStack Start- 1 project
Full-stack React framework with file-based routing and server functions for LegalAgent's admin dashboard and document workflows.
ViroAR- 1 project
Augmented-reality product previews in the Tractor Supply React Native retail app.
WebGL- 1 project
In-browser 3D rendering for ZTX's EVM wallet connector embedded inside the virtual-world canvas.
Zustand- 1 project
Client state management for Bitcash's peer-to-peer exchange interface alongside Stitches styling.
Writing about Frontend
Context Engineering
September 30, 2026
Skills and memory files decide what an agent keeps between sessions, and an eval decides what the next run is allowed to see.
AI Agents are Infrastructure
May 20, 2026
Managed, self-hosted, and hybrid AI agents, and why the runtime, tools, and permissions around the model decide product behavior more than benchmarks do.
Intersection of AI and Web3 (Part 2)
November 13, 2025
Agentic finance, stablecoin rails, and decentralized AI infrastructure after a year of building at the intersection.
Why I Still Use Expo
October 1, 2025
OTA updates, EAS cloud builds, and shared TypeScript from production React Native work.
Agentic Finance
September 30, 2025
AP2, x402, and OpenAI's agentic commerce work let AI agents hold mandates and settle in stablecoins, which moves them from giving financial advice to executing it.
AI Model Context Protocol (MCP)
June 8, 2025
What the Model Context Protocol standardizes about connecting models to tools and data, and how I structure MCP-style tools, composition, and memory in TypeScript.
RAG with TypeScript
June 2, 2025
How retrieval-augmented generation works, and the TypeScript SDKs and vector stores I would use to build it in a Node.js stack.
The Skillset of a Product Engineer
March 25, 2025
What I look for in a product engineer—ownership across product, interface, and systems, not a title swap for frontend or backend.
EVM on Bitcoin - The Future of DeFi
March 17, 2025
The Layer 2s, sidechains, and token standards bringing programmability to Bitcoin, and what EVM compatibility through projects like SovaEVM adds for Solidity developers.
The Power of Bitcoin Runes
March 2, 2025
How Bitcoin Runes tracks tokens in Bitcoin's UTXO model instead of inscriptions, and the applications being built on it a year after launch.
Engineering Principles
February 25, 2025
Principles I use across web and blockchain work—quality, reliability, and shipping speed in the same conversation, independent of stack.
Math in JavaScript and DeFi
January 19, 2025
Floating-point quirks, precision, and BigInt choices I use when JavaScript math has to hold up in DeFi contracts and onchain apps.
useMemo and useCallback Are (Mostly) Obsolete
January 17, 2025
Recent React and the React Compiler make useMemo and useCallback unnecessary in most components, and profiling tells you where they still help.
React Fractal Compoundnents
November 25, 2024
How I structure React apps with self-similar folders and compound components so small modules stack into larger features without layout debt.
Modern Next.js Web3 Architecture
October 1, 2024
URL state, collocation, React Query, wagmi, and viem in Next.js Web3 apps.
Introducing BasilicEVM
August 15, 2024
BasilicEVM is the EVM starter I use for wallets, types, and chain integration, built on Foundry, viem, wagmi, and shared TypeScript.
Architecture Decision Records
July 20, 2024
How Architecture Decision Records keep context, tradeoffs, and consequences on record when teams revisit decisions months later.
Comparing Ethers.js and Viem/Wagmi
July 20, 2024
How Ethers.js and Viem with Wagmi differ on bundle size, modularity, types, and React integration, and where each one runs at Bitlauncher.
The Intersection of AI and Web3
July 7, 2024
A July 2024 snapshot of shared infrastructure between AI and Web3: compute, identity, data, and open networks.
Async Patterns in React (PolkadotJS)
September 5, 2023
Keep async core logic in vanilla TypeScript services and consume it from React with TanStack Query or react-use hooks, using PolkadotJS as the example.
Conventions for React Apps
January 29, 2023
File naming, collocation, state, and structure I use in React apps.
TypeScript Generation from GraphQL
January 19, 2020
Two talks on TypeScript and GraphQL, one on generating types from a schema with Codegen at GraphQL Texas and one in Spanish for PanamaJS.
Enhancing Your GitHub Workflow
August 8, 2018
Tips for improving your GitHub workflow in software development.
Nodeschool International Day 2016
June 7, 2016
JavaScript and Node.js through in-person workshops
Paintball.js recap
May 30, 2016
At Costa Rica JS this time we broke the mold a bit and went to Under Fire Paintball territory.
Best Practices for Designing RESTful APIs
October 3, 2015
When designing an API, there are important decisions that have a great impact on the way other applications will interact with the service...
Automatic Node.js Version Switching
July 18, 2015
When working on multiple Node.js projects it is important to configure your development environment to automatically switch to right node version for a particular project.
On Continuous Delivery
July 10, 2015
Continuous delivery is practice in software development in which development teams work in a way that allows companies to update their systems at any point in time or continuously through automated processes, the system's code base is always deployable and tested.
Unit Testing - Mocks, Stubs and Spies
September 15, 2014
Understanding mocks, stubs, and spies in unit testing
Introduction to Unit Testing
September 1, 2014
Getting started with unit testing in JavaScript
NodeJS HTTPS and SSL Certificate for Development
August 15, 2014
Setting up HTTPS and SSL certificates for Node.js development
Introduction to Gulp.js
April 15, 2014
Getting started with Gulp.js build system
Developing Software in Costa Rica
January 15, 2014
The software development ecosystem in Costa Rica
Data Visualization in Costa Rica
August 1, 2013
Data Visualization meetup in Costa Rica
My Favorite JavaScript and Engineering Podcasts
December 22, 2012
Simply the best Javascript podcast out there.