Brief introduction

Hey there, my name is Rodrigo Ara├║jo. I live in Vancouver, Canada, though originally from Brazil1. I've had many titles: Software engineer, computer scientist, programmer, developer, hacker2, musician3. But I believe we shouldn't describe ourselves in terms of labels4 but rather in terms of values, beliefs and actions. Therefore, here is what I do: I build software and do research in order to help humans achieve higher and greater things.

I'm currently a graduate student at the University of British Columbia under the Computer Science department. I work as a research software engineer at SPL and as a teaching assistant helping over thousand students to build better software.

Previously I worked as a machine learning engineer at the lovely and great Jusbrasil, one of the biggest law and government websites in the world.

Research and work


Software is eating the world and it's amazing how unreliable and internally broken most software and software practices are. This is mostly due the fact that we are a young field taking its first baby steps, and this is quite exciting. I believe it is our job, as a community, to slowly but steadily improve the way we build software. Thus, one of my personal missions is to make software more reliable and correct; by both improving software and improving how we build software.


Currently I'm working on the intersection of artificial intelligence, software engineering, and distributed systems, pursuing ways to:

  • Build better self-adaptive systems that can change, heal, and optimize in real time in order to make engineers more productive and systems more reliable.
  • Integrate machine learning into software systems; making learning a first-class component, constantly improving the system itself rather than relying on heuristics and manually-performed operations.

I also have interests in:

  • Distributed Systems and Infrastructure Reliability
  • Software Engineering
  • Software Design and Architecture
  • Software Analysis, Testing, and Verification
  • Artificial Intelligence, Machine Learning, and how to build better systems using their techniques

Why I blog and disclaimers

I write blog posts and essays here for the following reasons:

  • To solidify my knowledge on the discussed topic, as if it was more like of an act of reflection;
  • To help others trying to understand something that I've written about

However, here are a few things to keep in mind:

  • All opinions and views are my own;
  • It's very likely that I am painfully wrong on a post that you've read, so:
    • Don't blindly believe everything I write, question everything (and let me know those questions sometime!)
    • Let me know where I made a mistake, it's a win-win game: you teach me something and you learn more about something!

1: Please do not insist on inviting me to play in your soccer team, I've disappointed my people for being a Brazilian and actually awful at soccer.

2: As in actual infosec duties and hobbies

3: As in I actually worked in a band for a good chunk of my life, now it is just a hobby

4: Except in some cases, e.g: formal work settings