juan@portfolio:~$ ./render --issue 001

Code, systems,
and the space between.

I’m a software engineer making tools and applications that reward attention.

Browse selected work

Experience

Experience

Senior Engineer

Building developer tooling and internal platforms. Focused on reliability, DX, and scalable systems.

Open Source

Maintainer of small, sharp tools used in production. Contributions around automation and developer experience.

Full-Stack Engineer

Shipped web applications end-to-end. APIs, data models, and thoughtful interfaces.

CS Degree

B.S. in Computer Science. Systems, theory, and a love for abstractions.

Selected projects

Projects

A CLI that treats Figma files like source: semantic diffs between versions, component and style inventories with usage counts, version-pinned cached fetches, and verified webhook watch events — all over the public REST API.

View on GitHub
  • Semantic diffs between versions
  • Component & style inventories
  • Version-pinned cached fetches
  • Verified webhook watch events
01$ fig file pull "figma.com/design/KEY?version-id=999"
02$ fig diff KEY --from v41 --to v42
03 ~ button/primary fill oklch shifted
04 + card/empty-state new component

Describe env vars, domains, and crons in a versioned state file, then pull, validate, plan, drift-check, and apply with policy enforcement, restore-point snapshots, and a double-safe write posture.

View on GitHub
  • Terraform-style plan / apply
  • Drift detection against live state
  • Policy enforcement on writes
  • Restore-point snapshots
01$ vercel-state pull --project prj_123 > state.json
02$ vercel-state plan -f state.json
03 ~ env API_URL preview → production
04 + cron /api/cleanup 0 0 * * *

Correlates deployments, environment drift, error rates, and traces into ranked root-cause findings — then prints a dry-run remediation plan of exact vercel commands. It diagnoses and recommends; it never executes writes.

View on GitHub
  • Correlates deploys, env drift & traces
  • Ranked root-cause findings
  • Dry-run remediation plans
  • Fixture record & replay for CI
01$ vcdoctor incident --since 30m
02 1. env drift DATABASE_URL changed 28m ago
03 2. deploy dpl_9f2 error rate 4.1% → 22.7%
04 plan: vercel rollback dpl_8e1 --yes (dry-run)

List and mutate issues, drive cycle workflows, verify webhooks, and hand work off to coding agents with deterministic branches and context files. Tokens are never accepted as flags and never appear in output.

View on GitHub
  • Issue & cycle workflows from the shell
  • Webhook signature verification
  • Agent handoff with deterministic branches
  • Redacted, auditable credential handling
01$ linx issue ls --mine --team ENG --limit 50
02$ linx handoff ENG-142 --agent claude
03 branch eng-142-fix-retry-path
04 context .linear/ENG-142.md written

Declare application commands in a manifest, lint them against Discord's limits before any network call, diff and apply them safely, run a locally verified interactions endpoint, and audit permissions and gateway intents.

View on GitHub
  • Offline manifest linting
  • Safe command diff & apply
  • Local verified interactions endpoint
  • Permission & intent audits
01$ discord-dev commands lint manifest.json
02 ✓ 14 commands 0 errors
03$ discord-dev commands diff manifest.json
04 + /report ~ /config (option added)

A multiplayer roulette game built with C++ and ncurses in a client-server flavor: a configurable game server and a TUI client that connects over the network to place bets against other players.

View on GitHub
  • Multiplayer over raw sockets
  • Ncurses terminal interface
  • Config-driven game server
01$ make && ./server
02$ ./client 192.168.0.10 4242 juan
03 table open — place your bets
04 → 17 black. juan wins 350

Niddo helps a person answer: can I build a life there that works for someone like me? It combines official data with community stories, questions, and answers — organized by country, region, and city. A decision tool with real insights, not a social platform.

  • Official metrics + community surveys
  • Stories, questions & answers by place
  • No feeds, follows, or DMs — insight-first
01query: "software engineer, two kids,
02 moving from AR to ES"
03 → cost of living madrid vs bsas
04 → 14 stories from people like you

A map-first community app that helps people discover others from the same country or cultural community living near them. Locations resolve into privacy-safe geographic aggregates — world to neighborhood — with a local community chat attached to each area.

  • H3 hexagonal privacy-safe aggregates
  • World → neighborhood drill-down
  • Local chat per geographic community
  • k6 load-tested chat & join flows
01world → europe → spain → madrid
02 → lavapiés: 42 members nearby
03 → join local chat (aggregate only,
04 exact location never shared)

A micro-utility that migrates your saved Google Maps places into Apple Maps Guides. All processing happens client-side in the browser — no server ever sees your data.

  • Full saved-places history migration
  • Runs entirely in the browser
  • No accounts, no data retention
01drop takeout.zip here
02 ✓ parsed 312 saved places
03 ✓ matched 297 in apple maps
04 → download guides bundle

A dashboard tracking live-streaming channels in real time: viewership charts, chat engagement (unique chatters, messages per minute), multi-timeframe rankings, and an anomaly-detection backend that flags view-velocity spikes and retention drop-offs.

  • Real-time viewership & engagement charts
  • Hybrid YouTube API + scraper data pipeline
  • VVS / RDR anomaly detection backend
  • Multi-timeframe ranking system
01$ npm run dev
02 ingesting live_stats snapshots...
03 ⚠ VVS spike channel_42 +214% ccv
04 → top charts refreshed (hourly)

A local-first news intelligence project tracking how articles become developments, developments become stories, and how coverage evolves and differs across Argentine outlets over time — built on Spanish-language NLP.

  • Articles → developments → stories graph
  • Spanish NLP entity extraction (spaCy)
  • Outlet-by-outlet coverage comparison
01$ python apps/api/scripts/run_api.py
02 ingested 1,204 articles / 7 outlets
03 → 89 developments, 17 active stories
04 → coverage drift: outlet A vs B +34%

Have a difficult problem?

readyall systems considered.turn the page. ship the thing.