Work from anywhere writing open source software with Mattermost
Open source companies are amazing places to work for engineers. Your work is showcased to the world through private open source companies like GitLab and HashiCorp (makers of Terraform and Vault), and through public ones like Elastic, GitHub, and RedHat—all of which have enormous impact.
We chatted with Corey Hulen, CTO and co-founder of the Mattermost open source project, to learn more about why developers who might be new to open source should consider joining an open source company like Mattermost, Inc.—which recently raised over $50 million of new funding—and what he’s excited about on Mattermost’s horizons.
How is being an engineer at Mattermost different than being an engineer somewhere else?
First of all, we were doing remote before remote was cool—before you had to do it. So I think we have a lot of methodologies and processes from being founded as a remote company versus other companies that are adapting into the mindsets.
People always ask what it takes to be successful in a remote company, and for remote work it’s two things. One is asynchronous written form communication. That’s a product we built, and that’s how we run our company. We’re solving problems that occur to us daily. As an engineer, that’s super fulfilling—like, “this annoys me like I’m gonna go try to fix it.”
The other is that you have to be internally motivated versus externally motivated. There’s nobody here monitoring you. It’s not about how much time you sit at your desk. We care about how much you contribute to the open source project and what you are doing to push that forward.
That creates a lot of flexibility in some respects, and it appeals to all different types of lifestyles. I’ve always been a night owl, and so it’s always been hard for me to adjust to “business” hours. I always like to say, if you want to sneak away for half an hour in the middle of the day and go walk your dog or watch kids play soccer, we just don’t care. What we care about is what you’re contributing.
The second thing about Mattermost is that we’re an open source company. There’s a lot of reasons to contribute to open source, whether you’re interested in the technology itself, or you want to build your resume. At Mattermost, engineers use their personal GitHub accounts to code, so that’s street cred that you’ll take with you. Most engineers get to keep and share the vast majority of the code they write here. That is really valuable for a lot of us.
We’re at that stage where you can see in the contributions from the community and in the customer base what people are doing, and they’re all super fascinating. We have these amazing customers using Mattermost in ways that really inspire us. They’re using Mattermost to plan space missions, fight COVID, build electric cars, create some of the world’s most popular video games. It is really incredible to be able to show your friends and family the code you wrote that’s helping do all that.
That’s the power of being paid to work in open source.
Can you tell us what it was like going from a closed source company to an open source company?
There’s a lot to talk about here. I think the first point is really impact.
When I worked in the closed source industry, I always felt a little guilty because most closed source companies really stand on the shoulders of open source giants. Now that I get paid to write open source software, it’s been a huge opportunity to give back to the world, instead of only taking. We’re creating a lot of software that people are using and learning from, and as an engineer, I feel our team’s impact is somewhere between a hundred times to a thousand times greater than if we were only writing closed source software. We still have some closed source software at Mattermost, but it’s a very small portion of what we do.
I think the second point is quality. And I know I’ve been guilty of this when I worked at Microsoft and at other organizations where something needs to get done, you bang it out, check it in, it works, and you’re just like, “Oh my goodness, that’s some pretty nasty code. Good thing it’s in the bowels of some system somewhere and no one will ever see it.” With open source, you’ve got your name attached to your code in a very public manner, and it’s kind of permanent. So there’s this sense of wanting to make everything cleaner and tighter and becoming more methodical in your process.
What actually happens is that when someone from closed source works in open source, they often slow down at first. They get nervous—a little bit of stage fright showing off their work—but the end result is what they put out is either pretty good, or if it’s not, there’s this kind of urgency to fix it. And what happens over time is that code quality is naturally higher when engineers are open sourcing their work. And so as an organization, we’re more productive because of that quality.
I think third is that there’s a sense of ownership over what you’ve contributed. Whether you’re making a big contribution or a small one, everything moves the community forward and the open source project forward in monumental ways, but in very different ways. I use Matterbuild as our example of this. It’s an internal build tool. We have an engineer who worked on Matterbuild and it has no value except to us as a company. For closed source, you would just have to put on your resume that you built an internal build tool. But with open source you can even share what you’ve done with internal tools to the world. You get that street cred and can show off the hard work you’ve done.
How do you think about the tech stack you use at Mattermost?
We’re a Go, React, and React Native shop. They’re sort of obvious choices today, but when we started Mattermost more than five years ago, things like Go and React were not very popular. And so it was a very conscious decision for us. We really thought about what it would take to grow an open source project into something really big.
We originally prototyped in Python with Django, and we knew it wasn’t the long-term solution for us. I love Python. I think it’s a great hacker’s language. But anybody who’s tried to debug a million lines of Python code knows it’s hard! So having things like a static compiled binary, type language, offer the capacity to grow so much bigger.
Another thing we knew early on was that system administrators would need to install and manage our open source systems as part of their infrastructure. Having a self-contained binary— not having to worry about what version of Python or what version of Java you have installed— might feel like a small thing. But it’s a really big thing from the customer’s perspective.
Customer obsession is one of Mattermost’s leadership principles. What does customer obsession look like when it comes to engineering decisions?
For engineers, “Customer Obsession” is really about architectural decisions that benefit customers, both in the near term and in the long term.
NoSQL is all the rage, but when we looked at things from a customer standpoint and asked, “What database technology is easy for a customer to manage?” Well, that’s MySQL or PostgreSQL. For us, that was a very conscious decision because we knew that we were going to have some large companies and users bases running on our system. They’re going to have to manage the database on their own. So let’s choose the most stable database technology that’s out there, the easiest to set up and run, and one which can scale pretty far.
And I think it’s worked out really well for us. It’s easy to forget how much our customers love the ease of installation and standardization and how much that attracts people to the product. But our constant effort is to get down to that WordPress five minute install. We’re not quite there. But we’re darn close.
A side-effect of that choice is now you can run Mattermost with cloud systems like AWS Aurora that are compatible with PostgreSQL interfaces. That’s an example of an architectural decision that pays off for customers over and over.
What qualities do you look for in an engineering candidate?
We get hundreds of applications a week for the roles here, and we definitely gravitate towards people who lean in and get involved. That’s something that people can do to really distinguish themselves from all the applications that are coming in. If you want to contribute to one of our open source projects, we provide very detailed documentation on how to set up your developer machine, work on a real ticket that would ship in a future release, and get your first pull request in really quickly.
We try to be very engaged with our community and people who come in through that route. We work with our open source contributors on a very personal level, and we have ended up hiring some of those contributors because of our working so closely with them over time.
What’s one of the problems you’re excited to work on as we build out the team?
We have a lot of customers in countries where network connectivity is a real issue, and that can be an interesting problem to solve. And so we’re putting a lot of time and effort in scenarios like limited connectivity and no connectivity, and all the interesting caching and state synchronization scenarios involved.
So if you’re interested in React Native, that’s one of the cool things we’re working on. And having your work end up in an open source project ends up being really cool. At some point, people reading this interview will check out the code base and find out that someone else has already solved the problem.
There have been amazing contributions to Mattermost. Not only are we using React, the React Native team at Facebook contributed some stuff to us, and they showcased Mattermost on stage at one of their biggest events because we are one of the largest open source projects using React Native, and there’s a lot to showcase and talk about. There are opportunities for collaboration that are super fascinating.
We have a lot of fun problems to solve right now—a lot of fun, hard problems, especially in the mobile space. And you can come experience how that works in a really large project, leave your fingerprints deep in the Mattermost code base, and be part of a broader open source community.
There’s over 1,000 people spending their personal time contributing to Mattermost open source projects because they care about the work they do, they care about learning, having impact, expanding their portfolio, being appreciated and recognized and all the amazing things that happen when you’re co-building the future with an open source community.
Working at Mattermost is being paid to write open source software. For a lot of people, it’s a really meaningful and impactful way to build out their careers.
Learn more about working with Mattermost
To learn more about working at Mattermost and see open opportunities to join the team, visit our Careers page.
If you’re interested in contributing to one of Mattermost’s open source projects, check this out.