TomásSalgueiro
Recent graduate in Informatics and Computing Engineering
I just finished my bachelor's degree at the Faculty of Engineering of the University of Porto (FEUP). For my curricular internship at B-Simple, I worked on a secure authentication and authorization application, from the Angular front end to the NestJS back end.
I've taken part in a BEST Porto hackathon and in ENEI, Portugal's national meeting for informatics students. I also have developed some personal projects with the most notorious being a visualizer for tree traversal algorithms in C++.
- Degree
- Bachelor's in Informatics and Computing Engineering
- School
- FEUP, University of Porto, Sep 2023 to Jun 2026
- Internship
- B-Simple, Feb to Jun 2026
- Recent stack
- TypeScript, Angular, NestJS, PostgreSQL
- Languages
- Portuguese (native), English (fluent)
Toolbox
- Programming languages
- C, C++, Python, SQL, HTML, TypeScript
- Web and frameworks
- Angular, NestJS, Node.js
- Databases and caching
- PostgreSQL, Redis
- Tools
- Git, GitHub, GitLab, Docker, Keycloak
Projects
Things I've built and the tools behind them.
-
Interactive tool
Tree Algorithm Visualizer
An interactive visualizer for binary tree traversal, with both breadth-first search (BFS) and depth-first search (DFS). Generate a tree, pick BFS or DFS, and step through the traversal one node at a time with the keyboard. You can restart at any point.
C++, raylib
-
Desktop app
Soundpp
A desktop music player client for the Music Player Daemon (MPD) built with C++ and Qt Quick. Connects to the local daemon to handle queue management, playback controls, and track metadata, bridging the native backend to a declarative QML interface.
C++, Qt 6, QML, libmpdclient
-
Multiplayer game
P2P Battleship
A peer-to-peer, two-player Battleship game with no central server. Players find each other on the local network through UDP broadcast, then play turn by turn over a raw TCP socket. Built the interactive ship placement, the dual-board view for your fleet and the radar of your opponent, and the message framing that keeps both sides of the game in sync.
Python, sockets, pygame-ce
-
Terminal app
CTypeRacer
A terminal-based typing game that fetches random quotes over the web and gives real-time colour feedback as you type: correct keystrokes in green, mistakes underlined in red. Runs the terminal in raw mode and computes cursor placement manually to avoid flicker, and keeps a persistent record of games played, characters typed and best WPM between sessions.
C, libcurl, cJSON
-
Terminal app
ncurses-pymodoro
A Pomodoro timer that runs entirely in the terminal, drawn with Python's curses library and controlled from the keyboard. Plays a sound to mark the end of each work or break interval and redraws itself cleanly if you resize the terminal mid-session.
Python, curses, portaudio
-
More of my code is on GitHub.
github.com/Tomassalgueiro
Experience
My internship and the events I've taken part in, newest first.
-
Feb – Jun 2026
Curricular Internship
B-Simple, Porto, Portugal
- Worked on a secure authorization and authentication application: the system that manages how users are identified, log in and get access on the platform.
- Used Keycloak for authentication and authorization, and Redis for caching and session data to keep the system responsive.
- Built the front end with Angular and the back-end APIs and business logic with NestJS, on a PostgreSQL database.
-
2025 – 2026
ENEI, national informatics students' meeting
Participant, Encontro Nacional de Estudantes de Informática
- Attended the 2025 and 2026 editions, which bring together informatics students from across Portugal for talks, workshops and other activities.
-
Oct 2024
Hackathon organised by BEST Porto
Participant, FCUP, Porto, Portugal
- Worked with other students over two days, under time constraints, to tackle a proposed challenge.
Education
Bachelor's Degree in Informatics and Computing Engineering
Faculty of Engineering, University of Porto (FEUP), Sep 2023 to Jun 2026