Platform
Azure ARM migration patterns
Lessons from moving a microservices estate from Classic to ARM — resource structure, containers, and safer rollouts.
Based in Porto · shipping since 2017
I build APIs and data platforms that stay fast under pressure — the quiet work that keeps production calm.
30+
Microservices migrated to .NET 10
~50ms
Recommendation response time
40+
Services across a live ecosystem
public class JoaoSousa : SoftwareEngineer
{
public string Name { get; } = "João Sousa";
public string Role { get; } = "Senior Software Engineer";
public string Location { get; } = "Porto, Portugal";
public string Focus { get; } = "Cloud-native backends & APIs";
public string[] Stack { get; } =
[
".NET", "WebAPI", "Azure",
"SQL", "MongoDB", "Cassandra",
"Redis", "Kafka", "RabbitMQ",
"Docker", "Kubernetes", "Jenkins"
];
public string[] Industries { get; } =
[
"AI", "Fashion", "Banking"
];
public bool PlaysFutsal { get; } = true;
public string[] AiTools { get; } =
[
"Cursor", "Copilot", "Gemini"
];
public int YearsShipping { get; } = DateTime.UtcNow.Year - 2017;
public void Build() =>
Deliver("scalable systems");
}
Case studies
Defined.ai · 2024–Present
30+ services migrated to .NET 10, architecture across 40+ microservices, and a GDPR solution in a complex Azure ecosystem.
Read case study →
Farfetch · 2020–2024
Recommendation services at ~50ms with high throughput — polyglot data, Kafka, and close collaboration with Data Science / ML.
Read case study →
About
Since 2017 I’ve shipped backends across banking (Natixis), fashion recommendations (Farfetch), and AI infrastructure (Defined.ai) — focused on systems that stay fast and calm in production.
Outside work: futsal, the gym, and a lot of rock — more about that.
Experience
Impact-focused highlights. For deeper narratives, see the case studies.
.NET · WebAPI · SQL Server · Docker · RabbitMQ · Azure · Kubernetes
.NET · Kafka · MongoDB · Cassandra · Redis · Kubernetes · Python
.NET · SQL Server · SSIS · Entity Framework · T-SQL
Case studies
Two stories that show how I approach platform and data-heavy backend work end to end.
Defined.ai · 2024–Present
30+ services migrated to .NET 10, architecture across 40+ microservices, and a GDPR solution in a complex Azure ecosystem.
Read case study →
Farfetch · 2020–2024
Recommendation services at ~50ms with high throughput — polyglot data, Kafka, and close collaboration with Data Science / ML.
Read case study →
Cases · Defined.ai
30+
Microservices migrated to .NET 10
40+
Services in the ecosystem
GDPR
Privacy solution designed
A large microservices estate needed to move off legacy .NET versions, stay operable at scale, and meet stronger privacy expectations for sensitive user data — without freezing delivery.
A modernized service fleet on .NET 10, clearer architecture across 40+ services, and a GDPR-ready approach to sensitive data — built to scale with the product rather than fight it.
.NET 10 · WebAPI · SQL Server · Docker · RabbitMQ · Azure · Kubernetes · EF · Dapper
Cases · Farfetch
~50ms
Recommendation response time
High
Throughput in production
ML
Close DS / ML collaboration
Recommendation systems had to stay fast and reliable under heavy traffic, while integrating evolving ML models and a heterogeneous data landscape.
A production recommendation path delivering around 50ms responses under high throughput — stable enough to absorb ML-driven change without sacrificing the shopping experience.
.NET · WebAPI · Kafka · MongoDB · Cassandra · Redis · Kubernetes · Python · Jenkins
Projects
A short list of things I’m happy to discuss. Public repo links can be added as soon as you share them.
Platform
Lessons from moving a microservices estate from Classic to ARM — resource structure, containers, and safer rollouts.
Data
How SQL, MongoDB, Cassandra, and Redis co-existed in a high-throughput recommendation path.
Privacy
Designing platform controls for consent, retention, and sensitive data flows in a microservices world.
Stack
Full technology set from my experience since 2017 — backends, data, and cloud first.
Education: Degree in Computer Engineering — ISEP, Porto. Trainings from the CV also covered Frameworks and related .NET topics listed above.
More about me
From Porto — still chasing the ball, lifting, and blasting Wet Sand.
20+
Years on the court. Still playing.
Private
Protected by API key. Not linked in the main nav —
open #/admin directly.
—
Total views
—
Last hour
—
Unique (1h)
—
Last 24 hours
—
Last 7 days
—
Last 30 days
—
Unique (30d)
—
Unique (all time)
—
Your views
| Day | Views | Unique IPs |
|---|
| Path | Views |
|---|
| Country | Views |
|---|
| City | CC | Views |
|---|
| ISP | Views |
|---|
| Browser | Views |
|---|
| OS | Views |
|---|
| Language | Views |
|---|
| Source | Views |
|---|
Work laptop and personal mobile IPs are kept here so main tables stay clean.
| Device | IP | Views | CC | City | ISP | UTM | Last seen (PT) |
|---|
Quantos IPs distintos viram a página em cada dia (≈ pessoas/dispositivos/redes).
| Day | IP | Views | CC | City |
|---|
Mesmo IP ≈ mesma rede (NAT/VPN podem agrupar ou separar pessoas).
| IP | Views | Days | CC | Region | City | ISP | Last seen (PT) |
|---|
When (PT) = Europe/Lisbon. Na base (Supabase/SQL) os valores estão em UTC.
| When (PT) | IP | Path | CC | Region | City | UTM | Referrer | ISP | Device |
|---|