Software Engineer, Orlando, FL

I build web apps, integrations, and data tools.

Software engineer in Orlando. I build analytics interfaces and integrations at Mouseflow and data tooling at Cencora, and I run Formship, my own small software and games company.

At work
Integrations and dashboard components at Mouseflow. Python tooling for data pipelines at Cencora.
Open to
Software and gameplay engineering roles, in Orlando or remote.
Formship screenshot

Formship

The course-generation pipeline behind my company's first product: staged model calls, schema-checked output, and a sync step that patches training when its source changes.

Architecture, generation pipeline, and product design

barato.si screenshot

barato.si

A daily index of US price drops and probable price errors: a static Nuxt site fed by a TypeScript pipeline that keeps its own price history.

Product design, data contract, and pipeline architecture

BuildValue screenshot

BuildValue

Compare League of Legends items and full builds by their gold efficiency, using data from Riot's API.

Full-stack development and item-data pipeline

HasteCV screenshot

HasteCV

A resume and cover-letter builder with rich-text editing, PDF exports, and an MCP server for AI clients.

Product design, full-stack development, and MCP API

Experience

Cencora (Intrinsiq)

Senior Data Operations Engineer

  • Build Python tooling that monitors and manages high-volume data pipelines on Azure Databricks and SQL Server.
  • Own CI/CD for production deployments through Azure DevOps, adding pre-deploy checks that cut rollout incidents.
2025 – Present

Mouseflow

Software Engineer

  • Simplified the analytics dashboard’s freshly migrated Vue 3 components and repaired the Chart.js filter pipeline, so toggling one filter no longer fired them all.
  • Built the dashboard’s data-visualization components in Vue and Chart.js: heatmaps, session-replay surfaces, and funnel views used across customer dashboards.
2023 – Present

Formship LLC

Founder

  • Run my own small company. It sells help-center drift audits: we compare a SaaS company’s public changelog with its public help center and report each article a release made wrong, with every quote checked against the live page.
  • Publish barato.si, a daily index of US price drops in Spanish and English, built as a static Nuxt site on a TypeScript pipeline.
2025 – Present

Aizhak Coffee

Full-Stack Developer (Contract)

  • Built a real-time ecommerce storefront in Vue 3 and TypeScript on Firebase, from cart to live inventory.
  • Shipped the MVP ordering flow in under six weeks, working directly with design and backend.
2023 – 2024

Baptist Health South Florida

Junior Frontend Developer

  • Built responsive patient-portal interfaces in React and TypeScript under WCAG accessibility requirements.
  • Integrated the frontend with Java Spring Boot APIs handling sensitive patient data.
2022 – 2023

About

Portrait by a window, wearing a floral shirt

Most of my work is web applications, integrations, and data pipelines. At Mouseflow I build analytics interfaces and integrations. At Cencora, I build Python tools for production data workflows and maintain their deployment pipelines.

Outside work, I run Formship LLC, a small company I founded. It sells help-center drift audits, publishes barato.si, a daily index of US price drops, and releases my games under Formship Games. Formship began as a course-generation product; the pipeline behind it is the project featured here. HasteCV is a resume builder I use myself. I also make games, because I get to draw and then watch people play them.

Writing

Postmortems and design notes

A price forecast that has to grade itself

Research notes from barato.si: how the price-error engine weighs evidence, and why the new forecast publishes its own report card.

3 min

I Won't Be Abducted: fixing what players couldn't read

A placement flow that passed its tests and ate clicks, a boss with bad instructions, and an economy that gave tools away. The September update.

5 min

Silhouettes before commitments

The four-gate look test I run before any character or prop earns a place in a game.

4 min

ThunderBashers: rebuilding the look without breaking the game

How the post-jam overhaul went out as version 1.1 on Wavedash: staged by visibility, guarded by flags, judged in the engine.

6 min

Spare Knight: choosing the engine you can ship

Why I parked a from-scratch Unity rebuild, kept the jam codebase, and pointed it at Steam.

4 min

Undead Signal: five days of rules before a line of code

Killing three drafts, the rule that gave back depth I never designed, and balancing a roguelike with a bot that plays 300 runs.

6 min

ThunderBashers: shipping a Unity brawler in five days

A mid-jam engine switch, a mechanic that felt broken for three days, and the telegraph that fixed it.

5 min

This site is the case study

The design tokens and motion system behind the previous version of this portfolio.

3 min

Tuning fear by numbers

The player's kit never changes. Every bit of difficulty in I Won't Be Abducted lives in a Godot resource, and here is how that held up.

3 min

I Won't Be Abducted: a 63-hour postmortem

A weekend tabletop-defense game, the economy I cut, and the one ending everything else exists to protect.

4 min

Spare Knight: 13 days, no dice

Why attacks never miss, where the randomness went instead, and what painting a whole cast taught me about scope.

3 min

Tools

Languages
TypeScript, JavaScript, Python, SQL, GDScript
Frontend
Vue 3, React, Blazor, Tailwind, Chart.js, Tiptap
Backend & Data
Node.js, Django, DRF, Flask, Java Spring Boot, SQL Server, Azure Databricks, Firebase
AI & Agentic
Claude Code, Claude API, Cursor, MCP, Multi-agent orchestration, Prompt engineering, Structured output
Game Dev
Phaser 3, Godot 4, GDScript, Krita, Hand-painted art, Data-driven design
Infra & Ops
Docker, Azure DevOps CI/CD, Git, Render