I'm Hugo Fernandes, a software engineer based in Guimarães, Portugal. I'm dedicated to building reliable, well-designed software and solving complex problems through clean, maintainable code.

Technologies

Database & DevOps

PostgreSQL
PostgreSQL
MySQL
MySQL
MongoDB
MongoDB
Docker
Docker
Kubernetes
Kubernetes
Helm
Helm
Skaffold
Skaffold

Backend

Java
Java
Kotlin
Kotlin
Python
Python
Spring
Spring
Micronaut
Micronaut
Django
Django

Frontend

React
React
VueJS
VueJS

Security & Observability

Prometheus & Grafana
Prometheus & Grafana
OAuth2
OAuth2
SAML
SAML
FIDO2
FIDO2

Work

  1. TV
    Company
    TeamViewer
    Role
    Senior Software Engineer
    Date
  2. KN
    Company
    Kuehne+Nagel
    Role
    Full Stack Software Engineer
    Date
    Description
    Development and maintenance of a platform supporting sustainability initiatives across multiple modes of transport. Contributed throughout the software development lifecycle, from technical design and implementation to testing, deployment, and production support. Collaborated with international, cross-functional teams to deliver reliable, scalable, and maintainable solutions for complex logistics and sustainability requirements. Promoted software quality through clean code, automated testing, code reviews, monitoring, and continuous improvement of engineering practices. Worked with Kotlin, Spring Boot, Micronaut, PostgreSQL, Vue.js, Vite, Cypress, Docker, Kubernetes, and Helm.
  3. DS
    Company
    DigitalSign
    Role
    Full Stack Software Engineer
    Date
    Description
    Architected and developed multiple internal and external software applications across all stages of the software development cycle using Java with Spring Framework for back-end and ReactJS for front-end. Built applications within the context of digital certificates and cryptographically secure digital signatures, delivering solutions to national and international institutions in diverse scenarios: digital certificate issuance, electronic invoicing, and document signing.
  4. UM
    Company
    Universidade do Minho
    Role
    Machine Learning Software Engineer
    Date
    Description
    Implementation of an automatic speech recognition system for a medical institution.

Education

  1. UM
    Institution
    Universidade do Minho
    Degree
    PhD in Informatics (in progress)
    Date
    (expected)
    Description
    Doctoral research in multi-agent systems and agentic AI, at the intersection of artificial intelligence, machine learning and large language models (LLMs). Exploring how autonomous LLM-based agents can reason, plan, use tools and collaborate to solve complex, multi-step problems, and what it takes to make them reliable, observable and safe enough for production. Brings nearly a decade of building and operating production software to research at the frontier of AI, with a focus on systems that work beyond the demo.
  2. UM
    Institution
    Universidade do Minho
    Degree
    Master's Degree in Informatics Engineering
    Date
    Description
    Two-year, 120 ECTS master’s program, completed with a final grade of 16/20, specializing in Business Intelligence, Applications Engineering and Software Systems Engineering. On the data side, covered operational systems, data warehousing, online analytical processing (OLAP) and data analysis; on the systems side, application architectures, data center infrastructure, database administration and interactive systems, complemented by requirements engineering and software architecture. Worked hands-on with data analysis and machine learning in Python using pandas, NumPy and scikit-learn, and with Linux server administration on CentOS. Applied this end to end in an informatics engineering laboratory and a year-long engineering project, and wrote a master’s dissertation in Business Intelligence and Data Analytics (graded 17/20).
    Link
    Read master's thesis
  3. UM
    Institution
    Universidade do Minho
    Degree
    Bachelor's Degree in Computer Science
    Date
    Description
    Rigorous, mathematically grounded program combining strong theoretical foundations with hands-on software engineering. Built a solid base in algebra, calculus, discrete mathematics, logic, numerical analysis and probability, and studied the theory of computation in depth: automata and formal languages, computability and complexity, algorithms, program calculation and programming language semantics. Gained broad practical experience across programming paradigms (functional, imperative, object-oriented and concurrent), starting with Haskell and moving on to C, C++, Java, Python, Erlang and Ruby, along with core systems topics including operating systems, computer networks, databases, compilers and language processing, and computer graphics, culminating in a final software project.