My Year at: Work

The last episode in our adventures ended with me as a Team Lead at Circuit, and me calling this article “My Year in: Tech”.

From now on I will use a more encompassing “Work”. 2021 was a year of important steps towards a goal I’ve held for a few years now: to become a full-time investor in the general style of a Warren Buffett and a Ben Graham.

I started the year helping spawn a new team at Circuit, the first official team there. We were happy to welcome two engineers, Christian Kaisermann and Vitor Paladini, who truly hit the ground running. They had worked together before, and their rapport made things move from the beginning.

Around April a friend whom I admire very much, Bruno Bergher, told me about Metabase, a company he had recently joined as VP of Product. Metabase does BI and data visualization. The product seemed quite nice, the company had a good online reputation, and I could imagine that the domain was interesting. Most of all, Bruno is really one of the smartest people I’ve had the luck to meet.

Bruno asked me if I’d consider a position at Metabase. I was satisfied at Circuit: the people were really nice, the work flowed well and the company was soaring, having grown revenue 3 times last year while almost entirely bootstrapped. There were two issues for me: working with Firebase, something I touched every day, was not enjoyable, and judging by the company setup, getting a pay raise would not be trivial. I brought up both subjects, Firebase multiple times, and salary a couple of times. The outcomes of those conversations were understandable from Circuit’s point of view, but didn’t point towards a great convergence with what I preferred.

It seems to happen repeatedly in tech, at least in our long-standing economic cycle, that companies focus on recruiting but not on retaining. Although this did not happen so literally at Circuit, we often see professionals start jobs at much higher salaries than great people who had joined a company months or years before. The churn seems suboptimal from a long term perspective, for everyone involved. As it happens, from the perspective of an employee, joining a different company means you will earn much more than staying put.

Long story short, in May I joined Metabase. Again I went from leading to being an engineer.

In parallel, and I had being working on this for over a year, I kept studying for the Brazilian equivalent of the CFA. Here we call it CGA. Mid-year, I passed. This certification opens the legal doors for me to manage investment portfolios, funds and so on. Investing is something I started reading about in 2007 or 2008, and it became a serious pursuit for me. To illustrate, I have a YouTube channel where I study companies in public, and I’ve done over 730 episodes of it. I started a very informal investment partnership in 2017 that has been beating the most important Brazilian stock index since inception. It’s something that I’ve frankly been enjoying much more than software. It may be because I only have an hour or so a day to dedicate to it. The fact is, it’s going well and I love to work on a much, much wider canvas than the one I see in software.

The experience at Metabase has felt peculiar and is still hard to describe, even after 8 months. It’s a very loose organization that has grown its headcount a lot recently. I don’t get to work with Bruno directly. The codebase and processes have been a challenge for me, and I’ve worked on a few challenging codebases and processes. It feels like I still haven’t understood the company enough to be able to describe it. I am thankful to be there, but must admit I miss working with a bit more structure, and I certainly miss the more frequent human interactions and strategic work of leadership and management.

I have one very clear goal for 2022: to start a formal investment partnership. It will take the shape of an investment “Club,” a legal vehicle in Brazil that is suitable for investment funds that are still not large, between 1 and 15 million reais. I will be able to, indeed must work on it only part-time —as a shareholder in the fund, by law I can’t be paid to manage the portfolio. This will be a very important step in growing a currently informal partnership that has beaten the Brazilian stock index by 61.38% over the last 5 years into a true investment fund a few years from now. If you are reading this and would like to know more about investing with the partnership please write me at

My Year in: Tech

I started the year of 2019 as a front-end developer at Toptal’s core team. Just a few days later, I was invited to be Team Lead for a brand new team.

My emphasis turned, again, to working with people. That was a delight and I fully embraced the opportunity to help build a team. We had a few company veterans enlisted to start the new team, all of whom I had not worked with before, and we needed to hire two more front-end engineers.

The first recruitment process was for an excellent React engineer. It was done very deliberately and unhurriedly, to make sure we raised the overall level of the team on the React stack. It took us a little over 2 months until we found a great guy, who has contributed a lot this year.

The second engineer was a gift to us, as he was initially hired for another team. Happy to say he’s also doing tremendously well.

We quickly became a real team. It seems we did a few things that helped: communicating a lot, admitting mistakes and ignorance openly and quickly, and being real human beings.

One teammate brought along the Personal Questions call from his previous team. This call has a simple structure: one team member asks one or two questions, personal as the name says, to everyone on the team.

The questions are as simple as “What was the best trip you ever took?”, or “What is your favorite dish?”. It’s up to the team to let this call become just a little window on who they are, or a huge gateway to people’s souls. Yes, it’s possible to cry while listening to someone tell you about their favorite food once they tell you the story behind it. The bond I felt with the team was immense.

Dedicating at least one or two hours per week of each team member’s time to building rapport makes a big difference, particularly in new teams. Next year I will work to learn more ways of doing that.

I made my share of mistakes. The one that comes strongest to mind is about having patience before giving feedback to people you may like personally but don’t think are doing a good job — especially when they are not reporting to you. Convincing people to change is hard enough as it is, doing it without mutual trust and knowing their motivations is likely to backfire.

Another lesson I was reminded of by a mistake of mine is the “no surprises rule”. It’s often hard to know, in advance, how sensitive some task or decision may turn out to be. Next time something I do starts to deviate too much from what was agreed-upon, I should remember to share that early on, and avoid surprises, because the surprise itself may make people react negatively to something fundamentally desirable, or I may have the wrong assumptions or decisions and other points of view will help me see that.

I stayed with the team for a total of 9 months, we launched a good chunk of the new application we were developing, and then I was enlisted to start a new team from scratch: to recruit every single engineer, and help recruit designer and product manager.

It was painful to say goodbye to a team I loved so much.

Soon it was back to recruiting, this time a few weeks of full-time effort, and we are still at it. We seem to be close to hiring two people, and have one more front-end and one more QA person to bring onboard on the engineering side.

This recent team switch gave me time to study programming after a several-month hiatus. I am focusing on new React APIs, from Hooks to Context and Suspense, as well as testing, TypeScript and, soon, Apollo.

I did continue to study the Elixir language source, something I’ve done for maybe 3 years now. This year I did relatively little of it. I love Elixir just as much as always, and am thankful for having learned so much from its community.

I plan to go multi-team as soon as I have a chance, be it in an Engineering Manager or CTO role. Thus I dedicated more time than ever to reading about leadership, management and communication, often with a big emphasis on tech. Especially for people who are new to management, I recommend The Making of a Manager by Julie Zhou.

Participating in Daily Standups

Purpose of Daily Standups

You should leave a daily standup:

  1. More energized than you entered it.
  2. Aligned to be in contact after the daily with anyone if your or their main task needs discussion.
  3. Remembering everyone’s update.

Things outside of Daily Standups that can ruin Daily Standups

  1. If team communicates 1-to-1 a lot and not on shared channels.
  2. If people are tackling too many things at the same time.
  3. All basic management deficiencies.

How to prepare for a Daily Standup

Half an hour before the Daily Standup, stop for 5 minutes and:

  1. Decide what is the one initiative you will mention.
  2. Write it down in your own words.
  3. Edit that down to 280 characters.
  4. Include expected time to finish task at the end.
  5. Say it aloud.
  6. Improve the wording or delivery until you have a clear and memorable update.

How to decide what to mention in a Daily Standup

By decreasing order:

  1. Task you are doing that is most problematic.
  2. Task you are doing that you know someone can help you with.
  3. Task that is going well.

How to listen well in Daily Standups

  1. Keep a log of Daily Standups and make notes of every update.
  2. Come back to that log half an hour after the daily and read it again.

Trusting the Scrum Master in Daily Standups

If each team member delivers their update clearly, nicely and concisely, the Scrum Master will have time to:

  1. Ask about important items that were not selected by the team.
  2. Raise questions.
  3. Ask about extraordinary additions to people’s update.
  4. Align people for pairing on issues raised.
  5. Use the extra time for having a bit of fun and enjoying the team before it gets back to work.