Arturo Cortinovis

ArturoCortinovis

Third-year Computer Science student in Amsterdam. I build backend systems and HTTP APIs — the part of the stack that has to keep working when something upstream doesn't.

Software Engineering Intern — KPN · DeX

Record AC / 2026
Based
Amsterdam, Netherlands
Study
BSc Computer Science, Vrije Universiteit — 2024–2027
Role
Software engineering intern, KPN — DeX, Sept 2026 – Mar 2027
Focus
Python services, REST APIs, data pipelines
Also
Cinematic video production
01

About

Italy →
Toronto →
Amsterdam.

I'm in my third year of BSc Computer Science at Vrije Universiteit Amsterdam. Most of what interests me sits behind the interface: HTTP APIs, services talking to each other, and the failure cases nobody sees when it all works.

I've just joined KPN as a software engineering intern on DeX — the team building customer-facing self-service tools, working in Vue 3, StencilJS, Django and FastAPI. Fullstack on paper; I'm specialising toward the backend.

Languages

ItalianNative
EnglishFluent
RussianBeginner

Beyond code

Cinematic video production — travel films shot in New York and Toronto.

Music and sport fill most of what's left.

Logistics

Based in Amsterdam, available on site.

EU citizen — no sponsorship required.

02

Selected work

Three records.
Newest first.

EdgeTwin

Dec 2025 — Feb 2026

Factory-floor telemetry for 20 simulated motors — streamed, stored, and alerted on in real time.

PythonFastAPIReactMQTTDocker ComposeFairCom Edge
  • A simulator publishes motor telemetry over MQTT into FairCom Edge, which acts as both broker and database. A FastAPI service reads from it and serves a React dashboard with live status, charts, and alert history.
  • Alerting uses hysteresis — one threshold to raise an alert and a separate, lower one to clear it — so an alert doesn't flap while a reading sits on the boundary.
  • The FairCom client is a module-level singleton: get_client() is synchronous, init_client() is async. They're split because authentication is a network call, and the client is initialised once from a lifespan startup hook.
  • The alert loop runs as a background asyncio.create_task alongside the request handlers.
  • Docker Compose healthchecks gate startup order, so the API doesn't come up before the broker is ready to accept it.
  • Known limitAlert counters are held in memory, so they reset whenever the service restarts.
View on GitHub

FastAPI Practice API

Aug 2026 · Written unaided

A small five-endpoint service built from scratch as internship preparation — a learning exercise, kept here because it's the honest version of what I can write alone.

PythonFastAPIPydanticpytest
  • Pydantic models validate every request and response body, so bad input fails at the boundary rather than three layers in.
  • Shared setup is wired through FastAPI's Depends() injection instead of module-level globals.
  • pytest covers each endpoint, including the error paths.
  • Storage is in memory on purpose — the point of the exercise was the framework, not the database.

Travel Destinations API

Feb 2025

An Express + SQLite REST API with full CRUD, built and tested end to end.

Node.jsExpress.jsSQLiteJestSupertest
  • RESTful routes with correct HTTP methods and status codes, input validation, and a global error handler so failures return a consistent shape.
  • Every query is parameterised — no string-built SQL anywhere in the data layer.
  • 12 endpoint tests in Jest and Supertest covering both happy paths and error cases, with environment-based configuration.
View on GitHub
03

Skills

Things I've
shipped
something with.

Languages

PythonJavaJavaScriptC++CScala

Backend

FastAPIExpress.jsREST APIsPydanticasync / awaitSQLite

Frontend

ReactViteRechartsHTML / CSS

Infrastructure

Docker ComposeMQTTGit

Testing

pytestJestSupertest

Marked = strongest

04

Education

Three countries.
Two languages
of instruction.

Vrije Universiteit Amsterdam

BSc Computer Science — Amsterdam, Netherlands

2024 — 2027 (exp.)

Braemar College

Ontario Secondary School Diploma — Toronto, Canada

2022 — 2023

ISISS Valle Seriana

Liceo Scientifico Diploma — Italy

2019 — 2024

Get intouch.

Open to backend and fullstack engineering work, and to talking about anything Python-shaped. Email is the fastest way to reach me.