DEV Community

Cover image for The Platformer #25: High-Impact Hacking
Zef Hemel for Mattermost

Posted on

The Platformer #25: High-Impact Hacking

We’re well into Hacktoberfest and like every year, Mattermost is participating. While we all knew this was going to happen, we perhaps didn’t all anticipate how much time it would take to review the overwhelming number of incoming pull requests. This, of course, is a luxury problem that we’re happy to have. It is slowing our planned work down a bit — but what can you do?

As I’ll argue later in this post, supporting community contributions may be the highest-impact work we’ll ever do. A whole lot of new people are flooding into Mattermost projects to contribute and if their experience is good, they may stick around.

Cherry picks

Agniva posted another update on the multi-product architecture. These updates mentioned the emerging Event Bus project that we worked on during Mattercon. Of course, #ThereIsAChannelForThat: ~Contribute: Event Bus on which yours sincerely posted a 3-minute demo video of the current state of things.

On the mobile platform end, a big topic for Q4 will be to make progress on the “one command to set up your environment” project. While we figure out what the initial scope of this project should be, one important decision to make here is the tech stack to build this on — taking into account we will likely want to expand this command beyond the mobile use case, e.g. set up the server, web, and QA environments, as well as use it to manage the many git repos that we have. Poll is here.

On the web platform end, we are overwhelmed with Hacktoberfest pull requests. Again, an amazing problem to have, but it takes time. Q4 focus-wise, we’ve picked up work on the menus again, focusing primarily on places where it’s used in the sidebar. We also did a bit of a retrospective on the React 17 upgrade (and rollback) and what we learned from this. During the Developer Meeting we also discussed a plan to perform the upgrade once and for all.

On the desktop platform end, we are working on OS-level do-not-disturb integration. We’re also upgrading to Electron 21, and diving back into the topic of combining the webapp and desktop app more closely.

On the server platform side, we merged a huge refactoring PR last week and have now dealt with the aftermath. While intended as primarily refactoring (which by definition doesn’t change behavior), it also changed behavior — as it turned out — especially due to initialization logic. We ran all our test suites, did manual QA, and still ended up blowing up deployment to Community. This was quickly fixed, but still, it shouldn’t happen. The issue was related to the very specific community setup we have, but that doesn’t mean we simply have hope for the best 🤞 next time. What came out of this is that for the future we now have a way to avoid this problem: “community on demand” — the ability to deploy a replica (in terms of setup + data) of our community server on demand, for testing purposes. Details on how other teams can leverage this will be shared soon.

On the QA platform side, we had another week, which means: another release to run QA for. Due to Hacktoberfest, a lot of review work is on the QA guild, with a large number of submitted tickets porting our Cypress test suite to Typescript.

High Impact through Open Source

“It was this project that inspired me to finally learn programming a year ago. And I’m happy to share: I just landed my first programming job!” — Parham

I had a conversation yesterday about how we gauge our impact when it comes to the part of the job where we’re primarily hoping to grow and support other people, rather than a codebase.

Code bases are easy in that sense. You clone it, make changes, maneuver through review, and merge: bug fixed; feature shipped; years of cursing from people when they git blame and find this code.

I made a difference. I was here.

However, in more senior roles we’re no longer just expected to ship stuff (or as I call it: “typin’ the codez”), we’re also expected to support other people in their growth. The pointer I’m giving to the most senior people is “Figure out ways to pull other people to your level.”

That’s easy to say (that’s why I do it), but even if we figure out strategies that may achieve this, how do we know if we’re successful — how do we measure it? And realistically how long does it take to know for sure?

About 20 years ago I started my first open source project. It was forum software written in Perl. That’s right, Perl — you’re welcome, world. It’s what we had back in those days. Don’t judge.

This project, called YaBB — Yet another Bulletin Board (I’ve always been good at naming things) — is pretty much dead. A few months ago the website was still up, but it appears to be down now. Yes, the project was forked into YaBB SE (a direct PHP port), and ultimately evolved into Simple Machines Forum, which still seems to be under development today (and powers Bitcoin Talk — if you’re still into the crypto thing).

However, all those many thousands lines of Perl code I wrote 20 years ago — pretty much dead. Which, honestly, is probably for the best — you would not trust a word I say if you had seen the stuff I pulled in that code.

So what remains? What was the long term impact of this project?

That is really, really fuzzy.

However, here is what I’d like to believe: some of the good that came out of this project are notes I received, like the one I started this section with. Stories like Parham’s. Apparently, it got Parham into software development (despite Perl) about 20 years ago. We’re connected on LinkedIn, he is now the VP of Engineering somewhere. We can debate whether you would consider that a success story, but I’d like to think it is. Was that all due to this project I started 20 years ago? Of course not, but likely it contributed, this is where the fuzziness comes in.

It also provides a clue on how we may make a lasting impact on people’s lives through software, even long after all the code you wrote has (finally) been deleted. Which, not to be dramatic or anything, is going to happen. That lasting impact is all about what people learned from you while being involved in a project. Many of these learnings should transcend technical stacks, project, companies, and time.

Ask anybody to “root cause” how they got into their particular profession. Chances are high that they will lead it back to a particular teacher they had in school, decades earlier. By the way, if this is the case for you, reach out to that teacher (if they’re still around) and drop them a note, they’ll appreciate it. Being a teacher is likely one of the highest-impact professions in the world. That’s why we compensate them so well. cough.

However, we don’t need to quit our jobs and go teach in primary and high schools to make a difference, we can play a similar role at work. Open source companies make this even more accessible.

How? Here’s the reality: most software companies tend to decide who they hire based on background and experience. You should already be able to do software development coming in, it’s rare to hire people with no experience at all.

At Mattercon, we heard a talk from a community member who shared he had used Mattermost as a training ground. He had no background in software development whatsoever, and learned it all through self-study and open source contribution. He’d make a change, get feedback on his pull request, and learn. Rinse and repeat.

He’s a core contributor now.

As my earlier example showed, this is not a rarity. This is a great way to get into the industry. We hire a lot from the community, and many of these people have “non-traditional” backgrounds.

So, how do we measure our impact long term? How will we know that we “pulled people up”?

I don’t know. Let’s evaluate in 20 years. Drop me a note.

Until then — if you’re a maintainer for an open source project — go review pull requests from community members, during Hacktoberfest and beyond. It may be some of the highest-impact work you’ll ever do. And tragically, you may never find out.

This post was adapted from its original version on the Mattermost Community Server. Want to take a closer look at the inner workings of the Platform team? Join the Community server to be the first to read The Platformer every Friday.

Top comments (0)