Software Development Manager, Amazon MSKSeattle area

I build reliable distributed systems and the teams that run them.

20+ years in software. 8+ years managing engineers at Amazon and Meta, and managing managers at AWS Health. I still review designs and code, chase failures through logs and metrics, and ship fixes.

Résumé PDF How I build with AI EmailLinkedIn

Microcontrollersdeveloper toolscloud platformsKafka at fleet scale

01 Career2003 – 2026

Twenty years, newest first

The strongest results from each role, starting with my current team. The résumé has every role and responsibility.

Amazon Web Services · Amazon MSKCurrentAug 2025 – present

Kafka at fleet scale

KRaftupgradingZooKeeperTelemetry pingOne dot per broker, in clusters of six. An illustration, not to scale.

My team owns data plane workflows and the observability agents in Amazon MSK (Amazon Managed Streaming for Apache Kafka): telemetry collectors that gather logs and metrics on hundreds of thousands of Kafka brokers.

  • Owned the in-place ZooKeeper-to-KRaft migration program, with about 12 engineers across three teams. It launched in August 2026: customers move an MSK cluster on Kafka 3.9 to KRaft in one online upgrade. Kafka 4.x supports only KRaft.
  • Set the program's test strategy, acceptance criteria and regression bars. Reviewed designs and code, and fixed bugs.
  • Reduced silent failures in the observability agents by making monitoring part of the team's Definition of Done.
  • Cut the time from merged code to the first production region, using failure data to decide which dependency failures should block a release.
Before: a Kafka cluster that depends on an external ZooKeeper ensemble. After one online upgrade: the same cluster with KRaft controllers inside it and no ZooKeeper.before · Kafka 3.9 + ZooKeeperzkzkzkb1b2b3b4b5b6one onlineupgradeafter · KRaftc1c2c3b1b2b3b4b5b6zk = ZooKeeper node · b = broker · c = KRaft controllerBefore: a Kafka cluster that depends on an external ZooKeeper ensemble. After one online upgrade: the same cluster with KRaft controllers inside it and no ZooKeeper.before · Kafka 3.9 + ZooKeeperzkzkzkb1b2b3b4b5b6one onlineupgradeafter · KRaftc1c2c3b1b2b3b4b5b6zk = ZooKeeper · b = brokerc = KRaft controller
Fig. 1 The migration moves cluster metadata from an external ZooKeeper ensemble into KRaft controllers, while the cluster stays online.
  • Java
  • Rust
  • Kafka
  • ZooKeeper
  • KRaft
  • CloudWatch
AWS announcement of the KRaft migration

Amazon · Amazon PayAug 2024 – Aug 2025

From monthly releases to continuous delivery

Amazon Pay lets shoppers pay on other sites with their Amazon account. My team owned subscription and checkout capabilities.

  • Moved our releases to full continuous delivery in 2025 and removed manual release work. Deployments went from monthly to more than four a week, a 16x increase, tracked with DORA metrics.
  • Built and launched subscription bundling: merchants sell their own subscriptions packaged with Amazon.com products, sold by the merchant or by another seller.

Amazon Web Services · AWS HealthJul 2022 – Aug 2024

Showing customers which of their resources an event affects

AWS Health tells customers about service events and planned changes that affect their cloud resources.

  • Shaped all three roadmaps with product managers and the two engineering managers, splitting capacity across new features, operational improvements, maintenance and resilience.
  • The teams built resource-level impact notifications in the AWS Health Dashboard, which tell each customer which of their resources an event affects.
  • Built a real-time view of AWS service health as customers experience it, and an incubation proof of concept that let AWS executives scale outreach to affected customers during major events.
under 5 min
from a service event to a resource-level notification in the AWS Health Dashboard
~30 min
less time per incident spent finding affected resources

Meta · AvatarsDec 2020 – May 2022

3D avatars for mobile and VR

I started on Instagram commerce for small businesses, then built and led two avatar teams with user research, data science, design and 3D art partners.

  • Avatar sticker rendering: cut rendering time and storage costs while balancing CPU and GPU load, through hot and cold caching, lazy and dynamic rendering, and job sequencing.
  • Avatar creation for mobile and VR: user research and A/B experiments with data science raised user satisfaction and how well people identified with their avatars.
A sticker request checks a hot cache, then a cold cache, and renders only on a miss, with rendering jobs sequenced across CPU and GPU.sticker requesthot cachecold cacherender on demandhit: donehit: donemissmissCPUGPUjobs sequencedA sticker request checks a hot cache, then a cold cache, and renders only on a miss, with rendering jobs sequenced across CPU and GPU.sticker requesthot cachehit: donemisscold cachehit: donemissrender on demandCPUGPUjobs sequenced
Fig. 2 Where the rendering work went: caches first, rendering only when needed, jobs sequenced across CPU and GPU. Conceptual.

Amazon Web Services · AWS Kumo, AWS Support's systemsJul 2017 – Nov 2020

From four nines to five

Kumo builds the systems AWS Support runs on. I joined as an engineer on the case backend, which serves the public AWS Support API, and then managed two teams.

Decision
I proposed an active-active, multi-region architecture for the case backend behind the public AWS Support API.
Method
My teams built it and ran Lean continuous improvement: every recurring alarm got a five-whys analysis until its cause was gone.
Result
Availability rose from 99.99% to 99.999%, from about 52.6 minutes of allowed downtime a year to about 5.3. Unplanned urgent alarms fell from dozens a week to about two a month.
Also
A new case management console, from concept to launch in 12 months, for 1,000+ support engineers.
Active-active across two regions: AWS Support API clients reach the case backend in both regions, each region serves requests, and case data is replicated between them.AWS Support API clientsregion A · activecase backendcase dataregion B · activecase backendcase datacase data replicated between regionsActive-active across two regions: AWS Support API clients reach the case backend in both regions, each region serves requests, and case data is replicated between them.AWS Support API clientsregion Acase backendcase dataregion Bcase backendcase datacase data replicated between regions
Fig. 3 Active-active across regions: both regions serve the case backend and case data is replicated between them, so the API does not depend on any single region. Conceptual.

SAP · SAP Labs BrazilOct 2010 – Jul 2017

Product, delivery, architecture and coaching

I worked on SAP's ERP and HR (HCM) products for Brazil, Latin America and the U.S., including Affordable Care Act reporting, moving between building, owning and coaching.

  • Developer and architect for SAP's Brazilian tax credits on fixed assets (ICMS CIAP), with fully automated regression tests. Product Owner for oil, gas and mining localization.
  • Agile coach across Brazil and Germany, and co-inventor of SAP Labs Brazil's first granted patent.

Altus, Dell and others2003 – 2010

Compilers, debuggers and IDEs

I started next to the hardware: embedded software and the developer tools engineers use to program industrial controllers.

  • Helped build MasterTool at Altus, an IDE for programming industrial controllers, and moved it from C++ to C# and .NET. Before that: hardware test software and RS-232 and Ethernet drivers; later, C# performance profiling at Dell.
  • C
  • C++
  • C#
  • .NET
  • Delphi
  • SQL

02 Leadership8+ years managing

Teams, managers and the habits that keep systems up

I have managed engineers and engineering managers for 8+ years, in Seattle, London and Cape Town, and coached teams for years before that.

  • 100+candidates interviewed at Amazon
  • 10+promotions of engineers and managers
  • 300+engineers trained in Lean, Scrum and TDD at SAP

How I lead

Managing managers
I led two AWS Health teams through their engineering managers and an incubation team directly. Direction came from shared roadmaps with product managers, split across features, operations, maintenance and resilience, and from annual plans (OP1 and OP2) with goals and headcount.AWS Health
Operational excellence
I treat a recurring alarm as a defect: five-whys until the cause is gone, a root-cause analysis (COE) when something fails, and monitoring as part of the Definition of Done. That is how urgent alarms at AWS Support became rare.AWS Kumo
Delivery systems
I measure delivery with DORA metrics and remove manual release work, as at Amazon Pay. For large changes I set the test strategy, acceptance criteria and regression bars myself, as I did for MSK's KRaft migration.Amazon Pay Amazon MSK
Growing people
Promotions came from mentoring, coaching and purpose-driven goals for engineers and managers along their career tracks. Before managing, I coached teams and trained engineers in Lean, Scrum and test-driven development at SAP.SAP

03 AI harnessHow I build with AI agents

I specify. Agents build. Checks gate. I accept.

I write the specifications, set the acceptance checks, review designs and code, and decide what ships. AI agents implement much of the code and tests in my own tools. Two of those tools are open source.

Open source · TypeScript · Node.js

MCP Compression Proxy

  • 2,612 npm downloads
  • live

Problem AI agents running in parallel each loaded every MCP tool description into their context and started their own copy of every MCP server. Five editor windows meant five of each server.

Tools on demand

Agents use a CLI, mcp-cli, instead of loading tools into context: search ranks tools with BM25 over names and descriptions, info loads one tool's schema when it is needed, and large results go to local files the agent can search or page through.

Shared processes for matching clients

A shared daemon reuses one server process across clients with matching configuration and credentials. It starts servers on first use, keeps each one warm for a minute after its last client leaves, refreshes stale or unhealthy connections, and drains old generations without interrupting active calls.

$ mcp-cli search file$ mcp-cli info filesystem/list_directory$ mcp-cli call filesystem/list_directory '{"path":"/tmp"}'
From the README quick start
How it works Tools on demand · Shared processes for matching clients

Tools on demand

Agents use a CLI, mcp-cli, instead of loading tools into context: search ranks tools with BM25 over names and descriptions, info loads one tool's schema when it is needed, and large results go to local files the agent can search or page through.

Shared processes for matching clients

A shared daemon reuses one server process across clients with matching configuration and credentials. It starts servers on first use, keeps each one warm for a minute after its last client leaves, refreshes stale or unhealthy connections, and drains old generations without interrupting active calls.

$ mcp-cli search file$ mcp-cli info filesystem/list_directory$ mcp-cli call filesystem/list_directory '{"path":"/tmp"}'
From the README quick start

The trade-off: share processes, never credentials

Sharing servers saves memory, but clients with different credentials must use separate processes. Clients share a process only when their credentials and execution settings match; another token, AWS profile or working directory gets its own.

What counts as a match

Clients share a process only when their credentials and execution settings match; another token, AWS profile or working directory gets its own.

The pool identifies a backend by its command, arguments, working directory, environment, URL, headers and auth settings. It ignores only shell bookkeeping such as PWD or SHLVL, so two terminals of the same user still share.

Verification Backend-pool tests check process sharing and credential isolation. CI runs all 62 test files, from unit to end-to-end, including 3 against a real local LLM, plus CodeQL scanning; green on main as of November 2026.

Open source · TypeScript · Node.js

Local Skills MCP

  • 40 GitHub stars
  • 5,834 npm downloads
  • live

Problem Instructions for AI agents end up copied across projects and tools, and drift apart.

One library, any client

An MCP server that serves one local skills library to any MCP client. It lists skills first and loads each one only when needed, so the same skills stay current across agent harnesses.

Verification 19 releases, 8 forks, and CI, CodeQL and dependency-review workflows.

The loop behind them

  1. 01SpecifyRequirements, with sources the agents must cite
  2. 02BuildAgents write code and tests in parallel
  3. 03GateDeterministic acceptance checks that fail closed
  4. 04ReviewIndependent LLM evaluation and adversarial checks
  5. 05CorrectFailures feed the next loop, with replay fixtures
  6. 06AcceptI review and accept, or send it back

A failed gate or review sends the work back to Correct, then Build.

Counts come from the GitHub and npm APIs and refresh every hour (last update November 7, 2026). Both are personal projects under the KDPA LLC GitHub organization, not employer work.

04 Credentials

Patent, degree and certification

FIG. 1 of U.S. Patent 10,437,587: two developers reach a code library through an access manager, and a package analyzer with a heat map generator and refactoring analyzer reads development data.
Fig. 4 Figure 1 of the issued patent. View full-size drawing

Co-inventor · U.S. Patent 10,437,587 B2

Software package analyzer for increasing parallelization of code editing

I co-invented the first granted patent to originate at SAP Labs Brazil, also known as SAP Labs Latin America. The idea: use development history to identify independently editable blocks of code, so developers can work in parallel.

Co-inventors: Michel Grisa, Rafael Damaceno and Marcelo Zambiasi. Filed November 17, 2015. Issued October 8, 2019. Assignee: SAP SE.

Read the patent
B.S. Computer Science
Universidade do Vale do Rio dos Sinos (Unisinos), Brazil.
ISTQB Certified Tester, Foundation Level
Software testing qualification.
English and Portuguese
Full professional English. Native Portuguese.

05 Contact

Let's talk.

Engineering leadership, distributed systems, reliability, developer productivity and building with AI agents.

rafaelkdamaceno@gmail.com