About me

I am a passionate software engineer and European, living and working in Lisbon. Developing software is a craft and I care about doing it well. I strive to design resilient systems composed of simple, well-defined components.

I was born in the last weeks of 1989 on an island in the Atlantic Ocean and there I grew up and lived until I was seventeen.

I left Madeira for Lisbon to attend Instituto Superior Técnico. I later graduated with a BSc and a MSc degree in Software Engineering and Computer Science.

I drink a lot of tea, enjoy the simple things in life, use vim and love open source. I enjoy improving my skills and learning new things.

You can reach me at vieira@yubo.be or at GitHub.

Software Engineer, Guuru ∙ 6yrs

  • Joined as one of the first two employees.
  • Split a Node.js monolith that ran on AppEngine in services and jobs running on Kubernetes (GKE). Communication takes place via message queues (Pub/Sub) for increased reliability and observability.
  • Set up the CI/CD pipelines using GitLab and deploying to Kubernetes.
  • Defined most of the infrastructure as code, using Terraform. This serves as a versioned blueprint of our cloud services and made them easier to reuse and evolve.
  • Introduced GraphQL using Apollo client and server to provide a flexible API. With DataLoader and persisted queries this contributed to significant improvements in response time.
  • Wrote and refactored React components to use hooks and consume data from our GraphQL API.
  • Set up jest and wrote (the first) tests to reduce regressions and increase confidence.
  • Started the migration from Firebase to a proper PostgreSQL database supporting real queries. This allowed for a huge reduction in the amount of data fetched and processed. The codebase became simpler and smaller.
  • Implemented the automated billing and payout system. Made use of event sourcing to store a ledger of all accounts credits and debits for each month. From this ledger we compute all balances and issue the payouts via a payment processor. Developed integrations for two processors: for Stripe and Revolut.

Support and Release Engineer, VILT Portugal ∙ 3yrs

  • Introduced Configuration Management using Salt to a fleet of a hundred existing servers. This included a wide range of services, from DNS to Tomcat application servers.
  • Created an on-premises Kubernetes cluster integrated with GitLab CI. Managed and scaled on demand with Salt.
  • Web development using Java, Spring and Hibernate.
  • Used some amazing persuasion skills to introduce Kotlin during a Spring Boot migration. It went on to see increasing adoption at the company even after I left.
  • Monitoring with Icinga and Grafana.
  • Survived on-call rotations to provide 24/7 support. Also did release engineering, as a contractor, for companies like TIM and Porto Seguro.
  • Performed maintenance and support, as a contractor, for Givaudan corporate website, powered by Drupal.

Instituto Superior Técnico, Universidade de Lisboa

  • MSc in Software Engineering and Computer Science, some courses:
    • Advanced Programming
    • Software Architecture
    • Software Engineering
    • Software Project Management
    • Distributed Systems
    • Advanced Algorithms
    • Discrete Structures and Algorithms
    • Computability and Complexity
    • Master Thesis in Classification in the Presence of Background Domain Knowledge, article
  • Undergraduate Research Grant in Domain Driven Machine Learning
  • BSc in Computer Science and Engineering