shulian.dev

Julián Antonucci

Available now — open to full-time senior backend roles

Senior backend engineer with 7+ years building Node.js and Python systems that hold up under real load — distributed systems, high-throughput APIs, and pragmatic AWS.

Now
Most recently 5 years as Senior Software Engineer at NewCombin, on high-traffic systems for US broadcast & media clients — interviewing for what's next.
Stack
Node.js · TypeScript · Python · PostgreSQL · Redis · RabbitMQ · AWS (Lambda · SQS · EC2 · S3 · CloudFront)
Based
Remote-first · open to relocation, flexible across US time zones
Links
LinkedIn  ·  CV (PDF)  ·  Email

How I work

Ownership over tickets

I raise my hand when something's actually broken — a data-loss bug, a fragile CI/CD pipeline, missing test coverage — and fix it at the root instead of patching around it.

Small, autonomous teams

I do my best work where engineers are expected to think beyond their tickets, not wait to be told what to build next.

AI as part of the workflow

I use AI tools daily as an engineering practice, not a novelty — for design exploration, code review, and moving faster through the parts of the job that aren't the hard part.

Selected work

Real-time voting platform — race condition at scale

2021 – 2026 · NewCombin

Primary backend engineer on a high-traffic survey and voting platform built for major US broadcast networks. During live broadcast events — the exact moment traffic peaks — votes were silently disappearing.

What broke

A legacy DynamoDB-to-MySQL migration had left a race condition in the vote-write path. Under the concurrent write volume of a live broadcast, writes overlapped and votes were lost with no error, no alert — just a count that didn't add up after the show aired.

What I did

  • Traced the loss to the migration's overlapping writes and rebuilt the path around Redis-based vote buffering, collapsing concurrent increments into atomic operations before they ever reached MySQL.
  • Optimized the critical queries in the read/aggregation path and configured CPU-based EC2 autoscaling to absorb live-broadcast traffic spikes.
  • Validated the fix with JMeter load tests at 30,000 votes/minute — zero data loss, a 5x increase in processing capacity over the previous ceiling.
  • Removed the dead code left over from the original migration once the new path proved out in production, closing off a source of latent bugs.
  • Built and extended the platform's social distribution integrations (Instagram, TikTok, Facebook, Vimeo) for direct video/image publishing from its media management platform.

ink-cover — serverless migration

2025 – present · Personal project

A Node.js/TypeScript product that turns uploaded images into analysis reports, built with two partners as a personal project outside my day-to-day work. I lead the backend and I'm moving the whole platform off one droplet onto AWS serverless while it keeps serving traffic.

Where it started

A single DigitalOcean droplet ran the API, the Postgres database and image processing together. Deploys were a git push that SSH'd into the box — no CI gate, no rollback, no preview. Every upload processed synchronously, so traffic spikes queued behind image work and the API slowed for everyone.

What I did

  • Introduced a StoragePort interface with an S3Storage implementation, moving image and preview bytes out of Postgres and onto S3. Read paths now serve signed URLs instead of base64 payloads.
  • Added previewKey / imageKey columns plus a backfill, and relaxed the legacy base64 NOT NULL constraint so old and new rows coexist through the cutover.
  • Redesigned the analysis pipeline around a Queue port with a pluggable backend — one Postgres implementation today (LISTEN/NOTIFY + FOR UPDATE SKIP LOCKED), one SQS implementation for AWS, same worker code either way.
  • Designed the target AWS architecture end to end in CDK: App Runner for the API, the existing worker Docker image redeployed as a container-image Lambda behind SQS, EventBridge routing job-completion events to SES for email notifications, and Neon (serverless Postgres) in place of a managed instance.
  • Killed a class of "stale app after deploy" bugs — a cached index.html and orphaned service workers that kept serving a months-old bundle to returning users.

Architecture decisions

  • App Runner over API Gateway + Lambda for the API — the request path is rarely idle at this traffic, so a container that autoscales on its own beats paying Lambda's cold-start tax on every request.
  • Neon over RDS — at this volume an always-on managed instance would cost more than the workload itself; Neon bills for compute actually used and scales to zero between requests.
  • No VPC, no NAT gateway — App Runner, the worker Lambda and Neon all talk over public TLS endpoints. A private database would have forced a NAT gateway that alone costs more than the database.
  • Worker ships as the same container image the droplet ran, redeployed to Lambda — no parallel build pipeline to maintain for two runtimes.

Print optimization platform — microservices architecture

2016 – 2022 · Verdant Solution

Co-founded a software studio serving the graphic arts industry and designed its flagship product: a print optimization system that lays out jobs to minimize material waste.

What I did

  • Designed a microservices architecture: a Node.js/TypeScript backend orchestrating async PDF generation jobs over RabbitMQ, and a Python microservice using Ghostscript to compute layouts that minimize material waste.
  • Built real-time order-status updates over WebSockets and moved generated artifacts to S3.
  • Cut PDF data-extraction time 75% with a Node.js REST API backed by the Python microservice.
  • Cut internal approval-workflow completion time 50% by replacing polling with real-time WebSocket (Socket.IO) file flows.
  • Cut local environment setup time 40% by containerizing the stack with Docker and managing processes with PM2.

Stack

Runtime

  • Node.js — core
  • TypeScript — strict
  • Python — Django
  • NestJS / Express
  • Jest — unit · integration

Data

  • PostgreSQL — primary · Neon serverless
  • MySQL · DynamoDB · MongoDB
  • Redis — cache · buffering
  • RabbitMQ — messaging
  • TypeORM · Sequelize · Drizzle

AWS

  • EC2 · App Runner — API
  • Lambda — container-image worker
  • SQS · SNS · EventBridge · SES
  • S3 · CloudFront · Route 53
  • CodeDeploy · IAM · CDK

Delivery

  • Docker · Docker Compose · PM2
  • GitHub Actions · Bitbucket Pipelines
  • Observability — Sentry · CloudWatch
  • Load & failure testing — JMeter

Path

2025 — now
Backend Engineer · ink-cover Personal project

Building a graphic-arts SaaS product with two partners, in my own time — leading its migration off a single droplet onto an AWS event-driven architecture (SQS, Lambda, App Runner, CDK).

2021 — 2026
Senior Software Engineer · NewCombin

Primary backend engineer across edtech, media, and travel client projects. Fixed a data-loss race condition on a live broadcast-voting platform, validated at 30,000 votes/min with zero loss.

2016 — 2022
Co-Founder & Software Engineer · Verdant Solution

Co-founded a software studio for the graphic arts industry; designed a Node.js/Python microservices platform for print layout optimization.

2020 — 2021
Full Stack Developer · NetRacer Freelance

Automated tournament-results processing from game-output XML, cutting processing time 60%.

2019 — 2021
Software Development Engineer · COMBINATORIA

Full stack engineer on a maritime operations platform — vessel, cargo, and voyage tracking with Angular and a custom REST API.

2014 — 2019
Information Systems Engineering · Universidad Tecnológica Nacional

Buenos Aires, Argentina.

Contact

Available now for full-time senior backend roles — Node.js + AWS is home turf. Let's talk.