Skip to content

const greeting =

Hi, I'm Rafa

>  

Software developer at UMN Solutions -- "Technology In Service of Humans".

It's not about writing code lines... it's about engineering solutions that allow users to spend their time finding better problems!

// About Me

I'm a software developer based in Portugal. I started out building web applications from the ground up -- from database design to pixel-perfect frontends -- but lately I've been delving into operating systems, languages like Rust, and networks.

Currently at UMN Solutions, where our team delivers projects for clients like BNP Paribas with a people-first mindset -- technology in service of humans.

I'm mostly self-taught -- I started coding and freelancing long before any formal training. Free platforms like freeCodeCamp shaped my foundations, later complemented by bootcamps and Harvard's CS50. What drives me most is a deep passion for learning new things and exploring the edges of what I can build.

Currently applying to IST (Instituto Superior Tecnico) to deepen my CS foundations and combine academic rigor with industry experience.

// Top Languages/Frameworks

TypeScript Node.js C Rust

// Tools

Git Docker tmux Claude

// Databases

PostgreSQL MongoDB Redis

// On AI-Assisted Development

With the rise of AI coding tools and the whole "vibe coding" conversation, every developer seems to have a take. Here's mine.

Our job is to engineer reliable solutions -- not to write every line of code by hand. Code is the artifact, not the goal. What matters is the outcome: software that works, is maintainable, and solves real problems.

AI is the latest in a long history of layers of abstraction. We moved from assembly to high-level languages, from manual memory management to garbage collection, from bare-metal servers to containers. Each shift freed engineers to focus on higher-order concerns. The work now shifts further toward reviewing, architecting, and deciding.

The real skill is calibrating risk against velocity. An authentication flow handling tokens and secrets demands careful scrutiny. A static landing page doesn't. This portfolio, for instance -- no APIs, no auth, no sensitive data -- was ~98% written by Claude. And that's the point: knowing when to trust the tool and when to take the wheel.

// What Actually Matters

AI can generate code, but it can't replace understanding. Design patterns, language caveats, memory management (even in GC'd languages), optimization algorithms -- these are the skills that let you evaluate what AI produces, catch what it misses, and know when "good enough" is the right call versus when you need to push further. But it goes beyond reviewing output. That same knowledge is what lets you ask the right questions, explain how things should be built, and define maintainable guidelines that keep a codebase consistent -- whether the code is written by a person or a model.

Software doesn't exist in a vacuum. Pushed by my lead at UMN Solutions, I've been exploring project management -- scoping work, managing risk, communicating with stakeholders. Planning to take the PMP certification next. Because shipping great software is as much about people and process as it is about code.

// Personal Projects

claude-monitor.ts

Claude Instance Monitor

A terminal UI (TUI) for Linux to monitor multiple Claude Code instances in real-time. Displays resource usage, session activity, and instance health at a glance -- built to scratch my own itch managing parallel AI-assisted workflows.

TypeScript Node.js Linux TUI
ai-driving.ts

AI Driving Project

Neural network that learns to drive through a simulated environment, built as part of the freeCodeCamp machine learning curriculum. Implements forward propagation, mutation, and a visual training loop -- a hands-on dive into ML fundamentals.

TypeScript Neural Networks Canvas API
tea-shop.tsx

Tea Shop

Full-stack MERN e-commerce app built in progressive stages (stage 0 through 2) to demonstrate growth from junior-level code to a production-ready, refactored project. Features Stripe payments, JWT auth, CI/CD pipeline, and comprehensive testing.

React Node.js MongoDB Express Stripe Jest
http-codes.ts

Simple HTTP Codes

Published npm utility package that exports HTTP status codes organized by category with full JSDoc documentation, based on RFC 9110. A focus on developer experience, clean API design, and open-source contribution.

TypeScript npm JSDoc RFC 9110

// Experience

September 2026

Computer Science & Engineering Degree

Instituto Superior Tecnico, Lisbon

Next step in strengthening my computer science fundamentals and bridging the gap between hands-on industry work and formal academic training.

Mathematics Algorithms & Data Structures Machine Learning Computer Graphics
Present

Software Developer Consultant

UMN Solutions

Building internal tools and client-facing applications at UMN Solutions, currently delivering projects for BNP Paribas. Started freelancing in 2023 and transitioned into consultancy.

TypeScript Node.js Azure SharePoint Rust Project Management Stakeholder Communication
2024

CS50's Introduction to Computer Science

Harvard Online

Rigorous introduction to computer science covering algorithms, data structures, C, SQL, and web development.

Data Structures C SQL
2022 - Present

Courses & Certifications

Boolean UK, Udemy, freeCodeCamp

Intensive full-stack bootcamp (Boolean UK), advanced React patterns, Node.js APIs, neural networks and machine learning fundamentals -- continuously learning across platforms.