Tiago Barros

Domain was cheap and hosting's free.


About Me

I like music and computers and that's it. I've finished my Masters Degree in Computer Engineering in University of Aveiro and my thesis work was in the field of Cloud Native 5G Networks, with the title: Dynamizing Private 5G Edge Deployments, and had my first paper published: Flexible Aether Slice Provisioning for 5G Enterprise Connected Edge [Link]

Since then I've been working at IT Aveiro, still within the 5G and Cloud Native realm, and expanding my programming and orchestration knowledge in my free time.


Projects

Name Description
Advent of Code - Golang

02-2024 to present

The meaning of project gets a bit stretched with this one, but it's basically my attempts at solving the various Advent of Code daily Christmas challenges throughout the years using Go. The purpose of this is to get me more familiar with Go, by trying to approach each daily challenge in a Go idiomatic way, rather than a leaderbord/competition focused way, as is usual with the AoC challenges.

C-Edge CLI

03-2023 to present

Command line tool to streamline the most common use-cases of the Aether Runtime Operational Control GUI. This project aims to create a set of more high-level commands using Aether's API. It's written in Python and uses Click as the framework for the command line interface.

Aether and UERANSIM

10-2022 to 11-2023

Thesis project to instantiate, configure, manage and monitor multiple edge sites from a single central site, aggregating all the network operations in a single point. Being a Cloud a Native 5G Core, the network orchestration was done utilizing Kubernetes & Helm, in conjunction with ArgoCD to further streamline and centralize the network deployments. This project leveraged Aether, which is a private 5G network platform, which uses SD-Core for the 5G Core implementation. The RAN, which validated the scenario, was carried out both simulated (via UERANSIM) and with two Huawei P40 smartphones.

Lane Merge Simulator

03-2022 to 06-2022

Project meant to illustrate how a fully automized lane merge might be orchestrated between vehicles exchanging ITS-G5 messages, using NAP-Vanetza as the mechanism of delivering messages, Python for the overall simulation and merging algorithm, and Flask for the web page presentation and user interaction.

Wifi Monitor

01-2021 to 07-2021

Visualization of space occupation on University of Aveiro campus through an heatmap, with the ability to create a campus-wide timelapse of space utilization throughout the day. The values are derived from the number of devices connected to the network, thus only giving an approximation of the real number of people.

Sokoban Solver

11-2020 to 01-2021

Sokoban puzzle solver using Python and A* pathfinding algorithm to find the sequence of movements that result in the completion of any given puzzle level.

Skills

Programming

Language Level
Python

Proficient

Go

Intermediate (Work In Progress)

Shell (Bash)

Intermediate

Java

Basic

C/C++

Basic

Technologies

Software Level
Kubernetes

Proficient

Helm

Intermediate

Git

Intermediate

Docker

Basic

Flask

Intermediate

Given that I interact daily with two 5G Open-Source Cores, SD-Core(& Aether) and Free5GC, I should mention them here, since their category doesn't really fit any of the tables above.

My familiarity with the Aether project and its 5G core is high, much due to my thesis and paper. Because of this, some PR's were also accepted upstream to the Aether Deployment repo on Github, more specifically, to the Aether Management Platform repo.


Operating System & Related

My current daily driver is a Macbook Air M2, but for many years it was an Ubuntu laptop. As per my work, everything is Linux, and for the most part, Ubuntu too, which helps me not lose the experience I gained on Linux, and actively encourages me to dive deeper within the Unix system.

Workflow wise, when it is work related, it is all Vim, for quick file/code edits and Bash, for scripting. Given the nature of the tools I work with (microsservices), everything is containerized and running in multiple Kubernetes clusters, which makes me work with tools like ArgoCD, Grafana & Prometheus, etc...

As for personal time projects and coding in general, in any setting, I use Neovim (which I setup like the image below), and when required, I also use DevSpace , which allows me to code directly inside a container running on a Kubernetes cluster, by syncing my local files with the ones on the container. This is of immense help when i cannot fully replicate the full scenario of the server cluster in my local Macbook cluster.

dotfiles & Neovim

My setup has autocomplete and documentation preview, both provided by the LSP plugin, as well as file browsing, given by Telescope.nvim, with some more other stuff like autopairs/git status and so on. All of the plugins installed are in my dotfiles repo.