Senior Software Architecture Practice · Lisbon

Prática Sénior de Arquitectura de Software · Lisboa

Software architecture
decisions that define
how platforms scale.

Decisões de arquitectura
de software que definem
como as plataformas escalam.

Peppy Velocity works with high-growth digital businesses on the software architecture decisions that define how their platforms perform, scale, and evolve — designed with precision, built to last.

A Peppy Velocity trabalha com empresas digitais em crescimento nas decisões de arquitectura de software que definem como as suas plataformas performam, escalam e evoluem — concebidas com precisão, construídas para durar.

Selected metrics

Métricas seleccionadas

15+
Years designing & architecting software systems
Anos a conceber e arquitectar sistemas de software
€100M+
Annual transaction volume handled by systems architected
Volume anual de transacções processado por sistemas arquitectados
1:1
A deliberately small client roster — depth over volume, by design
Uma carteira de clientes deliberadamente pequena — profundidade em vez de volume, por escolha

About

Sobre

An independent
architecture practice.

Uma prática independente
de arquitectura.

A senior software architecture practice working with a deliberately small number of clients — providing the depth of technical engagement that consequential architecture decisions require.

Uma prática sénior de arquitectura de software que trabalha com um número deliberadamente pequeno de clientes — proporcionando a profundidade de envolvimento técnico que as decisões arquiteturais consequentes exigem.

Peppy Velocity was founded by Jeremy Same, a Senior Software Architect with over fifteen years of experience designing the technical foundations of large-scale digital platforms. Jeremy's background spans the full architecture lifecycle — from domain modelling and distributed systems design through to the engineering leadership required to bring complex technical programmes to production at scale — and it is that depth of hands-on experience that defines how Peppy Velocity approaches every engagement.

A Peppy Velocity foi fundada por Jeremy Same, um Arquitecto de Software Sénior com mais de quinze anos de experiência na concepção das fundações técnicas de plataformas digitais de grande escala. O historial de Jeremy abrange todo o ciclo de vida da arquitectura — desde a modelação de domínio e design de sistemas distribuídos até à liderança de engenharia necessária para levar programas técnicos complexos a produção em escala — e é essa profundidade de experiência prática que define a forma como a Peppy Velocity aborda cada envolvimento.

Services

Serviços

Three areas of
technical specialisation.

Três áreas de
especialização técnica.

All engagements are hands-on and technically embedded — I produce architecture artefacts, not presentations.

Todos os envolvimentos são práticos e tecnicamente integrados — produzo artefactos de arquitectura, não apresentações.

01

Software Architecture
Design

End-to-end design of complex software systems — domain modelling, bounded context definition, API contract design, infrastructure topology, data architecture, and inter-service communication patterns. Delivered as architecture decision records, component specifications, and technical design documentation.

Design de ponta a ponta de sistemas de software complexos — modelação de domínio, definição de bounded contexts, design de contratos de API, topologia de infraestrutura, arquitectura de dados e padrões de comunicação entre serviços. Entregue como registos de decisões arquiteturais, especificações de componentes e documentação de design técnico.

Domain modelling Distributed systems API design ADRs
02

Platform Engineering
& Systems Review

Structured technical analysis of existing software systems — identifying architectural debt, scalability constraints, security surface, and reliability risks. Deep system reviews producing detailed technical findings, quality assessments, and a prioritised remediation roadmap.

Análise técnica estruturada de sistemas de software existentes — identificando dívida arquitetural, restrições de escalabilidade, superfície de segurança e riscos de fiabilidade. Revisões profundas de sistemas produzindo conclusões técnicas detalhadas, avaliações de qualidade e um roadmap de remediação priorizado.

Architecture review Scalability Technical debt Quality assessment
03

Engineering
Leadership

Embedded technical leadership during critical growth and transformation phases — hands-on involvement in system design sessions, engineering standards definition, technical hiring, and direct participation in architectural decision-making alongside senior engineering staff.

Liderança técnica integrada durante fases críticas de crescimento e transformação — envolvimento direto em sessões de design de sistemas, definição de normas de engenharia, contratação técnica e participação direta na tomada de decisões arquiteturais junto de pessoal de engenharia sénior.

Technical leadership System design Engineering standards Team structure

Selected Work

Trabalho Seleccionado

Architecture problems
solved in production.

Problemas de arquitectura
resolvidos em produção.

Client identities are withheld. Sector, challenge, and technical approach are described as accurately as confidentiality permits.

As identidades dos clientes são omitidas. O sector, o desafio e a abordagem técnica são descritos com a precisão que a confidencialidade permite.

01

Digital Commerce · Asia-Pacific

Comércio Digital · Ásia-Pacífico

Migrating a high-volume monolith to an event-driven platform under live load

Migrar um monólito de alto volume para uma plataforma orientada a eventos sob carga activa

Event-driven architecture Domain-driven design Strangler fig pattern API platform

Challenge & approach

Desafio e abordagem

A high-volume transactional platform had accumulated significant architectural debt across a tightly coupled monolithic codebase — making feature delivery slow, unreliable, and increasingly costly. The challenge was to redesign the architecture incrementally, without halting delivery or risking the live transaction stream.

Uma plataforma transaccional de alto volume tinha acumulado dívida arquitetural significativa num codebase monolítico fortemente acoplado — tornando a entrega de funcionalidades lenta, pouco fiável e cada vez mais cara. O desafio era redesenhar a arquitectura de forma incremental, sem interromper a entrega ou arriscar o fluxo de transacções activo.

The engagement involved defining bounded contexts across the domain, designing an event-driven backbone for inter-service communication, and specifying a strangler fig migration path that allowed individual domains to be extracted incrementally over 18 months.

O envolvimento incluiu a definição de bounded contexts em todo o domínio, o design de uma estrutura orientada a eventos para comunicação entre serviços e a especificação de um caminho de migração strangler fig que permitiu extrair domínios individuais de forma incremental ao longo de 18 meses.

Outcome

Resultado

Migration completed with zero planned downtime. Feature cycle times reduced materially. Platform subsequently scaled to handle peak transaction volumes multiples above the pre-migration baseline.

Migração concluída com zero tempo de inactividade planeado. Os tempos de ciclo de funcionalidades reduziram materialmente. A plataforma escalou subsequentemente para lidar com volumes de transacções de pico múltiplas vezes acima da baseline pré-migração.

02

Payments Infrastructure · Global

Infraestrutura de Pagamentos · Global

Designing a multi-provider payments abstraction layer for geographic expansion

Concepção de uma camada de abstracção de pagamentos multi-fornecedor para expansão geográfica

Payments architecture Abstraction layer design Resilience patterns API contracts

Challenge & approach

Desafio e abordagem

A digital commerce platform operating across multiple geographies had grown tightly coupled to a single payment processor, creating commercial risk and a technical bottleneck constraining expansion. The architecture needed to support multiple concurrent providers with differing APIs, settlement behaviours, and failure modes — without disrupting the existing integration.

Uma plataforma de comércio digital a operar em múltiplas geografias tinha-se tornado fortemente acoplada a um único processador de pagamentos, criando risco comercial e um bottleneck técnico que limitava a expansão. A arquitectura precisava de suportar múltiplos fornecedores concorrentes com APIs diferentes, comportamentos de liquidação e modos de falha distintos — sem perturbar a integração existente.

The work produced a payments domain abstraction layer — a clean internal API isolating the platform from provider-specific implementation details, with resilience patterns, retry logic, and idempotency guarantees built into the contract design from the outset.

O trabalho produziu uma camada de abstracção do domínio de pagamentos — uma API interna limpa que isolou a plataforma dos detalhes de implementação específicos do fornecedor, com padrões de resiliência, lógica de retry e garantias de idempotência incorporadas no design do contrato desde o início.

Outcome

Resultado

Two additional payment providers integrated within the following quarter with no changes to upstream platform code. Payment failure rates reduced through improved retry and fallback logic.

Dois fornecedores de pagamentos adicionais integrados no trimestre seguinte sem alterações ao código da plataforma upstream. As taxas de falha de pagamentos reduziram através da melhoria da lógica de retry e fallback.

03

Consumer Platform · API Architecture

Plataforma de Consumo · Arquitectura API

API platform design for a multi-channel consumer product

Design de plataforma API para um produto de consumo multi-canal

API platform BFF pattern GraphQL Mobile & web

Challenge & approach

Desafio e abordagem

A consumer platform serving both web and native mobile clients had developed a fragmented API layer — inconsistent contracts, duplicated logic, and no clear separation between internal domain services and the surface exposed to clients. Performance and developer experience were suffering as the product expanded across channels.

Uma plataforma de consumo que serve clientes web e mobile nativos tinha desenvolvido uma camada de API fragmentada — contratos inconsistentes, lógica duplicada e sem separação clara entre serviços de domínio internos e a superfície exposta aos clientes. O desempenho e a experiência do programador estavam a sofrer à medida que o produto se expandia entre canais.

The engagement produced an API platform architecture introducing a Backend for Frontend (BFF) pattern — separating mobile and web concerns, defining a stable internal service contract, and specifying the GraphQL schema and resolver structure to support query flexibility without sacrificing performance.

O envolvimento produziu uma arquitectura de plataforma API que introduziu um padrão Backend for Frontend (BFF) — separando as preocupações mobile e web, definindo um contrato de serviço interno estável e especificando o schema GraphQL e a estrutura de resolvers para suportar flexibilidade de query sem sacrificar o desempenho.

Outcome

Resultado

API response times improved materially on mobile. Engineering teams reported significantly reduced integration friction. The architecture provided a stable foundation for subsequent channel expansion.

Os tempos de resposta da API melhoraram materialmente no mobile. As equipas de engenharia reportaram fricção de integração significativamente reduzida. A arquitectura forneceu uma base estável para posterior expansão de canais.

Approach

Abordagem

How the work
actually gets done.

Como o trabalho
realmente é feito.

Principles that shape every engagement — not aspirations, but the way the work is actually structured and delivered.

Princípios que moldam cada envolvimento — não aspirações, mas a forma como o trabalho é realmente estruturado e entregue.

i.

Architecture produces artefacts, not opinions

A arquitectura produz artefactos, não opiniões

Every engagement ends with concrete technical output — component diagrams, interface contracts, ADRs, deployment specifications — that engineering teams can act on directly. If it can't be built from, it isn't architecture.

Cada envolvimento termina com output técnico concreto — diagramas de componentes, contratos de interface, ADRs, especificações de implantação — sobre o qual as equipas de engenharia podem agir directamente. Se não se pode construir a partir disso, não é arquitectura.

ii.

Embedded, not parachuted

Integrado, não lançado de pára-quedas

Meaningful architecture work requires immersion in a system's history, constraints, and failure modes. I work alongside engineering teams — in design sessions, reviewing code, participating in decisions — rather than arriving with pre-formed conclusions.

O trabalho de arquitectura significativo requer imersão na história, restrições e modos de falha de um sistema. Trabalho ao lado das equipas de engenharia — em sessões de design, a rever código, a participar em decisões — em vez de chegar com conclusões pré-formadas.

iii.

Established methods, applied with judgement

Métodos estabelecidos, aplicados com discernimento

Domain-driven design, event-driven architecture, the C4 model, arc42 — these are used as shared technical vocabulary, not as dogma. Every system has its own constraints, and the method serves the system, not the other way around.

Design orientado a domínio, arquitectura orientada a eventos, o modelo C4, arc42 — são usados como vocabulário técnico partilhado, não como dogma. Cada sistema tem as suas próprias restrições, e o método serve o sistema, não o contrário.

iv.

Depth by design

Profundidade por design

I work with a small number of clients at any one time, by choice. The quality of architecture work is directly proportional to how well you understand the system you are designing for. Volume and depth are incompatible.

Trabalho com um pequeno número de clientes de cada vez, por escolha. A qualidade do trabalho de arquitectura é directamente proporcional ao quão bem se compreende o sistema para o qual se está a conceber. Volume e profundidade são incompatíveis.

Contact

Contacto

Working on a hard
architecture problem?

A trabalhar num problema
de arquitectura difícil?

I take on a small number of engagements each year. If the work sounds relevant, I would welcome an initial conversation.

Assumo um pequeno número de envolvimentos por ano. Se o trabalho parecer relevante, gostaria de ter uma conversa inicial.

Engagements are typically structured as long-term retained arrangements, with the depth of involvement calibrated to the complexity and phase of the technical programme.

Os envolvimentos são tipicamente estruturados como acordos de retainer de longo prazo, com a profundidade de envolvimento calibrada à complexidade e fase do programa técnico.

Send an enquiryEnviar uma consulta

Entity

Entidade

Peppy Velocity Unipessoal LDA

Address

Morada

Rua D. João V, nº21, 8º andar
1250-089 Lisboa, Portugal

Email

NIPC / NIF

519 217 942