Microsoft Windows XP

To begin, click your user name

Turn off computer

After you log on, you can add or change accounts.
Just go to Control Panel and click User Accounts.

tcerqueira.devblog
GitHubLinkedInTwitterCV
tcerqueira.dev
Tiago Cerqueira

Engineer:

Tiago Cerqueira

Software Engineer

Portugal

Previously at:

Deno Land

Infrastructure Engineer

Looking for work

Competence:

Rust · C++ · C

Async · Concurrency

Performance

About

I love programming. I didn't know it until I was forced to learn it at university. I still miss the feeling of writing my first C programs - they barely did anything useful, but they were puzzling and challenging, and they were enough to spark my curiosity about how these simple programs could turn into real-world applications with a UI and even talk to other computers. That's the rabbit hole I fell into, and I'm still in it! I always wanted that power to build anything at my fingertips.

Early on, I got really interested not only in solving problems but in solving them elegantly. Two solutions can be proven equivalent and still not be equally good; there's another dimension to the equation: us engineers, the ones who read and write them. Good solutions tend to be easier to understand and extend, and they account for what a future maintainer will think of them. This made me converge on solutions that properly leverage the language I'm using - but there are a ton of languages and paradigms, so I set out to explore what the others had to offer!

Here's a quick history of the languages I've used: I started with C, then moved to C++ because, you know, it has that shiny thing called "OOP" that's supposed to be great (spoiler: I am not an OOP enjoyer).

At the same time, I was learning Java against my will, but it was fine: I didn't know it yet, but I was getting OOP-vaccinated - call it character development.

Later, I realized I didn't know anything about the web or how to build websites - what do you mean a software engineer can't build a simple website? Shameful. So I got into JavaScript/TypeScript and all the adjacent frameworks, to feel validated by non-technical people.

I landed my first job in a C++/Java/Kotlin (Android stack) role, where I got my first enterprise experience of what it's like to build and maintain a large C++ codebase (spoiler: not so fun). Around that time, I felt some divine intervention to learn Rust, because there was literally no other reason besides "I heard about it" and wanted to learn something new.

Rust opened a window onto the horrors of C++ that hide behind the first Dunning-Kruger hill. I honestly learned a lot of C++ by learning Rust, and now every time I look at C++ I have an involuntary borrow checker compiling the code in my head to tell whether Rust would allow it - which, in my opinion, improved my C++. The current status of my relationship with C++ is "It's complicated™", but I still care about it and keep up to date with the new versions.

So, in case it wasn't clear, I'm a fan of Rust and its paradigm, and I've been working with it for roughly 3 years now. It also sparked my curiosity about functional programming, which Rust borrows a bunch from - though I haven't dug deep into functional programming yet.

BTW
  • I use Rust btw
  • I use Nix btw
  • I use Zed editor btw
  • I use Deno btw
  • I use my mouse btw
Beyond code

I played football for more than a decade, but I'm retired now. As all great would-be players say: "I could've gone professional, but I got injured." In my free time I enjoy running; I usually train by the beach, which is always windy - par for the course in the north of Portugal.

Although I live next to the ocean, my heart is in the mountains - I love them more than the sea. Come winter, I have to go skiing and spend time up on the mountain. When I was a kid, I took a trip to a small mountain to try skiing and I loved it, but then I didn't ski again for more than a decade. I wish I'd skied more back when these knees were stronger!

There's also a chance you'll find me online playing games under my latest nickname, "arroz de tabaco", which means "tobacco rice" - named after a burnt-rice incident that smoked the rice until it tasted like cigarettes. I haven't played much lately, but I used to play Counter-Strike, Overwatch, and other FPS games, as well as some single-player titles. Favourite game: Outer Wilds.

In my free time, I also code or read programming books on whatever topic I feel like exploring.

Now

I'm currently reading the "Crafting Interpreters" book and implementing it in Rust. The book implements a made up language called Lox in Java and C. It's been a lot of fun, and I've learned a lot from it; it tickles my curiosity for programming languages, and I can recommend it. You can try my work in progress here in the browser compiled to WASM!

I've been slacking a bit, but distributed systems have been one of my latest obsessions - they're a natural extension of multi-threading, which is a topic I really like.

I'm no longer at Deno, and I'm looking for work! Contact me.