# Guilherme Andrade > Guilherme Andrade is a full-stack engineer based in Portugal. Rails, React, TypeScript and Rust since 2017, now building with AI agents. Available for consulting projects. Personal site of Guilherme Andrade: work history, side projects, writing and a contact form. Every page has a Markdown version at the same address with .md (the home page is /index.md). ## Pages - [Home](https://guilherme-andrade.com/index.md): work, side projects, career timeline, about and contact details - [Writing index](https://guilherme-andrade.com/writing/index.md): all articles, newest first ## Writing - [Guardrails first: how I make AI do the right job, fast](https://guilherme-andrade.com/writing/guardrails-first.md): From Claude config files to OpenSpec to custom lint rules and dependency checks: how I moved the rules for AI agents from prose the model… - [Home automation got cheap: Home Assistant on a Pi with Claude](https://guilherme-andrade.com/writing/home-automation-got-cheap.md): Why home automation now costs a fraction of what it used to, how to keep a Home Assistant setup on a Raspberry Pi secure, and what you can… - [Building 3D models in SketchUp with Claude Code](https://guilherme-andrade.com/writing/sketchup-with-claude-code.md): How I modelled a house renovation in SketchUp without knowing SketchUp: a parametric Ruby model driven by Claude Code, about 34 versions in… - [tailwindcss-rb alpha released](https://guilherme-andrade.com/writing/tailwindcss-rb-alpha-released.md): Tailwindcss-rb is as a (sort of) simple Ruby gem that aims to bring Tailwind CSS writing into a more Ruby-friendly environment. - [What the Rails documentation doesn't tell you: three developer challenges](https://guilherme-andrade.com/writing/what-rails-documentation-doesnt-tell-you.md): As a Rails app grows, the documentation stops having answers. - [Mastering data mapping in Rails with dry-transformer](https://guilherme-andrade.com/writing/mastering-data-mapping-in-ruby-on-rails-with-dry-transformer.md): Data mapping is a crucial aspect of Ruby on Rails development, allowing developers to transform and manipulate data seamlessly across… - [Better data validation in Rails with custom types and dry-validation](https://guilherme-andrade.com/writing/enhancing-data-validation-in-ruby-on-rails-with-custom-types-and-dry-validation.md): In the realm of Ruby on Rails development, data validation plays a critical role in ensuring the integrity and reliability of applications. - [Decimal precision issues in PostgreSQL with ActiveRecord](https://guilherme-andrade.com/writing/precision-issues-in-postgres-activerecord.md): When dealing with financial data or any numeric values requiring precise calculations, developers often encounter challenges related to… - [The problem with MVC frameworks](https://guilherme-andrade.com/writing/the-problem-with-mvc-frameworks.md): Join me as I dive into the hidden complexities of Ruby on Rails, where its celebrated simplicity meets challenging realities as our… ## Optional - [Everything in one file](https://guilherme-andrade.com/llms-full.txt): the home page and all articles as Markdown - [RSS feed](https://guilherme-andrade.com/writing/rss.xml): full-text feed of the writing