Mixmax Advent 2016
An Open Source Culture
Thursday, Dec 1st, 2016
Mixmax is a communications platform that brings professional communication & email into the 21st century.
Over the next 12 days we’ll be sharing one engineering post per day, carrying forward a long internet tradition of blog advent calendars. Follow @mixmax on Twitter for the latest posts or check back here daily for an updated list.
Our posts will be about our stack and interesting solutions to engineering problems we've encountered. We hope to give back to community what the community has given to us. We also look forward to hearing feedback! Tweet the author of the post (linked to on the right of each post) with your feedback.
- Open Source Culture
- Upgrading to Node 6 on Elastic Beanstalk
- A quick look on some of the new features of Node 6.x
- CORS: How I Learned to Stop Worrying and Love HTTP Access Control
- Securely signing requests with Rewt
- 30x Faster Elasticsearch Queries
- Rewriting 30,000 lines of code in a friendly way
- Adventures in the Gmail PubSub API
- CPU profiling node.js processes live in production
- Fun with the Mixmax REST API
- Integration testing for humans
- How to write an engineering blog post
Now, for the first post:
Open Source Culture
Mixmax’s engineering team was founded on the principle of openness. From our very beginning just two years ago, we’ve embraced an “open source culture”: a set of core values that promote transparency and collaboration within our company and with the larger engineering community.
We’ve built on entire platform on open source software, from MongoDB, ElasticSearch, and Redis in our backend, to Node and numerous npm modules in the application layer, to Backbone and Electron in the frontend. We’ve contributed to these projects and launched many of our own as well. We’ve blogged extensively, given talks, and engage daily with the community on Twitter and in various Github issues.
- 34 open source projects and 382 Github stars (and growing, fast!). Mixmax has more open source projects than private projects.
- More than half of the APIs used by our product are open.
- 19 engineering blog posts. That’s one per 6 weeks on average since the company’s beginning.
- Significant contributions to popular open source projects: Meteor, Electron, Nodemailer, Bull Queue, AWS SDK
- Multiple talks at Meteor Devshop and the Bay Area Electron meetup
- Over 100k unique views for our engineering blog posts
Our approach to open source isn’t an afterthought; it’s how we approach building new things. We think of our business as first and foremost to serve our customers, and secondly to push technology forward to serve the greater engineering community. When we begin to build a feature we scope it in that order: 1) How will this meet our customer’s needs, and 2) How can we build this in an “open source” way such that others can use and extend it.
This approach in building new features has led to the creation of many of our open source npm modules. Many of those used to be either embedded in a single service or copied file-by-file between services. When we created an npm organization we became able to share these as private modules, but we decided to invest in making the majority of them public.
The biggest criticism of an open source culture is the additional overhead, or “overengineering”, slows down product development. It’s something we’re mindful of. We’re careful not to over-generalize our open source modules, or to build solutions to problems we don’t have.
But ultimately, we believe writing good, transparent, open-sourceable code, and keeping our dev efforts focused on delivered value for our customers are complementary, not contradictory goals. Open-source development holds our own engineers to a higher standard for modularity, testing, and documentation. Over the long term, community support speeds development and mitigates risk. The initial cost of open-source development is offset very quickly.
Open source will remain central to our culture at Mixmax as we scale up and expand to other languages and technologies. If you’re interested in working in an open source culture, come join us!