# Guilherme Andrade

Full-stack engineer · AI-driven development. Full-stack engineer at RemoteLock. Rails, React, TypeScript and Rust, since 2017.

- Based in: Portugal
- Open to: Consulting projects
- Email: inbox@guilherme-andrade.com
- GitHub: https://github.com/guilherme-andrade
- LinkedIn: https://linkedin.com/in/guilherme-andrade
- Site: https://guilherme-andrade.com/

## Statement

I build web products that stay simple as they grow. Clean architecture, careful interfaces, and code the next person can read.

## Work

### RemoteLock (Apr 2024 – now)

Cloud access control for smart locks.

RemoteLock lets property managers and businesses run smart locks, access codes and schedules from one place. I joined in April 2024 and work across the product, from the web app to the services behind it.

Role: Full-stack engineer · Since: April 2024 · Stack: Rails · React · TypeScript · AWS

- Building the next version of the web app, released to customers alongside the classic one and rolled out account by account behind feature flags.
- Built a virtual intercom product end to end: residents, a guest directory at the door, and browser calls with abuse safeguards.
- Unified admin sign-in across the lock-maker integration services, and moved the web app to per-environment deploys.
- Product analytics dashboards that track feature adoption and its effect on revenue.

### Algrano (Jul 2023 – Apr 2024)

Direct-trade coffee platform between roasters and producers.

A Swiss platform that handles the whole coffee trade between roasters and producers: payment, logistics and quality checks. I worked across the commercial and internal platforms and pushed the codebase toward domain-driven design.

Role: Full-stack developer · Team: 4 engineers, 2 designers, PO, analyst · Stack: Rails · PostgreSQL · Heroku · Method: Shape Up

- Rebuilt the order page around a predictive pricing tool that forecasts warehousing costs, now used by the largest clients to manage their margins.
- Led the move of the static pages to Webflow, including the nginx routing, so marketing could update content without engineering.

### Ring Twice (Jun 2021 – Jun 2023)

Belgian marketplace for local services.

Ring Twice, formerly ListMinut, connects people with trusted service providers nearby. I joined as a backend engineer and grew into leading the architecture of both backend and frontend.

Role: Full-stack engineer · Stack: Rails · React · TypeScript · PostgreSQL

- Designed the backend for authentication, payments and search on Rails and PostgreSQL.
- Led the move to a hexagonal architecture with functional patterns from dry-rb and Hanami.
- Owned the React and TypeScript frontend, with Cypress end-to-end tests, and mentored junior developers.

### Go Vocal (Oct 2020 – May 2021)

Open-source civic participation platform, formerly CitizenLab.

Go Vocal, known as CitizenLab when I worked there, helps citizens share ideas with their local government and take part in decisions. I built features end to end on the Engagement team's multi-tenant Rails platform and its React client.

Role: Fullstack engineer · Stack: Rails · React · TypeScript · AWS · Terraform

- Introduced Shape Up to scope and prioritise the team's work.
- Shipped Engagement Platform features across the JSON:API backend and the React client.

### Coloc Housing (Nov 2019 – Jul 2020)

Shared housing in Brussels.

Coloc Housing runs shared houses for young professionals in Brussels.

Location: Brussels

### Le Wagon (Feb 2017 – Oct 2019)

Coding bootcamp: teaching assistant, then lead teacher.

Le Wagon teaches career changers to build web products with Ruby on Rails in nine weeks. I spent a year as a teaching assistant, then became a lead teacher, running lectures and helping students ship their final projects. I took freelance projects alongside.

Role: Teaching assistant, then lead teacher · Also: Freelance projects

## Side projects

### Ragomotive

RAG-powered MCP servers for businesses.

Ragomotive turns a business's own documents and tools into MCP servers that AI assistants can query, with retrieval over its knowledge base. A multi-tenant Rails 8 app.

Role: Design and engineering · Stack: Rails · PostgreSQL · pgvector · Since: Mar 2026

### Campbooks

An inbox that sorts itself.

An AI-native email client for young professionals and small-business owners buried in email and paperwork. It sorts the inbox by itself, keeps track of who is waiting on you, and files the invoices and documents that arrive by mail.

Role: Design and engineering · Stack: Rust · Tauri · React · TypeScript · Source: github.com/notacamp/campbooks

### Applicamp

Job-hunting agents that ask before they act.

Applicamp knows your profile and goals, finds remote jobs on public boards, tailors a CV for each one, prepares the application and drafts your recruiter replies. The agents run in sandboxes, and nothing goes out under your name until you approve it.

Role: Design and engineering · Stack: Rust · TypeScript · PostgreSQL · Source: github.com/notacamp/applicamp

## Timeline

- Feb 2017 – Oct 2019  Le Wagon
- Nov 2019 – Jul 2020  Coloc Housing
- Oct 2020 – May 2021  Go Vocal
- Jun 2021 – Jun 2023  Ring Twice
- Jul 2023 – Apr 2024  Algrano
- Apr 2024 – now       RemoteLock
- Jul 2024             tailwindcss-rb (side project / milestone)
- Nov 2025             First MCP server (side project / milestone)
- Mar 2026             Ragomotive · RAG (side project / milestone)
- May 2026             Campbooks (side project / milestone)
- Oct 2026             Applicamp (side project / milestone)

How the code gets written: by hand from 2017; AI-assisted with GitHub Copilot from mid 2021; AI-driven with Claude Code since August 2025.

## Writing

- [Guardrails first: how I make AI do the right job, fast](https://guilherme-andrade.com/writing/guardrails-first.md) (2026-11-03, Essay): 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) (2026-11-03, Essay): 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) (2026-11-03, Essay): 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) (2024-11-02, News): 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) (2024-11-02, Tutorial): 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) (2024-04-25, Tutorial): 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) (2024-04-25, Tutorial): 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) (2024-04-25, Essay): 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) (2023-11-15, Essay): Join me as I dive into the hidden complexities of Ruby on Rails, where its celebrated simplicity meets challenging realities as our…

## About

I'm a full-stack web developer based in Portugal. I started in 2017, taught at Le Wagon, and have since built products with Rails and React for startups and established companies.

Today I'm a full-stack engineer at RemoteLock. I also take on consulting projects, and build side projects: Campbooks, an inbox that sorts itself, and Applicamp, job-hunting agents that ask before they act.

Since 2025 I build with AI agents doing most of the typing. My work now is the specs, rules and checks that keep that code correct, and I write about how that works.

- **Frontend: Interfaces.** React and TypeScript apps, component libraries on design tokens, and screens that work from 390px up.
- **Backend: Systems.** Rails APIs and services on PostgreSQL, and Rust where speed or correctness matters.
- **Architecture: Structure.** Modular codebases with enforced boundaries, spec-first changes, and CI that answers yes or no.
- **AI workflows: Guardrails.** Agent-driven development that stays correct: specs, rules, binary checks, and AI review that can be disputed.

## Contact

Email inbox@guilherme-andrade.com, or use the form at https://guilherme-andrade.com/#contact. I reply within two working days. Open to consulting projects.
