The Platformer #32: The Gift Of Wisdom
Published: 2023-01-13 00:14:57

It was -12C (around 10F) when I dropped off my kids at school this morning. Mildly chilly, even for Polish standards. Time to put on a sweater before going outside. This can only one mean one thing: the holidays are near, and as I’ll largely take off from the middle of next week (to prepare for our festivities) this will be the last _Platformer_ of 2022._(Editor's Note: This post was originally published in December 2022.)_

We have to end this well, and therefore I’ll suggest a special holiday gift. This one will be for the specialest of someones. Not your significant other (if applicable), nor your kids (if applicable), nor your boss (if applicable). No, this one will one for the person we often forget about.

_You._

Before we get to that, let’s get to the picklings of them fruits.

## Cherry picks
One of the big decisions this week was that, due to instability of community (much better this week, thanks for asking), we’re skipping the 7.6 release (or more dramatically put: “we’re **canceling** 7.6!!!11one”).

We will move on right to 7.7 in January. Honestly, I always thought the .6 as a major release was a bit odd anyway, 7.7 at least looks symmetric. I think 7.6 simply had it coming.

As part of this skipping of the versions, we’re pushing mobile v2 GA along with it. So mobile v2 will also be released min-January now.

On the **mobile platform** end, we’re using this opportunity for a ground breaking idea. Extensive market research has shown that human kind is ok with a fair amount of things, but in a significant part of the world (that some biased voices would refer to as “the civilized world” although the level of its current civilization can be heavily debated) they’re not too keen on ingesting a lot of one specific animal species: bugs. Therefore, we try to eliminate them as much as possible from our customers’ diet. Yeah, we’re fixing bugs. Why don’t I just say that? Because it gets boring after a while. Gotta flower it up.

On the **web platform** end, we spent some time fixing bugs uncovered during our slew of outages over past weeks. We’re also looking at adding ESLint rules to avoid passing global state, and continuing work on menus (it never ends).

On the **desktop platform** end, we’re planning to invest in some more lower hanging performance fruits, like reducing the number of additional web views we use or at least making them much lighter weight.

On the **server platform** side, we are continuing to monitor and investigate issues with community instability. Specifically we’ve been working to run load tests on a clone of our community environment to see if we can replicate similar conditions that we saw in production. In addition, we have been supporting customers with their data migration (and fixes with tooling around this process), wrapping up the ability to revert data migrations and getting [Perseus](https://github.com/mattermost/perseus) in a production ready state (CI, docs, tests, metrics). This ensures we’ll be the first in line to cause a fresh batch of outages on Community in the new year. I kid. That would never happen.

On the **QA platform** side, we’re heavily at work migrating macOS-based Rainforest tests to macOS Monterey, and cleaning up test suites. We’ve also been helping the server platform team with running the previously mentioned load tests.

## HOWTO: Be Wise
There’s a poorly kept secret at Mattermost. In fact, it’s a fairly common thing in the industry: there is such a thing as a training budget.

Every year we’re allowed to spend a certain amount (in our case $500) [on “professional development”](https://handbook.mattermost.com/operations/finance/staff-member-expenses/how-to-spend-company-money): 

> **Professional development**: Work-related online courses and professional development certifications, not included in career path training or training for specialty roles, e.g. Information Security. Mattermost staff members are allotted 500 USD per fiscal year to spend on one or multiple training courses.

I’ve suggested to some people to translate “training courses” to “books.” Going on a training course is so ‘90s. I think nobody will take issue with that, and it opens up a fun holiday present opportunity: how about you buy yourself some nice books and let the company reimburse you? Disclaimer: please check with your manager on specific books before you do this, just in case.

Why would you invest in books? There’s roughly two reasons that I can see.

First: they can severely boost your meeting ethos.

**Step 1:** If you don’t have one in your Zoom video frame already, get yourself a bookshelf and make sure it’s visible on your video stream. Then, buy some impressive-looking books (suggestions later) and put them on that shelf. 

**Step 2**: Hold back in meetings. Be the last to speak. Then, when the timing is right, raise your (virtual) hand dramatically. Turn around, pull one of the books from the shelf behind you, open it at a random page, and utter the words “As [Marcel Proust](https://en.wikipedia.org/wiki/Marcel_Proust) would say...” Be sure to have a relevant quote here that just nails it. I have never read Proust myself, so I cannot help you with the specifics.

Boost in perceived wisdom guaranteed!

The second reason to buy books is that you may actually learn something from reading them. I hear you, this one’s a bit of a stretch, but hear me out.

When I was young and naive, I bought a whole bunch of books on fancy programming topics. My strategy was to buy the thickest book on a particular topic available in the store. Every time I’m at my parents I still see my “PHP4 for dummies” and “XSLT the ultimate guide” using up an impressive amount of shelf space. We didn’t have zoom calls yet back then to impress people, so let’s just say I was ahead of my time. Today’s reality is that by the time a programming-related book comes out, it’s already way out of date. I’m pretty sure there’s a PHP5 now, for instance, although I’m pretty sure [XSLT](https://en.wikipedia.org/wiki/XSLT) is still pretty hot — some things are just evergreen.

So, what books to buy instead? Let’s use this as a fun “holiday books suggestions” thread. In order not to overwhelm, I’ll limit my suggestions, and make them somewhat self-serving.

While I may not have been doing the best job to push people into a managerial track with all my sarcasm about the value of management, Mattermost needs more people to take this path. Therefore I’ll include some books that give a better sense of what that path is like.

I’ll include Amazon links for convenience, usually Kindle links, but if you want to use them as shelf fillers, be sure to get physical, hard-cover copies.

[A philosophy of software design](https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201) by John Ousterhout: This is a great book on how to approach software design, both from a philosophical but also tactical perspective. I keep hearing recommendations from many sources, so there must be something here.

Then, a few “pick your career path adventure” suggestions.

If you’re interested in exploring the “IC path”: that is, to remain focused on the technology and growing there. There are two books on this topic for those farther into their career (senior and above):

- [Staff Engineer](https://www.amazon.com/Staff-Engineer-Leadership-beyond-management-ebook/dp/B08RMSHYGG) by Will Larson
- [The Staff Engineer’s Path](https://www.amazon.com/Staff-Engineers-Path-Tanya-Reilly-ebook/dp/B0BG16Y553) by Tanya Reilly: this one’s very new. I only bought it this morning, but it’s looking promising.

If you’re interested in exploring the management path, the canonical book to get (even if you’re not really sure) is [The Manager’s Path](https://www.amazon.com/Managers-Path-Leaders-Navigating-Growth-ebook/dp/B06XP3GJ7F) by Camille Fournier.

If you’re interested in exploring some more of these “people topics” (as you should), I’ll recommend three last books:

- [The Culture Map](https://www.amazon.com/Culture-Map-INTL-ED-Decoding-ebook/dp/B06XCJ125R) by Erin Meyer. This is extremely relevant to Mattermost where we have people working together from such a wide diversity of cultures.

- [Nonviolent Communication](https://www.amazon.com/Nonviolent-Communication-Language-Life-Changing-Relationships/dp/189200528X) by Marshall Rosenberg. This completely changed my thinking about how we (ought to) communicate.

- [Punished By Rewards](https://www.amazon.com/Punished-Rewards-Twenty-fifth-Anniversary-Incentive-ebook/dp/B004MYFLDG) by Alfie Kohn, which really challenges the standard thinking on how we use rewards (I wrote about this [topic at length](https://zef.plus/no-more-rewards/) based on reading this book).

One last important thing. I own hundreds of books. I’ve even read most of them. However, I made one mistake: for most, I didn’t take notes. And while this may be my age: I don’t remember all that much. Today, it often happens that somebody mentions “Oh yeah, I’m reading book X” and I’m thinking: yeah, I’m 99% sure I’ve read that — but I remember zip. 

Don’t be like me. Make notes. I’ve made an agreement with myself some time ago that I will only claim to have read something if I have notes to show for it. Not only does writing notes help with retention, but they’re generally also easily retrievable.

If you’re looking for a tool to keep such notes and externalize more of your knowledge — I saw something [on the front page of Hacker News](https://news.ycombinator.com/item?id=33843009) and the [Self-hosted Reddit](https://www.reddit.com/r/selfhosted/comments/zc5t35/silver_bullet_personal_knowledge_management/) last week, seems like [a pretty cool tool](https://silverbullet.md/). You should check it out. It’s [open source](https://github.com/silverbulletmd/silverbullet) and the author seems like a [nice and very smart guy](https://www.youtube.com/watch?v=VemS-cqAD5k).

That’s all for this year folks.

Leave your own book recommendations in the thread.

I wish you all and your families happy holidays and see you next year!