Full-stack contract engineer · Ottawa, Canada · since 2011

I keep the software a business already runs on working — then make it better.

Maintenance, modernization, integrations, and automation for web applications, APIs, and internal tools. I read the system before I change it, and I leave it maintainable for whoever comes next.

In your first email: system type · current problem · stack · timeline · outcome you want.
audit / legacy-billing throughputlive
$ audit ./legacy-billing --scope integrations
41 endpoints mapped, 12 undocumented
6 silent failures reproduced
nightly export cut from 40h to 30min
→ plan: 3 weeks, no downtime, documented_
14 yrs
inside business systems, since 2011
40h → 30min
recurring SAP workflow, automated
Contract
retainer or fixed scope, remote from Ottawa
01 / Services

Practical engineering for software the business already depends on.

service.webapp

Modernize an existing application

Add features, refactor the risky areas, and raise maintainability in apps that already carry daily operations.

service.api

Connect APIs and third-party systems

Design, repair, and extend REST APIs so data moves reliably between the tools your team already uses.

service.tools

Build internal tools around real workflows

Dashboards, portals, and admin interfaces shaped around how the business actually operates today.

service.automation

Automate validation, reporting, and repetitive work

Data-processing and automation that cuts manual handling and makes business information easier to trust.

02 / Case notes

Three examples from real business software.

impact/process.md
40 hours reduced to 30 minutes
automation · SAP data · validation
Problem

A recurring SAP-data workflow needed heavy manual preparation before anyone could use the information.

Work & result

Built automation that turned raw exports into usable interfaces. A ~40-hour process now takes about 30 minutes.

modernization/legal.md
Legacy desktop workflow to cloud web app
Laravel · Vue.js · PHP
Problem

A desktop-based legal workflow had to become easier to access, maintain, and evolve.

Work & result

Helped migrate it into a cloud web application with clearer structure — the team now runs on a maintainable Laravel and Vue.js system.

architecture/events.md
Monolith toward event-driven architecture
Kafka · Java · module decoupling
Problem

A large system needed better module boundaries and more maintainable communication between its parts.

Work & result

Worked on decoupling modules and Kafka-based messaging, moving the architecture toward clear service boundaries.

03 / Tools

A stack is a decision, not an identity.

Most systems don't need a new stack — they need someone who can work safely inside the one you already have. I've shipped in Python, JavaScript, PHP, and Java since 2011, and reading into an unfamiliar codebase is part of the job, not a blocker. What stays constant is the method: map it, change it carefully, document what changed.

Web applications
React · Vue.js · Django
Laravel · Node.js
APIs & integrations
REST · FastAPI · Express
Kafka · webhooks
Data & automation
PostgreSQL · MySQL · MongoDB
crawling · validation
Run & deploy
Docker · AWS · Linux
CI · deployment support
04 / How I work

Useful improvements, visible progress, maintainable handoff.

01 / discovery
Understand the system

Workflow, codebase, data flow, and constraints first — before proposing any change.

02 / delivery
Improve what matters

The parts that reduce risk, save time, or unblock the team come first.

03 / communication
Keep the work visible

Tradeoffs, risks, and progress stated plainly, so nobody is guessing.

04 / handoff
Leave it maintainable

Decisions documented, no clever solutions that become hard to support.

Contract work

Have a system that needs maintenance, integration, or automation?

Send a short note about the system, workflow, or integration. I reply with next-step questions — usually the same day.

contact@ronaldo.dev ↓ Download résumé (PDF)
Remote from Ottawa, Canada
Contract, retainer, or fixed scope