{
 "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
 "basics": {
  "name": "Tiago Ferreira Alves",
  "label": "Software Engineer & Architect · Agentic AI Systems",
  "email": "hello@tiagoalves.dev",
  "url": "https://tiagoalves.dev",
  "summary": "Software engineer and architect with eight years of building: six in enterprise .NET and Ruby across regulated domains, two on my own game startup before that. Today I work on software and architecture at FARO INSIGHT and build multi-agent workflows from the ground up: custom agents, skills, hooks and MCP servers, running on my own GPUs. I want hard systems, real stakes and teams that take AI engineering seriously.",
  "location": {
   "city": "Golegã",
   "countryCode": "PT"
  },
  "profiles": [
   {
    "network": "LinkedIn",
    "url": "https://www.linkedin.com/in/tiago-ferreira-alves"
   },
   {
    "network": "GitHub",
    "username": "0xtfa",
    "url": "https://github.com/0xtfa"
   }
  ]
 },
 "work": [
  {
   "name": "Turbina",
   "position": "Founder",
   "startDate": "2026",
   "summary": "Digital presence for everyone. A startup that runs on agents instead of overhead.",
   "highlights": [
    "Started Turbina for Portuguese businesses, built on one bet: when agents make execution fast, the site can exist before the sale.",
    "Every site is built before any agreement or payment. Approval to live takes under 24 hours.",
    "Designed the platform end to end: a multi-tenant .NET 10 Native AOT API, isolated React front ends and an agent that researches and qualifies prospects.",
    "Self-hosted on my own hardware behind Cloudflare Tunnel, with CI/CD through self-hosted runners."
   ]
  },
  {
   "name": "FARO INSIGHT",
   "position": "Software Engineer",
   "startDate": "2024",
   "summary": "Software engineering and architecture at the reality-capture business behind FARO laser scanning.",
   "highlights": [
    "Engineering and software architecture work for 3D reality capture.",
    "Building in Kotlin and Java on Azure, with MongoDB, PostgreSQL and Redis for data and Terraform for infrastructure."
   ]
  },
  {
   "name": "Capgemini",
   "position": "Software Engineer Lead",
   "startDate": "03/2022",
   "endDate": "12/2023",
   "summary": "Led engineering on the currency exchange platform used at bank counters.",
   "highlights": [
    "Upgraded the legacy currency exchange platform used for bank counters, administration and control management.",
    "Built new independent services for legal document storage and distribution, and for very large periodic data extractions.",
    "Integrated and supervised junior engineers and trainees joining the team.",
    "Training advisor for Capgemini’s 2023 .NET Academy."
   ]
  },
  {
   "name": "VORTAL Connecting Business",
   "position": "Backend Software Developer",
   "startDate": "09/2021",
   "endDate": "03/2022",
   "summary": "Moved a procurement platform from a .NET Framework monolith to .NET Core microservices.",
   "highlights": [
    "Worked the transition from “Next”, a .NET Framework monolith, to “Vision”, a .NET Core microservices platform.",
    "Kept the legacy platform running and shipping features throughout the migration.",
    "Delivered on the Colombia project, then on Byggfakta, the group that now owns VORTAL."
   ]
  },
  {
   "name": "VTXRM – Software Factory",
   "position": "Backend Software Developer",
   "startDate": "07/2020",
   "endDate": "09/2021",
   "summary": "Wired credit scoring and anti-fraud into live contract decisions.",
   "highlights": [
    "Built and maintained features on Accipiens, the contract management platform for Volkswagen Financial Services UK.",
    "Integrated external credit score and anti-fraud services into the contract decision process.",
    "Joined the newly formed ACE team for developments that required changes to the platform’s internals.",
    "Took responsibility for every deployment to the client."
   ]
  },
  {
   "name": "Universidade Lusófona",
   "position": "VR Developer (part-time)",
   "startDate": "02/2020",
   "endDate": "07/2020",
   "summary": "Small VR experiences for academic research.",
   "highlights": [
    "Developed small VR experiences, mainly for research."
   ]
  },
  {
   "name": "HotBrew Games",
   "position": "Founder, Game Developer",
   "startDate": "09/2018",
   "endDate": "08/2020",
   "summary": "My first startup: a small game studio that made a horror adventure about the Chornobyl disaster.",
   "highlights": [
    "Designed, developed and produced Geiger’s Ticking, a semi-fictional adventure and horror story based on the 1986 Chornobyl disaster.",
    "Covered by the Portuguese tech press in PC Guia.",
    "Worked the whole pipeline: gameplay code, shaders, tooling, art and sound."
   ]
  }
 ],
 "education": [
  {
   "institution": "Universidade Lusófona",
   "studyType": "BSc",
   "area": "Multimedia Applications and Videogames",
   "endDate": "2020"
  }
 ],
 "certificates": [
  {
   "name": "AWS Certified Cloud Practitioner",
   "issuer": "Amazon Web Services",
   "date": "2022 – 2025"
  },
  {
   "name": "NukeX Intermediate Certificate",
   "issuer": "Foundry"
  },
  {
   "name": "GESE",
   "issuer": "Trinity College London"
  }
 ],
 "languages": [
  {
   "language": "Portuguese",
   "fluency": "Native"
  },
  {
   "language": "English",
   "fluency": "C2"
  },
  {
   "language": "Spanish",
   "fluency": "A2"
  },
  {
   "language": "French",
   "fluency": "A1"
  }
 ],
 "profile": {
  "name": "Tiago Ferreira Alves",
  "headline": "Software Engineer & Architect · Agentic AI Systems",
  "summary": "Software engineer and architect with eight years of building: six in enterprise .NET and Ruby across regulated domains, two on my own game startup before that. Today I work on software and architecture at FARO INSIGHT and build multi-agent workflows from the ground up: custom agents, skills, hooks and MCP servers, running on my own GPUs. I want hard systems, real stakes and teams that take AI engineering seriously.",
  "location": "Golegã, Portugal",
  "workModes": "Remote, or hybrid in Portugal",
  "links": {
   "linkedin": "https://www.linkedin.com/in/tiago-ferreira-alves",
   "github": "https://github.com/0xtfa",
   "nuget": "https://www.nuget.org/packages/Snowspeck",
   "turbina": "https://www.turbina.pt"
  },
  "interests": [
   {
    "title": "Below the API",
    "body": "I want to understand models from the weights up: how they are trained, tuned and evaluated. Running them at home was the first step."
   },
   {
    "title": "AI research",
    "body": "I follow the papers, not just the changelogs. I would love a seat near the people writing them."
   },
   {
    "title": "Off the planet",
    "body": "Space, space tech and astronomy are the long obsession. If you build things that leave Earth, I want to hear from you."
   }
  ],
  "asOf": "2026-11-04"
 },
 "experience": [
  {
   "code": "MSN-07",
   "title": "Turbina",
   "role": "Founder",
   "org": "Turbina",
   "start": "2026",
   "end": "Active",
   "domain": "AI-native web startup",
   "patch": "turbine",
   "summary": "Digital presence for everyone. A startup that runs on agents instead of overhead.",
   "bullets": [
    "Started Turbina for Portuguese businesses, built on one bet: when agents make execution fast, the site can exist before the sale.",
    "Every site is built before any agreement or payment. Approval to live takes under 24 hours.",
    "Designed the platform end to end: a multi-tenant .NET 10 Native AOT API, isolated React front ends and an agent that researches and qualifies prospects.",
    "Self-hosted on my own hardware behind Cloudflare Tunnel, with CI/CD through self-hosted runners."
   ],
   "stack": [
    ".NET 10 Native AOT",
    "React",
    "TypeScript",
    "SQLite",
    "Docker Compose",
    "Caddy",
    "Cloudflare Tunnel",
    "GitHub Actions"
   ]
  },
  {
   "code": "MSN-06",
   "title": "FARO INSIGHT",
   "role": "Software Engineer",
   "org": "FARO INSIGHT",
   "start": "2024",
   "end": "Active",
   "domain": "3D reality capture",
   "patch": "scan",
   "summary": "Software engineering and architecture at the reality-capture business behind FARO laser scanning.",
   "bullets": [
    "Engineering and software architecture work for 3D reality capture.",
    "Building in Kotlin and Java on Azure, with MongoDB, PostgreSQL and Redis for data and Terraform for infrastructure."
   ],
   "stack": [
    "Kotlin",
    "Java",
    "Dagger",
    "MongoDB",
    "PostgreSQL",
    "Redis",
    "Terraform",
    "Azure",
    "Jira",
    "Confluence",
    "Kibana"
   ]
  },
  {
   "code": "MSN-05",
   "title": "Banco de Fomento Angola",
   "role": "Software Engineer Lead",
   "org": "Capgemini",
   "client": "Banco de Fomento Angola",
   "start": "03/2022",
   "end": "12/2023",
   "domain": "Banking",
   "patch": "exchange",
   "summary": "Led engineering on the currency exchange platform used at bank counters.",
   "bullets": [
    "Upgraded the legacy currency exchange platform used for bank counters, administration and control management.",
    "Built new independent services for legal document storage and distribution, and for very large periodic data extractions.",
    "Integrated and supervised junior engineers and trainees joining the team.",
    "Training advisor for Capgemini’s 2023 .NET Academy."
   ],
   "stack": [
    "Ruby",
    "JRuby",
    "Rails",
    "Sinatra",
    "SQL Server",
    "IBM DB2 AS/400",
    "SQLite",
    "Redis",
    "jQuery",
    "C#",
    ".NET Core"
   ]
  },
  {
   "code": "MSN-04",
   "title": "Monolith to microservices",
   "role": "Backend Software Developer",
   "org": "VORTAL Connecting Business",
   "short": "VORTAL",
   "start": "09/2021",
   "end": "03/2022",
   "domain": "E-procurement",
   "patch": "split",
   "summary": "Moved a procurement platform from a .NET Framework monolith to .NET Core microservices.",
   "bullets": [
    "Worked the transition from “Next”, a .NET Framework monolith, to “Vision”, a .NET Core microservices platform.",
    "Kept the legacy platform running and shipping features throughout the migration.",
    "Delivered on the Colombia project, then on Byggfakta, the group that now owns VORTAL."
   ],
   "stack": [
    "C#",
    ".NET Framework",
    ".NET Core",
    "Distributed systems",
    "SQL Server",
    "REST",
    "SOAP",
    "Redis",
    "Elasticsearch",
    "Cassandra",
    "React",
    "Angular",
    "Docker"
   ]
  },
  {
   "code": "MSN-03",
   "title": "Volkswagen Financial Services UK",
   "role": "Backend Software Developer",
   "org": "VTXRM – Software Factory",
   "short": "VTXRM",
   "client": "Volkswagen Financial Services UK",
   "start": "07/2020",
   "end": "09/2021",
   "domain": "Automotive finance",
   "patch": "shield",
   "summary": "Wired credit scoring and anti-fraud into live contract decisions.",
   "bullets": [
    "Built and maintained features on Accipiens, the contract management platform for Volkswagen Financial Services UK.",
    "Integrated external credit score and anti-fraud services into the contract decision process.",
    "Joined the newly formed ACE team for developments that required changes to the platform’s internals.",
    "Took responsibility for every deployment to the client."
   ],
   "stack": [
    "C#",
    ".NET Framework",
    "SQL Server",
    "REST",
    "SOAP",
    "WinForms"
   ]
  },
  {
   "code": "MSN-02",
   "title": "VR research",
   "role": "VR Developer (part-time)",
   "org": "Universidade Lusófona",
   "short": "Lusófona",
   "start": "02/2020",
   "end": "07/2020",
   "domain": "Virtual reality",
   "patch": "lens",
   "summary": "Small VR experiences for academic research.",
   "bullets": [
    "Developed small VR experiences, mainly for research."
   ],
   "stack": [
    "Unity 3D",
    "C#",
    "SQL Server",
    "SQLite"
   ]
  },
  {
   "code": "MSN-01",
   "title": "Geiger’s Ticking",
   "role": "Founder, Game Developer",
   "org": "HotBrew Games",
   "start": "09/2018",
   "end": "08/2020",
   "domain": "Video games",
   "patch": "trefoil",
   "summary": "My first startup: a small game studio that made a horror adventure about the Chornobyl disaster.",
   "bullets": [
    "Designed, developed and produced Geiger’s Ticking, a semi-fictional adventure and horror story based on the 1986 Chornobyl disaster.",
    "Covered by the Portuguese tech press in PC Guia.",
    "Worked the whole pipeline: gameplay code, shaders, tooling, art and sound."
   ],
   "stack": [
    "Unity 3D",
    "C#",
    "C++",
    "Python",
    "HLSL/Cg",
    "Maya",
    "Substance Painter",
    "Pro Tools"
   ]
  }
 ],
 "skills": [
  {
   "key": "core",
   "label": "Core",
   "axes": [
    {
     "skill": "Backend",
     "score": 9,
     "evidence": "C# and .NET since 2018. Credit and anti-fraud integrations for VW Financial Services UK, microservices at VORTAL, a .NET 10 Native AOT API at Turbina. Kotlin and Java at FARO INSIGHT."
    },
    {
     "skill": "Architecture",
     "score": 8,
     "evidence": "Monolith to microservices at VORTAL. Architecture work at FARO INSIGHT. Turbina’s multi-tenant platform, designed from nothing."
    },
    {
     "skill": "Agentic AI",
     "score": 9,
     "evidence": "Custom LLM agents, skills, hooks and MCP servers in daily use. My largest agent-built codebase reached 790+ commits in 9 weeks."
    },
    {
     "skill": "Data",
     "score": 7,
     "evidence": "PostgreSQL, MongoDB, Redis, SQL Server, IBM DB2 AS/400, SQLite. Very large periodic extractions for a bank."
    },
    {
     "skill": "Real-time 3D",
     "score": 7,
     "evidence": "Unity and shaders at HotBrew Games, VR at Lusófona, a walkable digital twin in three.js, raw WebGL2 on this page."
    },
    {
     "skill": "Frontend",
     "score": 6,
     "evidence": "TypeScript, React, Angular. This site ships without a UI framework."
    },
    {
     "skill": "Infra",
     "score": 7,
     "evidence": "Azure and Terraform at FARO INSIGHT. My own Proxmox, Docker and GPU stack, with self-hosted CI runners. Owned every client deployment at VTXRM."
    },
    {
     "skill": "Leadership",
     "score": 7,
     "evidence": "Software Engineer Lead at Capgemini, supervising juniors and trainees. Training advisor at the .NET Academy. Founder, twice."
    }
   ]
  },
  {
   "key": "agents",
   "label": "Agents",
   "axes": [
    {
     "skill": "Orchestration",
     "score": 9,
     "evidence": "Multi-agent workflows with parallel fan-out, review passes and scripted pipelines."
    },
    {
     "skill": "Context eng.",
     "score": 9,
     "evidence": "AGENTS.md hierarchies, doc maps, session snapshots and decision logs that agents must search before proposing a reversal."
    },
    {
     "skill": "Skills & hooks",
     "score": 9,
     "evidence": "Project skills for repeat craft. Session-start and stop hooks that catch slips while they cost one line to fix."
    },
    {
     "skill": "MCP servers",
     "score": 8,
     "evidence": "audiogen exposes my GPUs to agents over MCP. This CV is an MCP server too."
    },
    {
     "skill": "Verification",
     "score": 8,
     "evidence": "Agents prove work with tests, type checks and CI, then render the result and look at it."
    },
    {
     "skill": "Local inference",
     "score": 7,
     "evidence": "Open-weight models on two RTX 3060 Ti on Proxmox. GPUs power on with the first job and off when idle."
    },
    {
     "skill": "Model training",
     "score": 3,
     "evidence": "The next quest. I am moving below the API, into how weights are trained, tuned and evaluated."
    }
   ]
  },
  {
   "key": "languages",
   "label": "Languages",
   "axes": [
    {
     "skill": "C#",
     "score": 9,
     "evidence": "From Unity in 2018 to .NET 10 today."
    },
    {
     "skill": "TypeScript",
     "score": 8,
     "evidence": "Daily, across React front ends and tooling. This site is strict TypeScript."
    },
    {
     "skill": "SQL",
     "score": 8,
     "evidence": "T-SQL and DB2 in banking and finance systems."
    },
    {
     "skill": "Kotlin",
     "score": 7,
     "evidence": "Main language at FARO INSIGHT, with Dagger."
    },
    {
     "skill": "Java",
     "score": 6,
     "evidence": "Daily at FARO INSIGHT, alongside Kotlin."
    },
    {
     "skill": "Ruby",
     "score": 6,
     "evidence": "Two years of Ruby, JRuby, Rails and Sinatra on a bank’s FX platform."
    },
    {
     "skill": "Python",
     "score": 5,
     "evidence": "Tooling, automation and model pipelines."
    },
    {
     "skill": "HLSL / GLSL",
     "score": 5,
     "evidence": "ShaderLab at HotBrew Games. The GLSL for this page."
    },
    {
     "skill": "C / C++",
     "score": 4,
     "evidence": "Game development and academic work."
    },
    {
     "skill": "COBOL",
     "score": 2,
     "evidence": "Yes, really. I went and learned it."
    }
   ]
  },
  {
   "key": "data",
   "label": "Data",
   "axes": [
    {
     "skill": "SQL Server",
     "score": 8,
     "evidence": "VTXRM, VORTAL and Capgemini."
    },
    {
     "skill": "SQLite",
     "score": 7,
     "evidence": "Production at Turbina. Banking tools at Capgemini."
    },
    {
     "skill": "PostgreSQL",
     "score": 7,
     "evidence": "Daily at FARO INSIGHT, and across my recent .NET systems with EF Core."
    },
    {
     "skill": "DB2 AS/400",
     "score": 6,
     "evidence": "Core banking data at Banco de Fomento Angola."
    },
    {
     "skill": "MongoDB",
     "score": 6,
     "evidence": "Daily at FARO INSIGHT."
    },
    {
     "skill": "Redis",
     "score": 6,
     "evidence": "Used at FARO INSIGHT, VORTAL and Capgemini."
    },
    {
     "skill": "MySQL",
     "score": 3,
     "evidence": "Used, not preferred."
    }
   ]
  },
  {
   "key": "infra",
   "label": "Infra",
   "axes": [
    {
     "skill": "Linux",
     "score": 8,
     "evidence": "Ubuntu, Debian and Raspbian daily, on servers and on the desktop."
    },
    {
     "skill": "Docker",
     "score": 7,
     "evidence": "Compose stacks in production at Turbina."
    },
    {
     "skill": "CI/CD",
     "score": 7,
     "evidence": "GitHub Actions with self-hosted runners. Deployment owner at VTXRM."
    },
    {
     "skill": "Proxmox",
     "score": 7,
     "evidence": "My own server, with GPU containers and a DMZ."
    },
    {
     "skill": "Azure",
     "score": 6,
     "evidence": "Daily at FARO INSIGHT."
    },
    {
     "skill": "Terraform",
     "score": 5,
     "evidence": "Infrastructure as code at FARO INSIGHT."
    },
    {
     "skill": "Edge & proxy",
     "score": 6,
     "evidence": "Cloudflare Tunnel and Caddy, wildcard routing for client previews."
    },
    {
     "skill": "AWS",
     "score": 4,
     "evidence": "Certified Cloud Practitioner, 2022 to 2025."
    }
   ]
  }
 ],
 "projects": [
  {
   "name": "Turbina",
   "kind": "Startup",
   "status": "LIVE",
   "blurb": "A startup whose sites exist before the sale. Built before any payment, live within 24 hours of approval.",
   "metric": {
    "value": "<24h",
    "label": "approval to live"
   },
   "stack": [
    ".NET 10 AOT",
    "React",
    "Agents"
   ],
   "link": "https://www.turbina.pt"
  },
  {
   "name": "Snowspeck",
   "kind": "Open source library",
   "status": "OSS",
   "blurb": "A lightweight, thread-safe, decodable Snowflake ID generator for .NET, with signed and unsigned 64-bit services.",
   "metric": {
    "value": "3,870",
    "label": "NuGet downloads"
   },
   "stack": [
    "C#",
    ".NET 8",
    "MIT"
   ],
   "link": "https://www.nuget.org/packages/Snowspeck"
  },
  {
   "name": "audiogen",
   "kind": "AI infrastructure",
   "status": "SELF-HOSTED",
   "blurb": "Open-weight audio models on my own GPUs, served to agents over MCP. The GPUs sleep until a job arrives, and progress estimates are learned from real runs.",
   "metric": {
    "value": "2",
    "label": "GPUs, on demand"
   },
   "stack": [
    "MCP",
    "Proxmox",
    "Python",
    "ACE-Step",
    "Stable Audio"
   ]
  },
  {
   "name": "Walkable digital twin",
   "kind": "3D",
   "status": "PRIVATE",
   "blurb": "A 1:1 model of a house built from the architect’s drawings. Walk it, measure it, and x-ray the electrical, solar, network and water routes.",
   "metric": {
    "value": "1:1",
    "label": "real scale"
   },
   "stack": [
    "three.js",
    "JavaScript",
    "Vite"
   ]
  },
  {
   "name": "This CV",
   "kind": "Experiment",
   "status": "YOU ARE HERE",
   "blurb": "One particle field in raw WebGL2, no UI framework, one data file generating every format, and an MCP endpoint your agent can query.",
   "metric": {
    "value": "1",
    "label": "data file, every format"
   },
   "stack": [
    "WebGL2",
    "TypeScript",
    "HTML",
    "CSS",
    ".NET 10"
   ]
  },
  {
   "name": "Geiger’s Ticking",
   "kind": "Game",
   "status": "DEMO",
   "blurb": "Horror adventure set in the Chornobyl disaster. A scientist survives by locking himself in a bunker. Then what?",
   "metric": {
    "value": "2020",
    "label": "demo, PC Guia coverage"
   },
   "stack": [
    "Unity",
    "C#",
    "HLSL"
   ],
   "link": "https://www.youtube.com/watch?v=F8_sZOZRT_4"
  },
  {
   "name": "Bast",
   "kind": "Security tool",
   "status": "PRIVATE",
   "blurb": "Cross-platform bulk file encryption with AES-256, salted key stretching and one thread per file.",
   "stack": [
    "C#",
    ".NET",
    "AES-256"
   ]
  },
  {
   "name": "HotBrew back catalogue",
   "kind": "Games",
   "status": "PORTFOLIO",
   "blurb": "AstroTraveller, a space platformer. Occam’s Blade, including an AR build. Enantio, a dark fantasy.",
   "stack": [
    "Unity",
    "AR/VR"
   ],
   "link": "https://hotbrewgames.github.io"
  }
 ],
 "contact": {
  "email": "hello@tiagoalves.dev",
  "linkedin": "https://www.linkedin.com/in/tiago-ferreira-alves",
  "github": "https://github.com/0xtfa",
  "website": "https://tiagoalves.dev",
  "phone": "Phone and WhatsApp: the number is shown on https://tiagoalves.dev/#comms after giving a name and company.",
  "pdf": "The PDF is available from https://tiagoalves.dev after giving a name and company."
 }
}