Get in touch
The person behind Cavendish

João Paulo
Cavendish

Full-stack software engineer. Founder. Always learning.

I build software with a product and entrepreneurial mindset: understand what matters, choose a practical next step, and make it useful for the business.

Working remotely.

Portrait of João Paulo Cavendish
Driven by solving complex problems
and making businesses work better.
Experience
10+ years in software
Foundation
Java & distributed systems
At Viator
Five years at global scale
Languages
Portuguese, English, French
About me

A full-stack engineer
with a product mindset.

I’m a full-stack software engineer with a speciality in backend engineering. My professional foundation is Java, Spring Boot, AWS, and event-driven systems. I’ve built software in banking, the public sector, and a global travel marketplace, and I also work with React, TypeScript, Next.js, and Node.js.

I run Cavendish, my own consultancy, across product engineering and technical advisory engagements. I’m building TalentScout for a client and Plannifier as a solo founder. I like owning the path from requirements and design to implementation, testing, and rollout.

I care about what the software makes possible for the person using it. That keeps me interested in the business process as much as the code: where work gets stuck, what a useful outcome looks like, and whether the change actually helped.

Work & challenges

Some problems I’ve lived inside.

Large migrations, small operational tools, and products still taking shape. Different scales, the same need to understand the real problem.

CTG / Banque Internationale à Luxembourg

Open Banking

Where software meets financial rules.

I built a Spring Boot payments microservice for a PSD2 Open Banking platform, working with OAuth2, OpenID Connect, and Keycloak.

What the work involved

The work also included React/Redux interfaces and JUnit/Mockito tests. It gave me hands-on experience with payments and is one reason I’m interested in learning more about finance.

Java, Spring Boot, payments, authentication, React / Redux, testing

Technical consultant / industrial operations

Granplast

Making technical choices fit the business.

I provide technical consultancy to an industrial business, assessing IT processes, ERP dependencies, and maintenance needs.

What the work involved

My work includes developing proposals and evaluating them against implementation cost, ongoing support, and operational priorities. The role is technical advisory; a proposal is a proposed path, not a delivered result.

Process assessment, technical advisory, cost and maintenance trade-offs

Solo founder & engineer / since October 2025

Plannifier

Learning the whole product, beyond the code.

I’m developing a B2B CRM for Brazilian wedding planners. As a solo founder, I’m responsible for understanding the workflow, defining requirements, and building the software.

What the work involved

It puts product decisions and engineering decisions in the same place. I have to ask what is worth building, what can stay simple, and what needs to work reliably before the next feature matters.

Next.js, TypeScript, Supabase

Visit Plannifier

Product engineer / client work

TalentScout

Turning recruitment requirements into a product.

I’m building a recruitment application for a client through Cavendish: candidate records, CV extraction, vacancy management, and hybrid search combining deterministic criteria with similarity search.

What the work involved

The challenging part is translating recruiter expectations into clear domain rules. AI suggestions stay linked to their sources and separate from confirmed data, with human review and a manual fallback. Organization and role permissions are enforced at the database boundary.

React, TypeScript, Vercel Functions, Supabase / PostgreSQL

Java software engineer / CTG

Luxembourg Ministry of Justice (JUCIV)

Software for civil lawsuit management.

I developed a civil lawsuit management application for Luxembourg’s judicial system using Java EE, WebSphere, SOAP, OpenJPA, and DB2.

What the work involved

I collaborated through code reviews and pair programming, with Jenkins supporting continuous integration and delivery.

Java EE, WebSphere, SOAP, OpenJPA, DB2, Jenkins

How I reason

Pragmatism is
part of my craft.

I approach engineering with a product and entrepreneurial mindset. I learn the part of the system the problem depends on, make the relevant risks and constraints clear, and take the next useful step. I’m comfortable building that understanding as the work progresses.

  1. 01

    Start with the business need.

    What needs to improve, for whom, and what would make this work worth doing? I use that answer to decide where to put the effort.

  2. 02

    Learn enough to make the change well.

    I trace the relevant flow, rules, and dependencies. The depth of investigation should fit the scope and risk of the change. I deepen that understanding as the work requires it.

  3. 03

    Choose the smallest useful step.

    I favour bounded delivery, clear trade-offs, and straightforward solutions. Extra time or complexity needs to earn its place through useful value or a reduction in real risk.

  4. 04

    Release with confidence, backed by evidence.

    Tests and peer review come before release. Feature flags, shadow traffic, and progressive rollouts help when the risk calls for them. Monitoring is mandatory after each release to check behaviour, errors, and impact, so I can respond to what happens in production.

  5. 05

    Measure, learn, repeat.

    I look at whether the change helps the user and the business, then decide what to improve next. Experimentation helps me test ideas in practice: release a good, useful feature quickly, learn from how people use it, and improve it. I’d rather get that feedback than spend months perfecting a feature nobody needs. Build, observe, identify the bottleneck, fix it, and measure again.

Working with me

What brings out my best work.

I’m open to different products and domains. The kind of problem and the way a team works matter more to me than a particular industry label.

I gravitate towards

  • Application logic, backend design, integrations, and asynchronous processing.
  • Solving a specific problem in a complex or legacy system with a scope that fits the need.
  • Autonomy with clear ownership, thoughtful peer review, and written decisions.
  • Small, focused groups where people can reason through a problem together.
  • Measurable user impact and learning a domain well enough to make better decisions.
The person

There’s a life
around the work.

Family comes first.

I’m a father. Family, health, and autonomy guide my decisions. I want to do ambitious, useful work in a way that leaves room for the people and the life I care about.

Finance and investing are interests I want to explore.

I’ve always been interested in finance, and I’d like to understand it more deeply, including investing. My open-banking work gave me hands-on experience with payments; I’m interested in what comes next, including insurance. There’s a lot for me to learn, and that’s part of the appeal.

The way technology shapes information matters to me.

Recently, I found an article about a topic that had been on my mind for some time: the “filter bubble.” It gave a name to a concern I already had about how the information we see is selected for us.

This raised a question I keep coming back to: how much of our view of the world is shaped by what a platform chooses to show us? I’m interested in technology that gives people more room to explore, question, and form their own conclusions.

AI helps me work more efficiently, within firm constraints.

I’m always looking for ways to make my workflow faster and more efficient. I use Cursor, Claude Code, and Codex, alongside MCP integrations and agent orchestration, to help me move work forward.

That works for me with firm constraints around quality, safety, and human responsibility. Requirements, permissions, source evidence, testing, and review stay in place. I remain responsible for the decisions and the result.

The journey

A career across
countries and domains.

Different places, domains, and responsibilities have shaped how I approach the work.

  1. Today

    Independent / remote

    Cavendish & Plannifier

    Independent product engineering and technical consultancy, alongside building my own product.

  2. 2020–2025

    Lisbon, Portugal / remote

    Tripadvisor / Viator

    Five years as a Software Engineer across supplier connectivity, backend systems, frontend projects, technical SEO, and internal tooling.

  3. 2016–2019

    Luxembourg

    CTG

    Payments for Banque Internationale à Luxembourg and civil lawsuit management for the Luxembourg judicial system.

  4. 2015–2016

    San Diego, USA

    Digital Strategic Marketing

    Web development for websites and e-commerce projects, working with JavaScript, HTML/CSS, and PHP.

  5. 2012–2016

    Recife, Brazil

    Jopal Comércio e Serviços

    Co-running an IT and security services business, building client websites and delivering network and IP-camera installations.

Bachelor in Internet Systems, Faculdade Marista do Recife (2011–2014). Oracle Certified Associate, Java SE 8 Programmer (2016). GoStack Full-Stack Bootcamp, Rocketseat (2020).

Keep the conversation going

A good problem
starts a conversation.

If the work, the way I think, or the questions I’m asking resonate, I’d be glad to talk.