Frontend technologies
Frontend technologies used in interactive products, trading applications, and mobile and web interfaces.
Interfaces, state, and design systems from shipped products—grouped here and tied to project evidence. frontend engineering goes deeper on the work.
Writing about Frontend
Context Engineering
An agent harness orchestrates memory, tools, skills, and retrieved information so models receive the right context at the right moment.
AI Agents are Infrastructure
Running agents in production means managing tools, state, permissions, and recovery—not just choosing a capable language model.
Intersection of AI and Web3 (Part 2)
How agentic finance, stablecoin payment rails, and decentralized AI infrastructure are starting to connect in real products.
Why I still use Expo
OTA updates, EAS cloud builds, and shared TypeScript from production React Native work.
Agentic Finance
How AP2, x402, and agentic commerce protocols could let AI agents authorize payments and settle transactions with stablecoins.
AI Model Context Protocol (MCP)
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
How retrieval-augmented generation works, and how to implement it with TypeScript SDKs, embeddings, and vector stores.
The Skillset of a Product Engineer
Why product engineers take ownership of user needs, interfaces, and systems instead of working within one technical layer.
EVM on Bitcoin - The Future of DeFi
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
How Runes represents fungible tokens through Bitcoin's UTXO model, and what its design does and does not provide.
Engineering Principles
The principles I use to balance software quality, reliability, and delivery speed across products and technical stacks.
Math in JavaScript and DeFi
Floating-point quirks, precision, and BigInt choices I use when JavaScript math has to hold up in DeFi contracts and onchain apps.
When React Compiler Replaces Manual Memoization
Why React Compiler reduces the need for useMemo, useCallback, and memo—and when those APIs still matter.
Fractal Components in React
How I organize React applications into self-similar modules and compound components to keep features manageable as they grow.
Modern Next.js Web3 Architecture
How I structure Next.js Web3 applications using URL state, colocated features, TanStack Query, wagmi, and viem.
Introducing BasilicEVM
A look at my EVM starter for wallet connections, contract types, and chain interactions using Foundry, viem, and wagmi.
Architecture Decision Records
How I use ADRs to capture technical decisions, tradeoffs, and context so teams can revisit them with confidence.
Comparing Ethers.js and Viem/Wagmi
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
A July 2024 snapshot of shared infrastructure between AI and Web3: compute, identity, data, and open networks.
Async Patterns in React
How I keep asynchronous logic in TypeScript services and connect it to React with TanStack Query and reusable hooks.
Conventions for React Apps
My conventions for naming, collocation, state, and folder structure in React applications as features become more complex.
TypeScript Generation from GraphQL
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
Tips for improving your GitHub workflow in software development.
Nodeschool International Day 2016
JavaScript and Node.js through in-person workshops
Paintball.js recap
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
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
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
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
Understanding mocks, stubs, and spies in unit testing
Introduction to Unit Testing
Getting started with unit testing in JavaScript
NodeJS HTTPS and SSL Certificate for Development
Setting up HTTPS and SSL certificates for Node.js development
Introduction to Gulp.js
Getting started with Gulp.js build system
Developing Software in Costa Rica
The software development ecosystem in Costa Rica
Data Visualization in Costa Rica
Data Visualization meetup in Costa Rica
My Favorite JavaScript and Engineering Podcasts
Simply the best Javascript podcast out there.