Schrijven over Rails, AI, en de rommelige delen van echt draaiende productie-software.
Long-form posts die ik voor mezelf van later schrijf. Twee, drie per week. Als je TTB inhuurt is dit het brein dat je inhuurt.
Hotwire Native voor Rails: bouw iOS- en Android-apps zonder React Native of Flutter
Hotwire Native voor Rails: lever native iOS- en Android-apps uit je Rails views met bridge components, path configuration en zonder React...
Postgres Logical Replication voor Rails: Zero-Downtime Major Version Upgrades en Database-Migraties
Postgres logical replication voor Rails: zero-downtime major version upgrades, provider-migraties en database-splitsingen met publisher, ...
Van Sidekiq naar Solid Queue migreren: Zero-downtime gids voor productie Rails-apps
Sidekiq to Solid Queue migratie: dual-running, Redis-queues legen, cron migreren, monitoring en een veilig rollback-plan voor productie R...
Rails Action Mailbox: Inkomende e-mails verwerken in productie met Postmark, Mailgun en SendGrid
Rails Action Mailbox gids: verwerk inkomende e-mails in productie met Postmark, Mailgun, SendGrid; route per domein, bijlagen, replies pa...
Rails Claude Vision API: gestructureerde data uit PDFs, bonnen en screenshots halen met Anthropic
Rails Claude Vision API gids: haal gestructureerde data uit PDFs, bonnen en screenshots met Anthropic, valideer JSON output en breng naar...
Rails Active Job Retries: Exponential Backoff, Circuit Breakers en Dead Letter Queues
Rails Active Job retries: exponential backoff, circuit breakers, dead letter queues, idempotentie en productiepatronen voor robuust achte...
Rails Stimulus Controllers: Productiepatronen Voorbij de Counter-Tutorial
Rails Stimulus controllers in productie: targets, values, outlets, lifecycle, debouncing, foutafhandeling, testpatronen en anti-patronen ...
Rails AI Agents: Autonome Multi-Step Workflows met Claude en Tool Use
Rails AI agents die werken in productie — agent loop, tool registry, state machines, retries, kostenbeheersing en observability met Claud...
Rails ViewComponent: Herbruikbare UI-componenten, testen en performance voorbij partials
Rails ViewComponent vervangt partials door testbare, herbruikbare UI-componenten. Setup, slots, previews, performancecijfers en migratiep...
Rails 8 Solid Cable: ActionCable WebSockets Zonder Redis Met Postgres
Rails 8 Solid Cable vervangt Redis voor ActionCable WebSockets. Volledige setup, cable.yml-config, LISTEN/NOTIFY-internals, schaal-limiet...
Rails Read Replicas: Multiple Databases Setup met Automatische Connection Switching
Rails read replicas met multiple databases: volledige database.yml setup, automatische connection switching, replica lag afhandeling en p...
Senior Rails Engineer Interview: De Wervingsrubric van een Fractional CTO voor 2026
Senior Rails Engineer Interview rubric van een fractional CTO met 19 jaar Rails. De vragen, scoring, signalen en red flags die ik gebruik...
Ruby MCP Server: Bouw een Model Context Protocol Server in Rails voor Claude en Cursor
Ruby MCP Server in Rails: bouw een Model Context Protocol server, ontsluit tools en resources naar Claude en Cursor met auth en productie...
Anthropic Message Batches in Rails: 50% Lagere Claude API Kosten met Asynchrone Batch Processing
Anthropic Message Batches in Rails: 50% lagere Claude API kosten met asynchrone batch processing, Solid Queue polling en idempotente resu...
Rails 8 Authentication Generator: Bouw Productie-Sessies Zonder Devise
Rails 8 authentication generator in productie: sessies, wachtwoord reset, rate limiting, OAuth en het migratiepad vanaf Devise na negenti...
Rails Postgres Table Partitioning: Tijd-Gebaseerde Partities voor Grote Tabellen in Productie
Rails Postgres table partitioning voor enorme tabellen: tijd-gebaseerde partities, pg_partman, indexen, valkuilen en een no-downtime migr...
Anthropic Prompt Caching in Rails: Claude API-kosten Verlagen met de Anthropic Ruby SDK
Anthropic prompt caching in Rails: verlaag Claude API-kosten tot 90% met de Anthropic Ruby SDK. Productiepatronen, valkuilen en echte cij...
Rails Postgres Advisory Locks: Stop Cron-Overlap en Race Conditions in Productie
Rails Postgres advisory locks: stop cron-overlap, race conditions en dubbele verwerking. Productiepatronen en valkuilen na negentien jaar...
Rails Pundit Authorization: Productiepatronen voor Multi-Tenant SaaS Applicaties
Rails Pundit authorization voor multi-tenant SaaS: scopes, policies, role-based access en de productievalkuilen die teams in hun eerste s...
Rails Puma Tuning: Workers, Threads, Geheugen en Concurrency voor Productie Performance
Rails Puma tuning in productie: worker-aantal kiezen, threadpool grootte, geheugenbudget en de copy-on-write instellingen die echt versch...
Rails Solid Cache: Database-Backed Caching in Rails 8 Zonder Redis of Memcached
Rails Solid Cache in productie: disk-backed caching in Postgres, encryptie, eviction, trimmen, sizing en wanneer het Redis of Memcached v...
Rails RAG: Bouw een productie-klare Retrieval Augmented Generation-pijplijn met Claude en pgvector
Rails RAG-gids: bouw een productie retrieval augmented generation-pijplijn met pgvector, Claude en streaming. Echte code, echte chunking,...
Postgres Autovacuum Tunen voor Rails: Stop Table Bloat en Transaction ID Wraparound in Productie
Postgres autovacuum tunen voor Rails in productie. Stop table bloat, voorkom transaction ID wraparound en tem lock storms met praktische ...
Rails Solid Queue: Background Jobs in Postgres Zonder Redis of Sidekiq
Rails Solid Queue in productie: Postgres-backed background jobs, configuratie, concurrency, scheduled tasks, en wanneer je beter op Sidek...
Rails Postgres JSONB: Querypatronen, Indexering en Best Practices in Productie
Rails Postgres JSONB in productie: querypatronen, GIN-indexen, store_accessor, veilige migraties en wanneer je JSONB kiest boven genormal...
Rails Full-Text Search: pg_search, tsvector en Postgres Zonder Elasticsearch
Rails full-text search met pg_search: tsvector-indexen, gerangschikte resultaten, trigram-overeenkomst en waarom Postgres Elasticsearch v...
Rails Active Storage S3: Direct Uploads, Varianten en Productieconfiguratie
Rails Active Storage S3 direct uploads: afbeeldingsvarianten, achtergrondverwerking, presigned URL's, bestandsbeveiliging en volledige pr...
Rails Webhook Processing: Handtekeningverificatie, Idempotentie en Achtergrondverwerking
Rails webhook processing goed gedaan: HMAC-handtekeningverificatie, idempotente handlers, Stripe- en GitHub-voorbeelden, achtergrondtaken...
Ruby on Rails Feature Flags: Complete Guide met Flipper, Rollout en Custom Redis Implementatie
Ship Rails features veilig met feature flags. Flipper setup, custom Redis flags, percentage rollouts, CI/CD integratie, teststrategieën e...
Wat ik eerst doe als ik een legacy Rails codebase overneem
Een praktisch raamwerk voor de eerste 30 dagen bij het overnemen van een Rails-app van iemand anders. Waar kijk je, wat pak je eerst aan,...
LLM Function Calling in Rails: De Model Leren Je App te Gebruiken
Met function calling kunnen LLM's direct jouw Rails-code aanroepen. Zo bouw je betrouwbare tool-integraties die het in productie volhouden.
PgBouncer en Rails: Connection Pooling Zonder Databasecrashes
De meeste Rails-apps lopen vroeg of laat vast op Postgres-verbindingslimieten. Zo configureer je PgBouncer correct—inclusief de valkuilen...
Technische Due Diligence op een Rails Codebase: Wat Ik Echt Controleer
Voordat je een bedrijf overneemt of start als fractional CTO — dit is de Rails-codebase audit die ik elke keer uitvoer, en wat de bevindi...
LLM-antwoorden streamen in Rails: stop met gebruikers naar een laadspinner laten staren
Voeg realtime streaming toe aan je Rails LLM-features met Action Controller::Live en Server-Sent Events. Praktische code, Puma-threads en...
Een Rails-app upgraden zonder alles plat te gooien
Een incrementele strategie voor het upgraden van legacy Rails-apps van 6.1 naar 8.0 in productie — zonder je team zes maanden stil te leg...
Semantisch Zoeken in Rails met pgvector: Van Nul tot Productie
Voeg semantisch zoeken toe aan je Rails-app met pgvector en OpenAI-embeddings. Echte code, echte migraties en productieoptimalisatie met ...
Rails ActiveRecord Callbacks: Wanneer Ze Helpen en Wanneer Ze Je Bijten
ActiveRecord callbacks besparen tijd tot ze onvindbare bugs veroorzaken. Leer welke callbacks veilig zijn, welke je beter kunt vermijden,...
Bouw Custom Rails 8 Generators om Repetitieve Boilerplate te Elimineren
Stop met het kopiëren van dezelfde service object structuur. Schrijf in minder dan 30 minuten een custom Rails generator die de patronen ...
Ruby Ractors: Echte Parallelle Verwerking Zonder de GVL
Ruby’s Global VM Lock (GVL, voorheen GIL) was jarenlang het standaardargument om naar Go of Elixir te grijpen voor echte parallelle verwe...
Memory Leaks Debuggen in Ruby on Rails: Een Praktische Productiegids
Memory leaks in Rails-apps zijn zelden echte leaks — het is onbegrensde groei door caches, string-retentie en vergeten callbacks. Zo vind...
Rails Credentials: Secrets Beheren in Productie Zonder Gek te Worden
Rails credentials bieden ingebouwd versleuteld secrets-beheer. Zo stel je ze in per omgeving, roteer je keys, en vermijd je de valkuilen ...
Kamal 2 Deploy Rails: Zero-Downtime Deployments Zonder Kubernetes
Kamal 2 geeft Rails-teams zero-downtime deployments op bare metal of VPS zonder de complexiteit van Kubernetes. Deze gids behandelt setup...
Rails N+1 Queries: Vinden, Fixen en Voorkomen in Productie
N+1 queries zijn de meest voorkomende performance-killer in Rails. Zo detecteer je ze met Bullet en strict_loading, fix je ze met include...
Ruby method_missing: Wanneer Gebruiken en Wanneer Hard Wegrennen
method_missing is Ruby's krachtigste én meest misbruikte metaprogramming-tool. Zo gebruik je het correct in productie, met echte voorbeel...
Rate Limiting in Rails met Rack::Attack: Een Productie-configuratiegids
Configureer Rack::Attack in Rails 8 om misbruik te throttlen, kwaadwillenden te blokkeren en je API-endpoints te beschermen. Met producti...
Ruby Refinements: Scoped Monkey Patching Zonder Risico
Ruby refinements laten je klassen aanpassen binnen een gecontroleerde scope in plaats van globaal. Leer wanneer je ze gebruikt, hoe ze on...
Rails 8 load_async: Voer Database Queries Parallel Uit en Halveer je Responstijden
Gebruik load_async, async_count en async_sum in Rails 8 om database queries te paralleliseren. Met benchmarks die 40-60% snellere control...
Snelle Rails Tests: Hoe Minitest en Fixtures je Testsuite Versnellen
Versnel je Rails testsuite door over te stappen van factories naar fixtures en effectief gebruik te maken van Minitest. Met benchmarks, m...
AI Code Review voor Rails: Tools en Workflows die Echt Bugs Vinden
Hoe je AI-geassisteerde code review instelt in Rails projecten met GitHub Copilot, Claude en custom prompts. Echte voorbeelden van gevond...
Ruby Struct vs Data: Het Juiste Value Object Kiezen in Ruby 3.2+
Een praktische vergelijking van Ruby's Struct en Data klassen voor het bouwen van value objects. Benchmarks, use cases en migratiepatrone...
Rails 8 Propshaft: Migreren van Sprockets (Stap voor Stap)
Propshaft heeft Sprockets vervangen als standaard asset pipeline in Rails 8. Bij een upgrade van een bestaande app gaat de migratie niet ...
Ruby Lazy Enumerators: Verwerk Miljoenen Rijen Zonder Geheugenexplosie
Leer hoe Ruby's Lazy Enumerators enorme datasets regel voor regel verwerken met stabiel geheugengebruik. Inclusief benchmarks, productiep...
Rails Concerns: Wanneer Ze Code Opschonen en Wanneer Ze Complexiteit Verbergen
Een praktische gids voor Rails ActiveSupport::Concern met echte voorbeelden van goed en slecht gebruik. Leer wanneer concerns duplicatie ...
Rails 8 Meerdere Databases: Read Replicas, Sharding en Automatische Connectie-switching
Hoe je meerdere databases configureert in Rails 8 met read replicas, horizontale sharding en automatische role switching. Inclusief produ...
Custom Rack Middleware in Rails 8: Een Praktische Gids met Concrete Voorbeelden
Hoe je custom Rack middleware schrijft, test en deployt in Rails 8. Met voorbeelden voor request timing, tenant detectie, request ID prop...
Rails 8 Solid Cache: Weg met Redis en Memcached
Solid Cache slaat je Rails cache op in de database in plaats van Redis of Memcached. Als je Rails 8 draait, kun je vandaag nog een comple...
Docker Multi-Stage Builds voor Rails 8: Maak je Image 60% Kleiner
Stapsgewijze handleiding voor het bouwen van productie Docker images voor Rails 8 met multi-stage builds. Verklein je image van 1.2GB naa...
Ruby Proc vs Lambda: De Echte Verschillen en Wanneer Je Welke Gebruikt
Een praktische vergelijking van Ruby Procs en Lambdas: argumentafhandeling, return-gedrag en concrete toepassingen in Rails-applicaties. ...
Ruby Pattern Matching: Van Basis case/in tot Productie-toepassingen
Ruby’s pattern matching, geïntroduceerd in Ruby 2.7 en gestabiliseerd in Ruby 3.0, biedt een manier om complexe datastructuren te destruc...
Technische Schuld Prioriteren: Een Framework Dat Echt Werkt
Een praktisch framework om technische schuld te prioriteren in startups en groeiende teams. Met scoringsmethoden, concrete voorbeelden en...
Ruby frozen_string_literal: Wat het doet en hoe je het gebruikt in productie
Leer wat Ruby's frozen_string_literal magic comment doet, hoe het geheugenallocatie vermindert en mutatie-bugs voorkomt, en hoe je het ad...
Ruby YJIT in Productie: Hoe Je Het Activeert en Welke Prestatiewinst Je Kunt Verwachten
Een praktische gids voor het activeren van YJIT in Ruby 3.3 voor productie Rails-apps. Configuratie, geheugenafwegingen, echte benchmarks...
OpenTelemetry in Rails 8: Productie-Observability Opzetten in 30 Minuten
Een stap-voor-stap handleiding voor het instrumenteren van een Rails 8 applicatie met OpenTelemetry voor traces, metrics en logs. Inclusi...
Rails Turbo Frames: Dynamische UI's Bouwen Zonder JavaScript
Hoe je Turbo Frames in Rails 8 gebruikt voor snelle, dynamische interfaces met lazy loading, inline editing en frame-navigatie — zonder c...
Ruby Memoization Patterns: Voorbij de Standaard ||= Operator
Productie-geteste Ruby memoization patterns inclusief ||=, fetch-gebaseerde caching, multi-argument memoization en thread-safe benadering...
Rate Limiting voor je Rails API met Rack::Attack (Stap voor Stap)
Zo voeg je rate limiting toe aan een Rails 8 API met Rack::Attack. Throttling, blocklists, custom responses en productieconfiguratie met ...
Rails Database Indexing: Trage Queries Oplossen Met de Juiste Indexstrategie
Praktische gids voor database-indexering in Rails. Behandelt composite indexes, partial indexes, expression indexes en hoe je ontbrekende...
ActiveRecord Encryption in Rails 7+: Versleutel Gevoelige Data Zonder Je ORM te Verlaten
Een praktische handleiding voor het versleutelen van databasekolommen met ActiveRecord Encryption in Rails 7 en 8. Behandelt setup, key r...
Rails 8 Solid Cable: WebSockets Zonder Redis — Eén Dependency Minder
Solid Cable instellen in Rails 8 voor Action Cable via SQLite of PostgreSQL. Configuratie, prestaties, migratie vanaf Redis, en wanneer j...
Ruby Delegation: Forwardable vs SimpleDelegator vs Rails delegate
Een praktische vergelijking van Ruby's drie delegatie-aanpakken. Wanneer gebruik je Forwardable, SimpleDelegator of Rails delegate — met ...
Rails 8 deployen met Kamal 2: Een complete productie-setup vanaf nul
Stap-voor-stap handleiding voor het deployen van Rails 8 met Kamal 2. Server setup, Docker-configuratie, SSL, database migraties en de va...
Ruby GC Tuning: Minder Geheugenverbruik en Snellere Response Times in Productie
Praktische Ruby garbage collection tuning voor Rails apps. Echte RUBY_GC_* environment variables, voor/na benchmarks, en de instellingen ...
Ruby Fiber Scheduler: Snelle Async I/O Zonder Callbacks of Threads
Hoe je Ruby's Fiber Scheduler gebruikt voor non-blocking I/O in Ruby 3.3+. Echte benchmarks, praktische voorbeelden en productiepatronen ...
Rails Service Objects: Patronen Die Echt Werken in Productie
Hoe je Rails service objects bouwt die onderhoudbaar blijven. Echte patronen, naamgevingsconventies, foutafhandeling en teststrategieën u...
Rails 8 Authenticatie: De Ingebouwde Generator Die Devise Vervangt
Hoe je authenticatie opzet in Rails 8 met de nieuwe ingebouwde generator. Stap-voor-stap handleiding voor sessies, wachtwoord resets, en ...
Ruby Struct vs Data: Welk Value Object Past Bij Jouw Code?
Een praktische vergelijking van Ruby's Struct en Data klassen voor value objects. Wanneer gebruik je welke, prestatieverschillen, en echt...
Pixevo Bouwen: Technische Uitdagingen Achter een AI-Beeldplatform
Hoe we een multi-model AI-beeldgeneratieplatform bouwden met Rails — workflow engines, real-time verwerking, en de architectuurbeslissing...
Rails Strict Loading: Vang N+1 Queries Voordat Ze Productie Bereiken
Gebruik strict loading in Rails 6.1+ om N+1 queries te detecteren en voorkomen tijdens development. Configuratieopties, per-model en glob...
AI Coding Assistants voor Rails: Wat Werkt en Wat Tijdverspilling Is
Een praktisch overzicht van AI coding assistants (Copilot, Cursor, Claude) in Rails-projecten. Welke taken ze goed doen, waar ze falen, e...
Ruby Ractors: Echte Parallelle Verwerking Zonder de GVL
Hoe je Ruby Ractors gebruikt voor parallelle CPU-gebonden taken in Ruby 3.3+. Praktische voorbeelden, benchmarks en valkuilen uit productie.
Fractional CTO: Wanneer Je Startup Er Een Nodig Heeft (En Wanneer Niet)
Elke startup raakt hetzelfde kantelpunt. Je Rails-app werkt, je eerste klanten betalen, en plotseling staat alles in de fik. Het deploypr...
GitHub Actions voor Rails in 2026: Een CI/CD Pipeline Die Écht Werkt
Een complete GitHub Actions CI/CD pipeline voor Rails: parallelle tests, service containers, lint-first strategie en deployment. Onder 5 ...
Ruby Pattern Matching: Stop met Geneste if/elsif Ketens
Ruby pattern matching met case/in vervangt geneste conditionals voor het destructureren van hashes, valideren van API-responses en parsen...
Multi-Tenancy in Rails: Drie Benaderingen en Wanneer Ze Vastlopen
Scoped queries, schema-per-tenant of database-per-tenant? Een praktische vergelijking van Rails multi-tenancy benaderingen met hun breekp...
Rails Logging Waar Je Daadwerkelijk Mee Kunt Debuggen
Standaard Rails logs zijn verbose en nutteloos onder druk. Zo stel je structured logging in die je helpt problemen snel te vinden — met L...
Background Jobs in Rails: Kiezen tussen Solid Queue en Sidekiq in 2026
Een praktische gids voor het kiezen van de juiste background job backend voor je Rails-app. Wanneer Solid Queue logisch is, wanneer Sidek...
Rails Caching: Wat de Tutorials Je Niet Vertellen
Fragment caching, Russian Doll patterns, cache invalidatie die echt werkt, en de debugging trucs die ik heb geleerd van productie-inciden...
Feature Flags in Rails: Sneller Shippen, Minder Breken
Hoe je feature flags implementeert in Rails-applicaties voor veiligere deployments, geleidelijke rollouts en de mogelijkheid om een slech...
Database Migraties Die Je Niet om 3 Uur 's Nachts Wakker Maken
Praktische technieken voor zero-downtime Rails database migraties. Stop met tabellen locken, begin met doorslapen.
Het is een telefoongesprek. Erger dan dat kan het niet worden.
Geen discovery-deck. Geen 45-minuten "kwalificatiegesprek." 30 minuten, jouw probleem, mijn mening. Als we een fit zijn weet je dat in minuut 12.