# Martín Catalá > Fullstack developer with 7+ years across React, React Native, Node, and the infra in between. I've owned products end-to-end enough times that I now think in terms of what to build, not just how. In the AI era I care more about knowing when to move fast than moving fast by default — I read books, I read code, I write code I'm not embarrassed by later. Less interested in being a code factory, more interested in hard problems worth solving well. Currently open to new roles. - **Role**: Fullstack Developer - **Location**: Formosa, AR - **Email**: martincatala14@gmail.com - **Site**: https://bit90s.xyz ## Resume - [PDF](https://bit90s.xyz/resume.pdf) - [JSON Resume](https://bit90s.xyz/resume.json) — canonical machine-readable format ## Profiles - [GitHub](https://github.com/bit90s) - [LinkedIn](https://www.linkedin.com/in/mcatala-dvlpr/) ## Experience ### Full Stack Engineer — Aerolab (2025-08 – 2026-04) Full Stack Engineer at a product agency, owning multiple client projects simultaneously. Worked across the entire stack — React Native mobile apps, Next.js sites, CMS integrations, AWS backends, and CI/CD pipelines. Known for taking sole ownership quickly and surfacing problems before they become expensive. - Sole developer on MercadoLibre's job leads landing page (Prismic CMS); diagnosed deep tech debt and built a full GitLab CI + Dokku pipeline from scratch, achieving fully automated staging deploys - Took sole ownership of Renxo (React Native wellness app) within a week: RN development, website, CMS, AWS Amplify backend, and iOS/Android builds - Replaced untyped REST endpoints (typed as any) with typed GraphQL queries using React Query, improving backend reliability and developer experience - Migrated Renxo from deep links to universal links on both iOS and Android with no prior experience — fully working on both platforms in under a week - Investigated rising Sanity bandwidth costs (50% over 100 GB quota in 15 days); advocated for addressing the root cause (>1 GB dev asset downloads per pnpm dev run), then engineered a custom video caching mechanism in Next.js 16 using streaming and tee() that brought consumption well within quota - Won internal hackathon (2-dev team) building a family task management web app; owned all infra and deployment so the other dev could focus entirely on product — "just push to main and it's live" ### Full Stack Developer — WakeUp Labs (2024-06 – 2025-07) Full Stack Developer at a web3 engineering company, working on the web2 layer of blockchain products for clients including Optimism. Delivered end-to-end across React frontends, serverless APIs, and PostgreSQL backends. Migrated a Google Sheets database to a properly modelled Postgres schema and built a governance dashboard for Optimism DAO used by stakeholders to track and manage proposals. - Built an integration pipeline for an endangered species NFT platform: consumed an external client API, triggered NFT minting, updated the database, and surfaced results on the site - Navigated a heavily over-engineered hexagonal architecture codebase and shipped despite the friction - Built a DAO governance dashboard for Optimism: public read view + Jira-style in-place editing for admins, using React, TanStack, a dedicated serverless API, and Prisma/Postgres deployed on SST (AWS) — solved a known Prisma-on-Lambda compatibility issue with no AI tooling available - Migrated a Google Sheets "database" (5 spreadsheets, 30k+ rows) to a properly modelled Postgres schema; version-controlled untracked .gs scripts, built a cron to sync new rows across 5→10 tables, and added manual triggers to keep content writers unblocked - Pushed back on an over-engineered DB schema proposal in favor of a simpler model — overruled, but the concern was documented ### Fullstack Developer — Educabot (2021-07 – 2024-04) Frontend developer on a Learning Management System for schools. Owned the admin dashboard domain covering teachers, classrooms, and assignments. Learned TypeScript on the job from day one. - Sole owner of the admin dashboard: all features related to institutions, classrooms, teachers, and assignments came through me - Worked within a strict Redux-for-everything architecture (including form fields) across a large React + TypeScript codebase ### Fullstack Developer — Sooft (2020-06 – 2021-04) React Native developer on a fan-facing ticketing and payments app for Belgrano de Córdoba, plus a companion gatekeeper app for stadium entry. Briefly stepped up as lead developer after the previous lead resigned. - Built features across two React Native apps: fan ticketing/payments and a QR-based gatekeeper entry app - Temporarily led the team after the lead developer resigned ### Fullstack Developer — Flexxus (2019-09 – 2020-04) First professional role. Frontend and backend development on an invoice management web app, working with React on the frontend and a Node/Express API integrated with a Firebird SQL database. - Built and maintained a React frontend for invoice and document management - Worked with a Node/Express backend integrated with third-party platforms and a Firebird SQL database ## My values ### BORN IN THE 90s There's a generation of developers who didn't start coding with Stack Overflow, let alone AI. We learned by reading, breaking things, and reading some more. We watched the web go from tables and marquee tags to React and edge functions — and we understood each step because we had to. Being born in the 90s isn't about nostalgia. It's about having built intuition the hard way, before shortcuts existed. The tools change. The thinking doesn't. ### FULL STACK DEVELOPER I don't specialize in a layer — I specialize in the outcome. I can design a database schema in the morning, wire up an API by noon, and polish the UI in the afternoon. I lean toward backend — logic, data flow, and systems thinking are where I feel most at home. But I know enough about every layer to make good decisions across all of them, and to avoid the blind spots that come from only owning one piece. You won't need to translate between me and another team. ### NO VIBECODING ALLOWED Vibecoding is what happens when someone mistakes output for understanding. You prompt, it generates, you ship — and nobody actually knows why it works or what breaks it. I use AI constantly, but as an accelerator for thinking I've already done, not a replacement for doing it. Before I ask AI to write something, I know what I want and why. The difference shows up in code review, in production incidents, and in the conversations six months later when something breaks. I can have those conversations. ### READY TO SHIP ON DAY ONE Starting somewhere new is a skill. A lot of developers need weeks of ramp-up before they touch production. I don't. I've gotten good at reading codebases cold — finding the conventions, understanding the architecture, identifying where to plug in without breaking what's already there. I ask questions when I need to, but I come to those conversations having already done the work to understand the context. Day one isn't about proving yourself. It's about being useful. ### USE AI. DONT LET IT USE YOU. The developers who will struggle in the next decade aren't the ones who refuse to use AI — it's the ones who let AI do their thinking for them. AI is extraordinarily useful: it writes boilerplate, suggests approaches, catches errors, and speeds up every part of the development cycle. But none of that replaces the judgment required to know what to build, how to structure it, and whether the output is actually correct. The thinking stays with me. The typing can go to the machine. ### NO BULL$#%& HERE I don't have a personal brand built on LinkedIn, hot takes or conference talks about things I've done once. I don't claim expertise I don't have, and I don't dress up straightforward work in impressive-sounding language. What I do have is a clear-eyed view of what I'm good at, what I'm still learning, and what it takes to actually ship software in the real world. I say what I mean, I mean what I say, and I don't waste time on things that don't matter. ### FROM IDEA TO PRODUCT A lot of developers can build something. Fewer can take ownership of getting it into the world — and keeping it there. I've set up CI/CD pipelines, configured Docker environments, deployed to Vercel and AWS, and dealt with the unglamorous work of making sure what runs on my machine also runs in production. I'm not a DevOps specialist, but I know enough to not be blocked by the infrastructure side of the job. From the first conversation about what to build, to the moment it goes live, I can own that arc. ### DONE BEATS PERFECT Perfect is a moving target. The codebase you're imagining in your head is always cleaner than the one you're about to write, and waiting until it's ready is how projects die quietly. I ship — not carelessly, I care about quality and readability — but I've internalized that working software in front of real users is more valuable than polished software that never ships. You learn more from the former in a week than the latter in a month. Done is a feature. Iterate from there. ### AI IN THE LOOP Not a fan of human-in-the-loop. AI does the thinking, human approves — that's not control, that's the illusion of it. Flip it: I think, I decide, AI writes. Simple as that. ### ARRANGE. ACT. ASSERT. Not everything needs tests. A static marketing site doesn't need a test suite. A one-off migration script doesn't either. Knowing when to test is as important as knowing how. When tests do matter — real logic, real edge cases, real consequences for breakage — I write them properly: arranged setup, a single action, clear assertions. No clever fixtures that obscure what's being tested. No mocks that paper over real behavior. ARRANGE / ACT / ASSERT is a pattern, but also a mindset: keep tests focused, readable, and failing for the right reasons. ## Skills - **Languages** (Advanced) — TypeScript, JavaScript, HTML, CSS, Bash, YAML, Markdown - **Frontend** (Advanced) — React, Next.js, React Native, React Router, Redux, RTK Query, Astro, Tailwind CSS, ElectronJS - **Backend** (Advanced) — Node.js, Express, NestJS, Fastify, Hono, GraphQL, RESTful APIs, tRPC, AWS, Serverless, MCP, Redis, WebSockets - **Databases** (Intermediate) — PostgreSQL, MongoDB, Prisma, Drizzle, SQLite - **AI & LLMs** (Intermediate) — Claude, Anthropic API, LLM, Ollama, Prompt Engineering, MCP, AI Agents - **Testing** (Intermediate) — Jest, Vitest, Puppeteer, Playwright, Supertest - **Tooling** (Advanced) — Git, GitHub, GitLab, BitBucket, Docker, Postman, CI/CD, Vite, Turbo, Dokku, Vercel, Heroku, SST, Agile, Scrum ## Projects ### idww (I Don't Wanna Work) Developer workflow platform that attaches to any repo without leaving a trace — one .gitignore entry is the only footprint. Orchestrates Claude agents end-to-end: picks up GitHub tickets, spawns Claude sessions, tracks progress via MCP tools, and communicates back via Telegram. Started as a way to work away from the keyboard; evolving into an AI dogfooding framework. Built with itself. - Zero-footprint design: attaches to any existing repo with a single .gitignore entry - MCP server exposes structured agent lifecycle (start/log/ask/complete/fail) and Telegram communication tools - Persistent Claude sessions — interrupt, switch context, and resume with full conversation history preserved - Dogfooding: idww is used to build idww and the site it lives alongside ## Education - **Coursework** in Civil Engineering, UTN Santa Fe / UNNE Resistencia (2010-01 – 2016-01) ## Languages - Spanish: Native - English: Full professional proficiency