
json2types (opens in a new tab)
Paste JSON, get C# classes or records and TypeScript interfaces as you type. It merges every sample to find what’s optional and nullable, sizes numbers exactly, and runs entirely in the browser.
Software Crafter · Porto, Portugal
A passionate software engineer who loves transforming ideas into reality. Dive in to explore my journey, projects, and the cool stuff I’m working on.
01Portfolio

Paste JSON, get C# classes or records and TypeScript interfaces as you type. It merges every sample to find what’s optional and nullable, sizes numbers exactly, and runs entirely in the browser.

Four original casino table games: the player rolls the dice and the dealer deals the cards. Three are ready to play with virtual chips, their math proven exactly and by simulation.

Converts a salary between hourly, daily, weekly, monthly and yearly pay in BRL, USD, EUR and GBP, with the Central Bank of Brazil’s exchange rates and shareable links.
02Games

A calm, clever puzzle: tap the arrows out, one by one, and clear the board. Endless levels, a daily challenge and a league, now on the App Store and on the web.

A calm water sort puzzle: pour the colors until every tube holds one. Endless levels, a daily puzzle and a league, on the web now and soon on the iPhone.

A calm castle logic puzzle: one castle per row, column and realm, none touching. Endless levels, a daily challenge and a league, on the web now and soon on the iPhone.

A neon arcade space shooter for one thumb: waves of enemies, bosses and power-ups worth the risk. Endless runs and a daily run, on the web now and soon on the iPhone.

A Sudoku with three levels, notes, undo and hints. It saves your game as you play and works offline.
03Articles
How json2types turns pasted JSON into C# classes and TypeScript interfaces: keeping the text of every number, merging every sample instead of reading the first, sizing integers and decimals exactly, typing dates only when every value is one, choosing names every compiler accepts, and testing the output against the real .NET and TypeScript compilers.

Polly v8 replaced policies with resilience pipelines, and Microsoft.Extensions.Http.Resilience made a sensible default one line. What each strategy actually does, measured against a deliberately flaky local server: jittered backoff, a breaker that fails in a hundredth of a millisecond, timeouts that cancel the request, and why the order of strategies matters.

EF Core's in-memory provider passes tests that the real database fails: unique indexes, column lengths, foreign keys and decimal precision are all ignored. Testcontainers starts a real PostgreSQL per test run in about three seconds. The same four tests, both ways, with real timings and a setup that keeps a hundred tests under a second.

An agent is a model, a set of tools and a loop. With Microsoft.Extensions.AI that's a few dozen lines of C#. The work is in the guardrails: rules enforced in code, approvals for actions that change things, a cap on the loop, and tests that don't need a model. A support agent built and run against a local model, with its real output.

04Journey
2025 – present
Three clients so far: .NET, SQL Server and Azure for PremFina; Aileen, Ardanis’s AI contact-center platform, for SOBI Analytics; and an AI agent that answers questions about Anglo American’s haul trucks and mining equipment.
2024 – 2025
For a veterinary-pharmaceutical client, I automated batch creation and deployment, migrated the legacy app to .NET 8, and developed a proactive monitoring system.
2024
I worked at NewDay through YLD, on a team responsible for payments, utilizing .NET Core, Cosmos, and REST APIs.
2023 – 2024
Transformed software pipelines with GitHub Actions, authored open-source libraries, overhauled server architecture with AWS Lambda, and built monitoring tools using ASP.NET and ECMAScript 6.
2022
Strengthened SQL Server infrastructure, contributed to a global pharma research app, and conducted code reviews.
2020 – 2022
Built a new API for claims ticket management in the insurance industry using SQL, REST, and ASP.NET Core; contributed to a hybrid ticket type in transportation, integrated systems for customer credit and address validations, improved system resilience to 99.99%, implemented a high-speed batch process for 1 million customers, and developed a Grafana dashboard for real-time API monitoring.
2017 – 2019
Performed as a lead developer for the high-traffic product display page, overseeing 10,000+ requests per minute, conducted monthly one-on-one meetings with a team of ten engineers and QA professionals, balanced team backlog with the product owner, and managed feature releases and A/B testing.
05Contact
The best way to reach me is on LinkedIn.