{"$schema":"https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json","basics":{"name":"Ramiro Rivera","label":"Staff software engineer","email":"ramarivera@gmail.com","url":"https://www.ramarivera.dev","summary":"I build AI-native product software that stays understandable and operable after the demo.","location":{"city":"Berlin","countryCode":"DE"},"profiles":[{"network":"GitHub","url":"https://github.com/ramarivera","username":"ramarivera"},{"network":"LinkedIn","url":"https://www.linkedin.com/in/ramiro-a-rivera"}]},"work":[{"name":"Miro","position":"Senior Software Engineer","location":"Berlin, hybrid","startDate":"2022","highlights":["Own the rich-text editing and rendering layer of Miro's multiplayer canvas, used by every text feature.","Shipped streamed AI editing rendered live on the canvas, with undo, cancel and multiplayer consistency.","Scope, design and ship foundation changes behind flags, then own their performance and edge cases."]},{"name":"Delivery Hero","position":"Senior Software Engineer · Frontend Chapter Lead","location":"Berlin","startDate":"2021","endDate":"2022","highlights":["Restaurant operations app used daily by 100k+ restaurants; owned features from design to monitoring.","Chapter lead: mentoring, onboarding and frontend standards for the sub-department."]},{"name":"ITsynch","position":"Engineering Lead, earlier Software Engineer","location":"Argentina, remote","startDate":"2016","endDate":"2021","highlights":["Designed the authorization, notifications, audit and presentation-rules engine reused across the product line.","Led a multi-year modernisation, turning ambiguous stakeholder requirements into shipped software."]}],"projects":[{"name":"Agent Haven","description":"Pick an agent, paste a Telegram bot token, and get a running machine you never have to SSH into.","highlights":["A Telegram message woke a scaled-to-zero machine in 1242 ms, and the agent replied in 24.6 s.","One provider port behind Fly Machines, Hetzner, local Parallels VMs and a deterministic fake.","Provisioning runs on a separate runner, so provider credentials never reach Convex or the browser."],"keywords":["TypeScript","Effect","Convex","React 19","Vite","Clerk","Fly Machines","Telegram Bot API","Vitest + Playwright"],"url":"https://www.ramarivera.dev/work/agent-haven","startDate":"2026"},{"name":"Foundry","description":"Describe an app, watch an agent build it in a Docker sandbox, and review the preview and diff before anything becomes real.","highlights":["Prompt, plan, approval gate, sandboxed preview, diff accept and a git-backed checkpoint.","Failed or rejected generations can't bill: one predicate guards every debit.","1,434 commits and about 352k lines of TypeScript in three months, roughly half of it tests."],"keywords":["TypeScript","Effect","@effect/rpc","Elysia","SQLite + Drizzle","React 19 + Vite","HeroUI 3","Docker","Oh My Pi"],"url":"https://www.ramarivera.dev/work/foundry","startDate":"2026"},{"name":"open-tiiny","description":"An unofficial Linux app and CLI that drives the Tiiny Pocket Lab over USB, no vendor app needed.","highlights":["Talks to the Pocket Lab directly over USB or LAN, no vendor tooling in the loop.","One Effect service graph drives the Electron app, the CLI and a local API.","1,442 test files run against a deterministic mock device."],"keywords":["TypeScript","Electron 44","Effect 3.22","React 19","HeroUI 3","Tailwind 4","Rust Node-API","Playwright","Vitest"],"url":"https://www.ramarivera.dev/work/open-tiiny","startDate":"2026"},{"name":"devplane","description":"One signed install turns a fresh Ubuntu VM into a personal cloud computer whose agent asks before it touches the outside world.","highlights":["Rust node supervises a sandboxed OMP agent with one model egress","Approvals bind exact targets and are consumed once","Publish a local service over HTTPS through Tailscale Funnel"],"keywords":["React 19 + Vite","Fastify + tRPC","Effect","Rust","OMP (Oh My Pi)","bubblewrap","Tailscale Funnel","Playwright","OpenSpec"],"url":"https://www.ramarivera.dev/work/devplane","startDate":"2026"},{"name":"Project Kestrel","description":"A mobile coaching app built around six life areas, with an AI coach that proposes changes and waits for your OK.","highlights":["One action registry feeds both the UI buttons and the AI coach's tools.","Every action starts locked. The coach asks before it touches your plan.","Typed contracts and tracing from the phone down to the database."],"keywords":["Expo","React Native","TypeScript","Effect","PostgreSQL","Drizzle","Vercel AI SDK","OpenTelemetry"],"url":"https://www.ramarivera.dev/work/coach","startDate":"2026"},{"name":"DJ Reachy Remix","description":"My remix of mzurki's DJ Reachy, a Reachy Mini app that takes a song request by voice, composes it with Eleven Music and dances to it.","highlights":["Built on mzurki's DJ Reachy Space, plus my deck panel, saved tracks and a stop that actually stops.","Voice runs on a ChatGPT subscription and never falls back to API-key billing.","Paid music only starts after an app-owned confirmation, so a stray yes can't spend credits."],"keywords":["Python","FastAPI","Reachy Mini SDK","ElevenLabs Music","ChatGPT Live","WebRTC (aiortc)","PyAV","pytest","uv"],"url":"https://www.ramarivera.dev/work/dj-reachy","startDate":"2026"},{"name":"nvim-tutor","description":"An iPad app that teaches Vim motions by running real Neovim on the iPad, with a SwiftUI game layer on top.","highlights":["Real Neovim runs on the iPad inside an app-owned iSH Alpine runtime.","A Lua bridge grades every command against the actual buffer and cursor.","Works fully offline from a locked 41-package Alpine core."],"keywords":["Swift","SwiftUI","Rust","iSH ARM64 emulator","Alpine Linux 3.21","Neovim + Lua","Ghostty renderer","XcodeGen","XCTest"],"url":"https://www.ramarivera.dev/work/nvim-tutor","startDate":"2026"}],"education":[{"institution":"Universidad Tecnológica Nacional","area":"Systems Engineering","studyType":"Engineering degree","startDate":"2012","endDate":"2018"}],"languages":[{"language":"Spanish","fluency":"native"},{"language":"English","fluency":"full professional"},{"language":"German","fluency":"A2"}],"meta":{"canonical":"https://www.ramarivera.dev/cv.json","version":"v1.0.0","lastModified":"2026-10-21"}}