Curriculum vitae

Guilherme Azeredo

Junior Backend Developer · C#/.NET · Python

Vila do Conde, Porto area, Portugal · gui.99.azeredo@gmail.com ·LinkedIn ·GitHub

Summary

Computer Systems Engineering graduate (IPCA, 2026). Five-month internship building an observability platform (Serilog, Elastic Stack, Docker) for a .NET application. I build tested backend services in Python (FastAPI, PostgreSQL) and Node.js — most recently a goalkeeper scouting platform with automated tests and a public demo. Open to hybrid or on-site roles in Porto and Braga.

Experience

Software Developer Intern — Ediprinter, Vila do Conde

Feb 2025 — Jun 2025

  • Integrated Serilog into EDIGCIA (ASP.NET MVC and .NET Core microservices): structured JSON logs enriched with client, service, environment and correlation ID, plus a global exception-handling middleware.
  • Set up the Elastic Stack with Docker Compose — Elasticsearch, Kibana, APM Server, Fleet Server, Filebeat and Heartbeat — with persistent volumes and a single start-up command.
  • Built Kibana data views, dashboards and alert rules (exceptions, failed logins, warnings and errors), and separate roles and spaces for administrators, technicians and clients.
  • Defined an ILM policy (hot, warm, cold) for log retention and explored Elastic APM. The platform was validated in a local environment, monitoring the company's internal logs.

Internship case study →

Projects

Goalkeeper Scouting

Python · FastAPI · PostgreSQL · SQLAlchemy · Alembic

A full-stack scouting platform for goalkeepers, built from raw match-event data. Every keeper is compared only with peers from the same competition and season, and the sample size is always shown next to the number.

Claim-to-Evidence Scouting

Python · pydantic · pandera · pandas · Hypothesis

A scouting report makes claims — "creates a lot of chances", "doesn't track runners". This project tests each one against league data and my own video coding, using rules written down before the data is collected.

Reparte

TypeScript · React · Vite · Tailwind CSS · Vitest

A personal budgeting app: enter what you earned this month and it tells you how much to set aside for bills, savings, investment, leisure, activities and unexpected costs. Works offline; the data never leaves the device.

Ticket sales API

Node.js · node:http · node:sqlite · SQL · node:test

An events, seats and orders API. One endpoint lists an event's free seats; the other reserves a specific seat — and two requests for the same seat can never both succeed, even across separate server processes.

Education

BSc in Computer Systems Engineering (Engenharia de Sistemas Informáticos)

Completed 2026

Instituto Politécnico do Cávado e do Ave (IPCA), Barcelos, Portugal

Cybersecurity Governance Essentials (RUN-EU) — TUS, Athlone (Ireland)

Jun 2026

NIS2, DORA, CRA; NIST CSF and MITRE ATT&CK.

Entrepreneurship Programme (RUN-EU) — NHL Stenden, Leeuwarden (Netherlands)

Mar 2026

Idea validation and investor pitching in an international team.

Technical skills

Programming
C#, Python, TypeScript, JavaScript, SQL, Kotlin, C
Backend
.NET 8, ASP.NET, FastAPI, Node.js / Express, REST APIs, SQLAlchemy, Knex
Databases
PostgreSQL, MySQL, SQLite, migrations (Alembic, Knex)
Observability & DevOps
Elasticsearch, Kibana, Filebeat, Heartbeat, Elastic APM, Serilog, Docker, Docker Compose, Git, GitHub Actions
Testing
pytest, Hypothesis, Vitest, Jest, Supertest, node:test
Frontend
React, TypeScript, Vite, Tailwind CSS, Angular (project level)
Data & football
pandas, KNIME, StatsBomb Open Data, video coding, per-90 metrics, peer-group percentiles

Languages

Portuguese (native) · English (C1) · Spanish (B2)

Other work

Security Officer — Protecção Total (private security)

2023 — present

Full-time shift work alongside the degree and internship; a role that depends on punctuality, reliability and working as part of a team.

Steward, receptionist and retail assistant — Various, including Lidl

2022

Part-time roles while studying.