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.

My Year in: Books

Any year in which you read Grande Sertão: Veredas is automatically excellent.

This year I read 32 books. I may have broken my record of rereads at 4. I continued reading in Italian, 2 books this year. Or should I start saying “consumed” books? Thirteen out of the 32 were audiobooks.

It may be hard for a non-Brazilian to understand what about Grande Sertão: Veredas makes it the best book of all time. It is probably as difficult as can be to translate. It is very hard to understand at first, even for solid, native readers. Suffice it to say that it is on par with the Iliad, the best Goethe or Shakespeare. Ranking works of art is nonsense. Still, Grande Sertão is number one for me.

If not for Grande Sertão, 2019 would have left a lot to be desired in terms of my reading. I am happy to put in a good word for Crucial Conversations, a book I listened to and immediately repeated. I seem to have reached that age when any meaningful personal growth is to do with interpersonal skills.

Crucial Conversations was one of several books I read around communication and management, the one big topic for me in 2019. It always feels like most of these books could have been fine as shorter blog posts, but you never know which ones should truly be books and I end up reading them whole. Also, a single good idea may easily be worth the dozen hours we spend on a given book, and that makes me think of The Culture Code, a serious candidate for a future reread as it may contain 2 or 3 really good ideas.

But then there is Grande Sertão: a book where every line, every phrase and word explodes with meaning, with angles on life, a love story to make Romeo and Juliet robotic and numb by comparison.

Maybe I’m ripe for some fiction after a long hiatus.

I log my reading, done or intended, on Goodreads. Please friend me there if you’d like and let’s find the next amazing book.

My Year In: Books

In 2018 I read 28 books. The number means little but this is probably the lowest for me in many years.

I’ve noticed a trend this year of enthusiastic book readers becoming less so, and praising blogs and other media instead. That was not really the case for me: this year my family and I spent another two months in Italy, and again, why read books if you’re living inside one. More importantly, my wife had twins.

This year I continued to read in Italian, and I was able to read much more advanced texts like Diario Minimo by Umberto Eco, Mark Twain’s Following the Equator and Elisabeth Roudinesco’s biography of Jacques Lacan. Out of the 28 books, 5 were in Italian.

Last year I mentioned I had taken up audiobooks, and this year I continued to listen to them, 11 in total. I think I have gotten better as a listener of books, and the main thing I’ve been doing more often is re-listening to sections of books. This seems to compensate for the lower rate of absorption I seem to be capable of in audio form.

The book I liked reading the most this year was “Don’t Sleep, There Are Snakes”, by Daniel Everett. In it, Everett recounts his experiences living with the Piraha tribe in the Amazon jungle. His initial mission was to translate the Bible to their language as a Christian missionary. What he comes across, however, changes his own life. It’s a profound encounter of two cultures that could not be more different from one another, in the midst of another culture, that of Northern Brazil. On top of it all, Everett, also a linguist, discovers a language unlike any other in the world, and picks a fight with Noam Chomsky about what even constitutes human language. It’s all so amazing you wonder how much of it is really true. Incidentally, this one was in audio book format and it was great to hear the author reading it, warts, emotion and all.

This year I doubled down on a practice I had started, but not mentioned, last year: that of translating/transcribing books. In 2017 I went to Berlin while living in Italy and really loved it. It was my first time in Germany, and it made me want to learn some German. While in Rome I had learned of Goethe’s experience living there, and of a book recounting his life in Italy. So I started translating “Italienische Reise” from German to Portuguese, and that has been my introduction to German. One year and a half later, I’m still in page 20 of the book. I may go entire weeks without doing it, but I have fun when I translate a paragraph or two. And the links between the German language and the others I know are always deeply touching. Languages are among my favorite things in the world.

So by doubling down I meant I started doing something similar with another book. This time I am not translating but transcribing Security Analysis, by Benjamin Graham and David Dodd. It’s one of the most important books about investing of all time, I had read it before but it’s such a dense book that I thought I should do this to slow it down and spend more time with each paragraph. Almost every weekday I dedicate 10 minutes to it. At the current pace I will need several more years to complete the book. I have no idea if I want to do the whole thing, but I can say it’s been a great experience so far.

If you’d like to see all the books I’ve read in 2018, please take a look at my Goodreads year list and do friend me there if you wish.

My Year in: Software Development

The year of 2018 has been a wild ride for me. It started at EmCasa.com, the startup I described a year ago. We were in the process of putting out a successful MVP, engaging clients, becoming accelerated by Harvard University and closing out an excellent seed round with important investors. All this in just a few months.

Very quickly my job morphed from do-it-all (think product and CTO duties, plus co-founder responsibilities) to team-building. This was a highlight as I was lucky to bring in great people like Gabriela Seabra, Nathan Queija and Rodrigo Nonose, each respectively owning mobile, web frontend and backend. On the design side, Plau.co did great work.

For the first time I felt fully ready to create a digital company in style. The Elixir-React stack worked beautifully, we rolled out features fast and the development team became a cohesive unit very quickly.

Towards the middle of the year, as the company reached 14 people, it had become clear to me that there wasn’t a good cultural fit among the founders. It was one of those very painful decisions but ultimately not difficult to make when visions don’t intersect well enough: we parted ways amicably at the end of July and I went looking for a new job.

That month was tense for me. I knew I had a deadline to basically stop getting paid, my wife was 6 months pregnant with twins and I had nothing lined up as far as work.

I am part of Toptal’s network of freelancers and that was one of the main ways I tried to find the next thing. I found something that really interested me: they had posted an opening to join their Core Team. I applied, passed, and joined the team as a freelancer in August. 

The first few weeks were hard in a sense: I and two other developers coming from Toptal’s talent network had a kind of secondary status, without access to many tools. Luckily our teammates were extremely helpful and welcoming. In a few weeks we became official team members and got access to what the other engineers see.

My team works on Toptal’s public pages, from home to skill pages, basically everything a logged out user can access in the website. 

It’s been a tremendous experience for me so far, as it’s the largest organization I’ve been a part of in technology. Toptal is in fact the largest fully distributed company in the world today. As such, I work with people from all over the world, and that’s the part I like best. To do it from home is the cherry on the cake as my children are very young and being close to the family is priceless at this moment.

At my team I’ve experienced the most well-developed set of processes I’ve ever come across. The firm has reached a level of maturity that allows for very well written task tickets, a proper retrospective at the end of each sprint, interesting strategic discussions among executives, and work that has large-scale, immediate impact. On the other hand, I am very far from top strategic decisions and information, and this feels weird to me having run my own company for so many years.

To a very large extent, this was the year when, for me, technical concerns became secondary to human concerns. Sure, if you’re starting a product alongside just one other person, what tech stack exactly to choose is of paramount importance. In a team of 200 that’s much less important, as each person can focus on a narrower part of the work, and the human interactions can catalyze or hinder progress.

Thus, I gave myself the chance of observing all the teams in the organization: dialogs, processes and rituals. Whatever was visible to me, I tried to learn from. It wasn’t long before I got the opportunity to onboard newcomers, help interview candidates, conduct daily standups and interface with other companies. That’s not to say I didn’t study programming this year: I continued my deep-dive into the Elixir codebase, studied GraphQL, some more Elm, algorithms, some Python and a little bit of Natural Language Processing.

It’s much easier to paste some code or links to a framework and illustrate what goes on as a programmer. Human interactions seem to me much harder to communicate. A book that does a great job of explaining management applied to software is The Manager’s Path, by Camille Fournier. I read it this year and it very neatly sums up many things we learn the hard way, plus many others I simply did not know.

So this year was one in which I started out as CTO and ended-up as an individual contributor. But each experience has taught me a lot about management and leadership, which will be my way forward in technology.

 

My Year in: Software Development

2017 ends for me, at least in terms of software development, on a much higher note than it started.

From January till October I worked on a financial startup through Toptal. I was part of a team of between 5 and 15 people over the period, and my duties were far more restricted than what I’m used to: mostly markup and styling.

I did the work inside Ember but never warmed to the framework. I’m sure it was not because of technical matters per se, rather mostly because I perceived the framework as not picking up traction, therefore not deserving of much investment. It was hard to flow with it since auto-reloads were quite slow and the style of getting and setting values always felt strange to me.

There’s a lot I learned in this project in terms of organizing teams and the main lesson was: if you hire remote team members, embrace that fact full-heartedly. This is not to say that you either do it remotely or locally, but if you have even one team member that is working remotely, you should do everything as if the whole team was remote, otherwise the interactions will break down fast. I’d go further and say that dev teams should work as if remotely even if the team is local, persisting all relevant decisions in writing, avoiding one-to-one communication in favor of groups to save on recommunication and following the basic protocols of remote collaboration.

All the while, I kept spending some time on Elixir, and was always happy doing so even though the language has all but become hugely popular thus far.

Another significant change in my process was my move from Atom to Vim. Yes, the entry barrier is significant, and a bit more so since I use the Colemak keyboard layout, but I am very glad I did it. After a while you’re much more productive in Vim, and it’s a more direct connection between thought and writing. It took about 3 months for me to feel as productive in Vim as I had been in Atom.

Sometime in the middle of the year, a couple of fellows got in touch about starting a company in the real estate sector. After much talk we decided to join forces and we started EmCasa.com.

At EmCasa.com I was free to choose the stack for a greenfield project, and so I chose Postgres, Elixir/Phoenix and React for the web client. Postgres is the dependable relational database, with (I trust) more native support for geolocation, so I didn’t hesitate there. Elixir and Phoenix wasn’t much more of a difficult decision either: I trusted the language entirely, felt the tools are at a very reasonable point, enjoy using it a lot, and thought we could attract good developers to use it. So far it’s worked out that way, and as I get ready to hand over most of the Elixir side to a new team member, we talked to a number of pretty great developers that are fond of the language and excellent at it.

Finally, the React decision was a bit more difficult, and even though I consider myself a frontend developer, has been more fraught with difficulties. It’s hard to say I’d choose React again. I probably would, but I really don’t know if we’d been doing better with Vue.js or maybe even Elm.

EmCasa needs a lot of good SEO, so it needs server-side-rendering and very controllable html headers. It took me a while to sift through a few of the available possibilities, that being the main con of polylyths. Finally I made progress using Next.js, which has been a pleasure to use. I ended up throwing out Redux and I haven’t regretted it. I think Next.js has a good path ahead of itself.

We have a long list of ideas to implement at EmCasa, our backlog is public, and so are our backend and our frontend. If you’re reading this and would like to chat with us about joining the team, check out www.emcasa.com/jobs or write me at gustavo.saiani [at] emcasa.com.

My Year In: Books

It’s been a strange lap around the sun for me in terms of books, of which I read 32 in 2017. The number 32 is right around my average in recent years, but the books themselves have deviated from my recent patterns and the reason is clear: I spent 4 ½ months in Italy. In the summer. Why read at all if you’re there?

What kept my number from dropping precipitously is that I took up audiobooks. After a couple of failed attempts at listening to books in past years, this year I tried my luck with one that seemed ideal to listen to while running: Phil Knight’s “Shoe Dog”. And this may well have been my favorite book this year: I was blown away to learn that Mr. Knight initially didn’t like the name of the company he founded, Nike. I was just as stunned to learn that the author wasn’t fond of advertising and even seriously considered dropping Michael Jordan from the brand. There are enough twists and turns to his memoir for me to feel ok giving away a few spoilers.

I noticed that listening to books is a learning process, just like learning to read books when we’re kids, and decided to stay with biographies and lighter books when listening, which did the trick and of the 32 books I consumed, 15 were audiobooks. I myself am amazed to realize this as I write.

Another book in the sports vein I liked was Roland Lazenby’s Michael Jordan biography. A pivotal figure in my early teens — I dreamed of being a basketball player and he really ended up becoming better than my idol Magic Johnson -, his life story is far more complex than I had thought and this book is great at telling you all about it at a high level of prose.

My family’s Italian trip had a profound effect on my reading. I knew next to no Italian before going there but as this year ends, I read 4 books in Italian. My favorite one was “Roma” by Alberto Angela, a kind of pop-history writer who recounts life in Imperial Rome, death in Pompei and the like. “Roma” was quite fascinating and transformed my understanding of humankind, destroying many of my preconceptions about how people lived just 2 thousand years ago – it was a lot more like we live now than I had assumed.

I end the year feeling like this wasn’t a particularly good one in terms of books, but the mere fact that it’s been instrumental in learning a new language has made it outstanding and auspicious.

If you’d like to see all the books I read in 2017, check out my Goodreads annual summary. And do friend me there if you please.

My Year in: Investing

The year of 2016 was the second full year I spent invested in securities. Rather than imitate the pros by starting to write publicly about my performance only when I got good, I decided to start right away and here’s the second edition.

Since these are personal figures, instead of revealing actual currencies I chose a more important measurement of the worth of money to me (and I suppose to most non-rich people): months of life in current regular living conditions.

Performance in securities was +30.02% for the year.

Overall savings change was +131.96% for the year.

Expressed in months of living expenses, my total savings at the end of 2015 are at about 2 to 3 months. That’s roughly -25% compared to last year. I have a two-year-old daughter and we have to pay for school among other things, so our cost of living grew immensely this year. Here’s hoping it stays at the current level next year.

It’s almost impossible to look at a savings addition of over one hundred percent and not think you did something really right. If you want to show great percentage improvements, I do recommend having close to nothing to begin with.

An investing gain of 30 percent is also in the range of the most brilliant minds in the history of investing. But the Ibovespa rose 39% this year, so my active engagement cost me 9 percentage points compared to just buying an index fund.

The year was full of activity in the portfolio, with 14 transactions total. Last year I did 3. I end this year holding none of the 4 companies I owned when it began. At the moment I own long positions in 3 companies.

I expect to hold the current companies for at the very least 3 years from purchase dates, which ranged from May to December.

One company in particular took me in a new path, and since it is now sold, I feel at ease to discuss it. Whirlpool Latin America owns 3 highly respected brands in household appliances: Brastemp, Consul and Kitchenaid. In early June I had analyzed the company and found a comfortable debt situation, even though looking back the liabilities were a bit high. Still, the company was selling at a PE10 of 5.2, and excluding the less profitable year of 2015, a market cap of about 3 times earnings for recent years. I bought in at R$2.35 per share. One day I woke up to see the price at over R$3.00. Whirlpool had issued a public offer to buy back all its shares for R$3.31. I sold out at R$3.25, a 38% return in 5 months. I believe Whirlpool’s management appraised the company at too low a valuation, the company easily being worth between R$4 and 5 per share. Later I learned that not enough shareholders agreed with the price, and management failed to take the company private.

More than any numeric result for this year, which is truly a consequence of the effort put in over previous years, the most fortunate development was that I was able to dedicate a lot more time to investment studies, perhaps 20 times as much as I did in any previous year. With the exception of banks and financial companies, which I am not able to analyze at the moment, I studied every Brazilian public company, a number approaching 300. I started a YouTube channel where I analyze companies’ financial statements, which I strongly encourage you to subscribe to, and now counts 55 episodes, all with (spoiler alert) investment ideas that end up being rejected. This dedication should bear fruit in the future.

My goal as we entered 2016 was to beat inflation. That was accomplished. From 2017 on, my benchmarks will be the Bovespa index and the major global indexes.

My Year in: Software Development

The beginning of 2016 was a little scary for me professionally. I started the year projectless, having just left a React-based project because I needed to earn more money. I had been paying a bit of a tuition for the dubious privilege of learning React. And my country was an economic disaster.

In the end everything worked out, although, as it happens, in unforeseeable ways.

I had been contacted in 2015 by a Brazilian entrepreneur about a project he had been working on. We had both done our time (pun intended) at Startup Rio, a tech hub, in 2014. Early this year, I agreed to design his product, which I did for about a month.

I had been looking around, doing some interviews and talking to people, and my friend Lucas Alves reminded me of Toptal, a development agency. I applied and passed, and soon was working on a revamp of Spacer, an interesting space rental company from Australia. The people were quite nice at Spacer, but the technical side wasn’t much fun — the platform was template-based and files could only be uploaded through a web interface.  At least it was Ruby, but it was slow going.

Over the month or so I worked on Spacer, I kept in touch about the Brazilian project and knew the entrepreneur needed help with the development as well. It was a Rails application. I hopped along with the team, and contributed with most of the frontend but also with project management and the flow of things. Think testing, task tracking and a simple but constant way of communicating, since the team was spread around 3 cities.

We soft-launched the product and I took on another project via Toptal, which is the one I’m working on at the moment. It’s in a field I have been very interested in, finance. I’m writing their Ember web client. I learned Ember from scratch for the project, and I’m still learning it. Every day I wish it was done in React. Of course I tried to convince the team to use React, given the growing user base compared to a dwindling base for Ember. They politely declined, I suppose because the main backend dev for the project is very good at Ember. Ember itself is not bad at all. Hopefully people will maintain libs in the future, many are starting to feel old without updates for months or more than a year. I ended up contributing to a few open source Ember projects along the way, which I was happy to do.

I also managed to do some work on a project of mine, Look in Tens, an Elixir/Phoenix application. I built a nice little crawler, and enjoyed the experience a lot. When it was deemed a 1.0, I stopped, at least for now, because I realized I wanted to really analyze companies, not “screen” companies for good buying opportunities. Not a software issue here, I suppose.

All along the year I studied as much Elixir as I could. I have been retyping the Elixir code base so that I can get a feel and understanding of the internals. It’s been a blast, and my respect for the Elixir core team has grown and grown — not least for simply taking a ride on Erlang. What a great idea. I ended up contributing a number of small fixes to Elixir itself, and thanks to Github’s idiosyncratic ranking system, am now contributor #35 to the language.

My only certainties as we enter 2017 are my intention to continue studying the Elixir ecosystem and to stay open to changes in the software landscape.

My Year in: Books

In 2016 I read 28 books. As always this excludes computer programming books and children’s books, of which I always read some, but I recall having read no extraordinary children’s book this year.

The topics I pursued in 2015 stayed true in 2016: psychology and investing. Biographies have always been a favorite of mine, and I read a few this year too.

The greatest book I read this year was A History of Western Philosophy by Bertrand Russell. The book is a mind-altering, soul-improving piece of work. It’s funny all through its 900 or so pages, and Russell goes all the way without really agreeing with any of the philosophers whose thoughts he addresses. A book to go back to, over and over.

The most surprising book I read this year was Vehicles: Experiments in Synthetic Psychology, by Valentino Braitenberg. This book is in Alan Kay’s reading list, and that’s where I got the tip. In it, Braitenberg introduces thought experiments comprised of very simple “vehicles”, with engines and sensors. The first experiment is very simple, featuring a vehicle with a sensor in its front triggered by, say, light, reacting by turning its engine on. It gets progressively more complex, and very soon phenomena that can be called “behavior” emerge. Think love, doubt, jealousy and other deep stuff. To me it was a very nice bridge between technology and psychology, two fields I like, and also a point of departure that’s diametrically opposed to psychologic analysis.

A very fun and sometimes sad book, filled with things I had never known, was Walt Disney: The Triumph of the American Imagination by Neal Gabler. It is an extraordinarily detailed book about Disney and his times. It shouldn’t ruin it for you to know that life was very difficult for him as an entrepreneur, and then we he “made it” it didn’t get much easier.

Finally, another book that had an impact on me was Do No Harm: Stories of Life, Death and Brain Surgery by Henry Marsh. In it, the doctor recalls his career as a brain surgeon. I read it while in bed with dengue fever, and I think my state intensified the ambivalent feelings of helplessness and the relatively miraculous capabilities of contemporary medicine. Mr. Marsh is great at telling lay people about his very technical profession, while at the same time giving his book a lot of heart.

I use Goodreads.com to log the books I read. It’s great, I recommend it and will be glad to see you there next year.