Mixmax Engineering
How we build, ship, and scale. Deep dives from the team behind the product.
-
Event-Driven Systems Meet AI: The Key to Mixmax’s Growth and Innovation
Discover how Mixmax leverages event-driven architecture and AI to boost scalability, efficiency, and innovation in their systems, ensuring seamless growth and smarter engineering.
Kamil Gruszka · Dec 19, 2024
Read more -
Monorepos: Why We Made the Switch
Discover why Mixmax switched to a monorepo, the benefits it brought, and how Nx emerged as the top tool to streamline development and improve collaboration.
Kristína Janovčíková · Dec 18, 2024
Read more -
How Mixmax Uses AI to Automatically Reschedule Sequences: Engineering Behind a Single Checkbox
Discover how Mixmax leverages AI to automatically reschedule email sequences for recipients out-of-office, ensuring maximum engagement and efficiency with a single checkbox.
László Vaspál · Dec 13, 2024
Read more -
Catch UI Bugs Before They Catch You: The Magic of Visual Testing
Catch UI bugs early with visual testing. Learn how Mixmax integrates Chromatic for seamless visual regression detection, ensuring a polished and consistent user experience.
Guilherme Jacomini · Dec 11, 2024
Read more -
The Evolution of Coding
Discover the rapid evolution of coding from punch cards to AI-driven tools, transforming software development and redefining our relationship with technology.
Alejandro Dominguez · Dec 9, 2024
Read more -
How We Built a Chrome Extension Pipeline So Good, It Might Just Apply for a Patent
Streamline your Chrome extension releases with Mixmax’s revamped pipeline, leveraging GitHub Actions, AWS S3, and Chrome Web Store APIs for enhanced control and reliability.
Raphael Brandão · Dec 6, 2024
Read more -
Boosting Code Quality at Mixmax with Custom React Hooks
Improve your React code quality with custom hooks for hover states, outside clicks, and lazy initialization. Learn how Mixmax enhances efficiency and maintainability.
Armen Avakian · Dec 5, 2024
Read more -
Mixmax Advent 2024
Discover the festive Mixmax Advent, where our engineering team shares valuable insights, stories, and innovations from the past year. Join us for a journey of growth and learning.
Akash Bhalla · Dec 4, 2024
Read more -
From Zero to Zen: With Xray Documentation
As a long time veteran at Mixmax, I witnessed the challenges of scaling up our test case management. Initially, we relied on Google Sheets.
Jesse M · Dec 13, 2023
Read more -
The Great Migration: From MongoDB to DynamoDB
Today, we're sharing our monumental journey of migrating 1.5 billion documents from MongoDB to DynamoDB to give our email tracking system a modern makeover
Brad Vogel · Dec 11, 2023
Read more -
Navigating the Landscape of Test Automation Tools
With a diverse range of testing tools available, this technical post aims to guide you through the decision-making process.
Ahmed Alaa · Dec 9, 2023
Read more -
Tools That Power Our Workflow
The Oracle and The Highway are two of the tools that we use to help us guide our remote team through the labyrinth of information and priorities.
David Anaya · Dec 7, 2023
Read more -
Revamping UI/UX: Embracing Skeleton Placeholders
At Mixmax, delivering an exceptional UI/UX has led us to a significant shift — from traditional loading spinners to skeleton placeholders in our frontend.
Armen Avakian · Dec 5, 2023
Read more -
The Role of RUM Dashboards for Product Quality Excellence
Real User Monitoring (RUM) dashboards play a vital role providing insights into how people use our Mixmax product, guiding us to make informed decisions.
Amina Odžak · Dec 3, 2023
Read more -
Mixmax Advent 2023
Our Advent blogging tradition is back! This December 2023, we're bringing to you another series of engineering blog posts, reflections of our progress.
Brad Vogel · Dec 1, 2023
Read more -
Working Remotely as a Mixmax Engineer
Building a company culture while working remotely takes effort and commitment. Here at Mixmax, we committed in 2022 to become a top 10 distributed team and even included it as part of our goals for the year.
David Anaya · Dec 12, 2022
Read more -
Choosing a React State Management Framework
It was time for the next evolution of our frontend architecture: replacing our Backbone state layer with a modern framework. And in true Mixmax fashion of always having fun, we decided to make it a contest!
Brad Vogel · Dec 11, 2022
Read more -
The Mixmax Component Library: Tips and Tricks for Styled-Components with TypeScript
During the process of working with both “styled” and TypeScript, we learned many tips and tricks on writing more maintainable code (that’s also enjoyable to write!). This article will be about some of them.
Armen Avakian · Dec 10, 2022
Read more -
Race Conditions Using `+=` Operators
From time to time, JavaScript gives us some surprises. In particular, we’ve found surprising results when JavaScript is used in combination with assignment operators such as “+=.”
Jordi Salvat i Alabart · Dec 9, 2022
Read more -
Make It Snow! ❄️ Snowflake's Storage Optimizations
In this blog, we’ll go over how we handled storage optimization in Snowflake. There are many ways on which we can optimize processing, and we actually applied quite a few.
Estefanía Imwinkelried · Dec 8, 2022
Read more -
Tips for Success in the Mixmax Recruiter and Behavioral Interviews
Did you know we’re hiring? We want stellar people like you to join our team. For that to happen, you’ll need to show us what you’ve got.
Margaret Buj · Dec 7, 2022
Read more -
Enhancing Quality in Mixmax
Over time, I’ve seen that throwing more money, people, and effort at a quality problem without the right strategy doesn’t work. At Mixmax, QA had to be started from scratch.
Amina Odžak · Dec 6, 2022
Read more -
Are We Still Running Our Dev Environment Remotely? (Spoiler Alert: Yes, and More!)
It’s been over a year since we launched our remote dev environment and we are loving it. But it wouldn’t be a true piece of software if it didn’t go through iterations.
Kristína Janovčíková · Dec 5, 2022
Read more -
Make It Snow! ❄️ Reducing Costs in Snowflake
Back in January 2022 at Mixmax: small fires everywhere, alarms going off, daily processes not being run for weeks. The reasons these were many and varied, but I had only one action plan: roll up my sleeves and get down to work.
Estefanía Imwinkelried · Dec 4, 2022
Read more -
Incremental Migration from JavaScript to TypeScript in Our Largest Service
Mixmax is migrating JavaScript code to TypeScript. We need to migrate dashboard, largest service, but it seems risky. The question is — how can we do it?
Armen Avakian · Dec 3, 2022
Read more -
Mixmax Engineering Interviews: What It’s Like, and What We Look For
We’re hiring! And if you’re reading this, it’s likely that you already knew that. We want the most gifted and talented people (like you) to join our team.
Leandro Marty · Dec 2, 2022
Read more -
Mixmax Advent 2022
Mixmax Engineering is back! We’re continuing our proud tradition of Advent blogging, where we release one blog post per day in the first weeks of December.
Brad Vogel · Dec 1, 2022
Read more -
TypeScriptifying Our Flow Code: Tools & Lessons Learned
Here is a high-level description of the process followed to migrate a large codebase from Flow to Typescript and a few distinct lessons learned.
Jordi Salvat i Alabart · Dec 13, 2021
Read more -
Initializing Microservices with a Single Command Using Nx Generators
In this post, we discuss custom Nx generators and how we're using them to create microservices with a single command, which used to be a manual process at Mixmax.
Srinand Balaji · Dec 12, 2021
Read more -
The Mixmax Engineering Culture Survey
We produced the Mixmax engineering culture survey, which we now administer biannually. It’s really helped us to continuously improve, and I hope that it can help you too. Find the latest version.
Logan Davis · Dec 11, 2021
Read more -
Mentorship: What It Is and What It Isn't
What is mentorship? What kinds of professional guidance-based relationships aren't mentorship? Learn what to look for and what to expect in a mentoring relationship.
Ryan Freebern · Dec 10, 2021
Read more -
Migrating Our Largest Package into Smaller Libraries
Salesforce integration is an important part of our business at Mixmax, so we always want to make it better. In this post, I’ll share one of our latest iterations of Salesforce integration.
Gabriel Costa · Dec 9, 2021
Read more -
Interview with a New Engineer: Meet Ebuka Ugwu
We enjoyed our first interview with a new Mixmax engineer so much, we decided to do it again. Ever wondered about who we hire and what they do? Meet Ebuka Ugwu.
Ebuka Ugwu · Dec 8, 2021
Read more -
Keeping Your Infrastructure DRY
The seventh blog post of our Advent 2021 series. How we avoided repeating ourselves when coding our resources with Terraform.
Leandro Marty · Dec 7, 2021
Read more -
How Three Day Rule uses Mixmax to Improve Matchmaking
In this post we’ll explore how exclusive matchmaking service Three Day Rule uses Mixmax Sequences and Rules to power their workflow.
Matt Chan · Dec 6, 2021
Read more -
Beating Spam Detection Bots (Again)
Mixmax' strategies to differentiate spam detection bots and email scanners from real users.
Shil Sinha · Dec 5, 2021
Read more -
Mixmax Band Names
At Mixmax, when we hear a funny phrase—usually a technical one—we like to shout, “Add it to the list of band names!”. Here are highlights.
Brad Vogel · Dec 4, 2021
Read more -
Acing the Technical Screening Interview
We want stellar people like you to join our team. I want to give you the secrets that will allow you to really shine in your Mixmax technical screen.
Ryan Freebern · Dec 3, 2021
Read more -
Work Locally, Run Remotely: Moving Our Local Dev Stack to the Cloud
The second blog post of our Advent 2021 series. In this post, we look at the benefits from using a remote development environment against a local one.
Leandro Marty · Dec 2, 2021
Read more -
Mixmax Engineering Advent 2021
The Mixmax Engineering team will be publishing one blog post per day Dec 1 - Dec 12.
Brad Vogel · Dec 1, 2021
Read more -
Interview with a New Engineer: Gabriel Costa
Ever wondered what a day in the life of a software engineer looks like? Meet Gabriel Costa.
Gabriel Costa · Oct 27, 2021
Read more -
Moving to the Gmail API
We recently improved our email-sending infrastructure by migrating from Google’s SMTP server to Gmail API. In this post, we’ll share why and the challenges.
Brad Vogel · Oct 8, 2021
Read more -
Modern Data Warehouse Infrastructure: The Database
In this post, I will talk about the Data Warehouse, the Database where we will store and retrieve the data and tips to help you decide the right one for your organization
Pablo Seibelt · Feb 9, 2021
Read more -
Engineering Levels at Mixmax
In this post, we’ll talk about how we designed our engineering levels. This is a live document inside of Mixmax and it is always being updated as we continue to grow and evolve as a team.
Trey Tacon · Dec 12, 2020
Read more -
History of Mixmax, Part 1
This is the first part of an ongoing series documenting the evolution of Mixmax’s architecture and infrastructure over time. We’re a long way from where we started way back in 2014!
Logan Davis · Dec 11, 2020
Read more -
Star Schema for Your Data Analytics
At Mixmax, we chose to go with a Kimball-style Star Schema model, with some alterations. Learn what a Star Schema is, what the benefits are and find an example.
Kristin Hedgecock and Pablo Seibelt · Dec 10, 2020
Read more -
A Human-Centric Approach to Retrospectives
At Mixmax, we tried a new retro format inspired by Virginia Satir. It renewed sense of camaraderie and understanding of each other as human beings contributing to the team's success as a whole.
Ryan Freebern · Dec 9, 2020
Read more -
Migrating from Elastic Beanstalk to Fargate using Terraform
In this post, we detailed our journey migrating from Elastic Beanstalk (EB) to Fargate, using Terraform to codify our infrastructure along the way.
Mixmax · Dec 8, 2020
Read more -
The Future of Services at Mixmax
Mixmax is starting a new era of right-sized services
Garret Meier · Dec 7, 2020
Read more -
How We Hacked* Our Manager
Security is the concern of every engineer, every day at Mixmax. One recent exercise focused on phishing and we tried to hack our manager and this is how.
Siobhan Dolan · Dec 6, 2020
Read more -
Share Meeting Recordings Automatically with Mixmax Rules
Getting rid of annoying busywork is where Mixmax shines. On my team, we set up a Mixmax Rule to handle sharing meeting recordings automatically. Here is how.
Ryan Freebern · Dec 5, 2020
Read more -
Maintaining an End-to-End Integration Test Suite
We reduced the false negative rate of the end-to-end integration test suite. Here are a number of tips and tricks for debugging and maintaining Puppeteer-based tests.
Srinand Balaji · Dec 4, 2020
Read more -
Introducing the Mixmax Engineering Handbook
In this blog post, we’ll be sharing a chapter from our internal Mixmax Engineering Handbook - our central hub for all engineering documentation.
Mixmax · Dec 3, 2020
Read more -
Saving Money, Time, and Space with MongoDB Indexes
As your product evolves, so will your database usage. It’s worth periodically revisiting your index design. Here is how we saved space with MongoDB indexes
Shil Sinha · Dec 2, 2020
Read more -
How I Successfully Ran Hack Days for the Distributed Team
In this post, I like to share how I successfully planned and ran hack days for the distributed Engineering team at Mixmax.
Ryan Freebern · Dec 1, 2020
Read more -
Mixmax Advent 2020: 12 Days, 12 Blog Posts
Following a proud internet tradition of advent blogging, the Mixmax Engineering team will be sharing 12 blog posts over the next 12 days right here.
Brad Vogel · Nov 30, 2020
Read more -
5 Things We Learned in Achieving SOC2 Compliance
We achieved SOC2 Type II, aka SOC2, compliance recently. For those of you considering it, or currently going through it, here are 5 things we learned along the way.
Seth Sakamoto · Jul 7, 2020
Read more -
Automate Your Onboarding Emails with the Mixmax API
Wondering how to automate onboarding emails? Mixmax's API is what you're looking for. Here's how you can automate onboarding emails with Mixmax.
Ryan Freebern · Mar 30, 2020
Read more -
Mixmax Creative Code Challenge, May 2019
In May, we set ourselves a challenge: toss all the usual constraints out the window, optimize for creativity, cleverness, and enjoyment instead, and write some code that outputs the Mixmax logo!
Ryan Freebern · Jul 2, 2019
Read more -
Mixmax hosts SFNode and presents: UX Design for Engineers
Mixmax's own Logan Davis presented Progressive UX Design for Engineers at SFNode hosted at our office on June 6. Here's his talk.
Logan Davis · Jun 10, 2019
Read more -
Practical Metrics with Graphite and Terraform (Part 2)
In this series of blog posts, we’re outlining our journey to metrics bliss. This post is part 2, where we’ll look at the architecture of our Graphite cluster.
Garret Meier · May 14, 2019
Read more -
Practical Metrics with Graphite and Terraform (Part 1)
Why we stopped using CloudWatch and hosted our own Statsd and Graphite using Terraform.
Garret Meier · Apr 19, 2019
Read more -
Mixmax hosts NodeSchool
Mixmax was proud to host NodeSchool again at our office for the 6th time! NodeSchool SF is a monthly meetup dedicated to helping people learn JavaScript.
Brad Vogel · Apr 2, 2019
Read more -
5 Best Practices for Building Progressive UX Design
We all only have so much time in this world. With that in mind, here are 5 best practices for building snappy, respectful web applications.
Logan Davis · Feb 13, 2019
Read more -
Writing Regression Tests Is (Not) hard
Testing contributes to reliable, maintainable code and makes our lives as developers easier in the long run. Here are some strategies for unit testing in existing codebases.
Garret Meier · Nov 5, 2018
Read more -
Create a Mixmax Slash Command using Webtask.io
In this post, we will show you a quick and simple way to use Webtask.io to provide the interactive backend that powers a Mixmax slash command.
Ryan Freebern · Sep 25, 2018
Read more -
Who Doesn't Love Videos? Integrate Vidyard in Gmail
Video in email can 5x your email conversion rate. That’s why we’re excited to announce our new Vidyard integration! See the demo
Gaston Sanchez · Sep 4, 2018
Read more -
Mixmax hosts August SFNode Meetup
Engage leads, customers and candidates with professional interactive emails featuring email tracking, a meeting scheduler, polls, and surveys right in their inbox
Brad Vogel · Aug 6, 2018
Read more -
How to Troubleshooting `npm link`
npm provides a command called link, which symlinks one package into the node_modules directory of another. We looked into how to troubleshoot npm link.
Jeff Wear · Jul 23, 2018
Read more -
The Effective Engineering Demo
Want to have product impact on your team and keep everyone in the loop? Here are a few of my learnings from my first year at Mixmax on how to give an effective engineering demo!
Logan Davis · Jun 18, 2018
Read more -
To Yarn and Back (to npm) Again
Yarn solved the annoying problems we faced using npm, but it came with issues of its own. Here are the problems of Yarn and solutions that we landed on.
Spencer Brown · May 29, 2018
Read more -
Choosing (and using) Javascript Static Typing
Static typing improves developer confidence and mitigates type errors. In this post, we discuss how to choose between Flow and TypeScript for Javascript static typing.
Garret Meier · May 15, 2018
Read more -
Simply Scalable Pritunl VPN Deployments
Deploying VPNs that effortlessly scale and self-heal is painful. Here's how we do it in a cost-effective and simply manner.
Trey Tacon · Mar 27, 2018
Read more -
How Non-Engineers Test New Features at Mixmax
Mixmax is essential to our customers’ workflows. Because of this, when we deploy new features to production, we want to avoid introducing any regressions that might disrupt our customers’ work.
Simon Xiong · Jan 25, 2018
Read more -
How to correctly specify default options in ES6
Default parameters are an awesome ES6 feature. However, the ability to specify objects as default values is a challenge. Here is how to correctly specify default options in ES6
Jeff Wear · Jan 24, 2018
Read more -
How to work remotely
Surveys suggest that as many as 3 in 10 workers in the United States work remotely at least some of the time. In fact, [the New York Times](https://www.nytimes.com/2014/03/08/your-money/when-working-in-your-pajamas-is-more-productive.html) suggests that remote work is gaining prevalence faster than any other workplace benefit. Here are some tips from my experience living and working from Japan.
William Wettersten · Dec 12, 2017
Read more -
Elasticsearch vs Redshift for Real-Time Ad-Hoc Analytics Queries
We decided upon Elasticsearch after benchmarking a few candidate solutions, including AWS Redshift. I’ll explain the benchmarking process and results.
Chuy Martinez · Dec 11, 2017
Read more -
Improving Mongo Performance by Managing Indexes
Indexes are data structures that allow databases to quickly find documents in a collection. We look into how you define efficient indexes in MongoDB.
Chuy Martinez · Dec 10, 2017
Read more -
Introducing search-string: an advanced search string parser
search-string is a new open source minimalist npm package for parsing and managing GMail style advanced search strings.
Marcus Ericsson · Dec 9, 2017
Read more -
Beating Spam Detection Bots
Spam detection bots click every link in the email to check that the links are safe. Here is how we prevented bots from clicking meeting links in your Mixmax emails.
Simon Xiong · Dec 8, 2017
Read more -
Precisely Observing Structural Page Changes
Our performance analysis showed significant processing time being spent in the code that observed the page for changes. This code was thus a candidate for optimization.
Eli Skeggs · Dec 7, 2017
Read more -
Database-backed Job Processing
In this post, we discuss how to process high-volume in jobs in manageable batches with existing infrastructure.
Garret Meier · Dec 6, 2017
Read more -
Recruiting Engineers Using Online Challenges
We used an online coding challenge to save time and find the best candidates to recruit. Here is how we did it.
Spencer Brown · Dec 5, 2017
Read more -
Terraforming All the Things
At Mixmax, we're not using Terraform for everything yet, but we're enjoying the process of seeing how it's making everyone's lives easier. Here is how we use Terraform.
Trey Tacon · Dec 4, 2017
Read more -
Handling 3rd-party JavaScript with Rollup
Rollup is lighter, faster, and less complicated. Learn how to handle 3rd-party JavaScript with Rollup and how to use Rollup with external dependencies.
Jeff Wear · Dec 3, 2017
Read more -
Introducing the Sequence Picker SDK
A new widget, Sequence Picker enables you to embed an “Add to Mixmax Sequence” button in your website to allow your users to add email contacts to one of their Mixmax Sequences.
Brad Vogel · Dec 2, 2017
Read more -
Mixmax Advent 2017
We at Mixmax are excited to introduce our 2nd annual Engineering Blog Advent Calendar. For the next 12 days, we’ll be sharing one engineering post per day.
Logan Davis · Dec 1, 2017
Read more -
SFNode Meetup: hosted at Mixmax
Here is what I presented at the SFNode meetup which we hosted here at Mixmax. My presentation was on Promise patterns in Node 6 and beyond.
Garret Meier · Nov 8, 2017
Read more -
SF ReactJS Meetup: Hosted at Mixmax
I recently had the pleasure of presenting at the SF ReactJS meetup which was hosted here at Mixmax. I presented on a blog post that I previously wrote on moving from Backbone to React.
Spencer Brown · Oct 10, 2017
Read more -
API Paging Built The Right Way
In this post we discuss various implementation approaches to paging and how we ultimately implemented our own approach to serve data stored in MongoDB.
Chuy Martinez · Sep 13, 2017
Read more -
Announcing Bee-Queue v1.0
We released Bee-Queue v1.0 this week and have switched over to using it entirely instead of Bull. Here is why we decided to switch over to Bee-Queue.
Eli Skeggs · Aug 14, 2017
Read more -
Shortcomings in Backbone, React without Redux
As we built more new features, we noticed some shortcomings in Backbone. We initially identified three classes of solutions and here is how each worked.
Spencer Brown · Jul 26, 2017
Read more -
Using Arena with AWS ElastiCache hosted Redis
In this post, we share a piece of configuration magic that we use to automatically configure Arena without having to touch any configuration files or environment variables.
Randall Ma · Jun 22, 2017
Read more -
Arena: an open-source UI for Bull/Bee queues
To replace an assortment of hard-to-use scripts to retrieve data from Redis, we open-sourced Arena. Arena solves many operational problems we encountered running Bull.
Randall Ma · Jun 16, 2017
Read more -
Using CORS policies to implement CSRF protection
Cross-Site Request Forgery (CSRF) allows an attacker to make unauthorized requests on behalf of a user. We tackle CSRFs while allowing a subset of Cross-Origin requests.
Eli Skeggs · Jun 13, 2017
Read more -
Running Client Tests Headlessly with Jasmine & PhantomJS using Erik
We recently released Erik, an open-source Node package for running jasmine tests headlessly with PhantomJS and gulp. Find the background and the requirements of the project.
Spencer Brown · May 25, 2017
Read more -
Yarn-ifying Mixmax
We finished transitioning all of our services and shared modules to Yarn. Here’s how we decided to make the move, how we did it, and what we learned along the way.
Spencer Brown · Apr 24, 2017
Read more -
Writing an effective bug report
Engage leads, customers and candidates with professional interactive emails featuring email tracking, a meeting scheduler, polls, and surveys right in their inbox
Chuy Martinez · Apr 20, 2017
Read more -
Monitoring Slow Mongo Queries
We wrote and open-sourced mongo-slow-queries to monitor and catch which queries had been running for a long time.
Trey Tacon · Feb 21, 2017
Read more -
Batch AWS CloudWatch Metrics and Save
AWS CloudWatch allows us to seamlessly integrate metrics into our alerting system. We saw a noticeable decrease in our AWS bill by batching CloudWatch metrics.
Trey Tacon · Jan 3, 2017
Read more -
How to Write an Engineering Blog Post
Here are the strategies we came up with, so that everyone could use to write an engineering blog post. You too can write an engineering blog post.
Jeff Wear · Dec 12, 2016
Read more -
Integration Testing for Humans
integration-testing-for-humans (ITFH) is an open-source CI service that reminds developers to test their staging environment before deploying to production.
Jeff Wear · Dec 11, 2016
Read more -
Fun With the API, Creating a Holiday Guestbook
In the spirit of the season, we share the 5 steps for creating a holiday guestbook which will add people to a Mixmax contact list. We will use Typeform to create a web form, Zapier to connect the form to our API, and the Mixmax API to add the contacts to our contact list.
Trey Tacon · Dec 10, 2016
Read more -
Determining Why That Server is on Fire
Have you ever watched the CPU usage of your Node.js process spike on your servers? Did it feel like you were helpless to wonder at the reason why?
Mixmax · Dec 9, 2016
Read more -
Adventures in the Gmail PubSub API
A few months back, we started using the Gmail Pub/Sub API. We like to share a couple of issues that we encountered but haven’t seen documented anywhere yet.
Cameron Price-Austin · Dec 8, 2016
Read more -
Rewriting 30,000 Lines of Code in a Friendly Way
We'll review how we revamped the Mail Merge into what now is Sequence, knocked up over 30,000 lines of code and ensured the path for the future of Sequences.
Chuy Martinez · Dec 7, 2016
Read more -
30x Faster Elasticsearch Queries
We achieved a 30x performance improvement in Elasticsearch queries by switching from millisecond timestamps to seconds. Here's how.
Mixmax · Dec 6, 2016
Read more -
Securely Signing Requests with Rewt
To secure our server-to-server APIs, we wrote rewt - a simplified wrapper for signing JWTs with a shared secret sourced from Redis, that automatically rotates the secret on a predefined interval.
Trey Tacon · Dec 5, 2016
Read more -
What is CORS? How Does Cross-Origin Resource Sharing Work?
Why CORS or Cross-Origin Resource Sharing is needed; why can't I just make arbitrary API requests from random places on the internet? One good reason is cookies.
Jeff Wear · Dec 4, 2016
Read more -
Node 6 LTS is Finally Here, Here are Some New Features
The long-awaited stable LTS version of Node 6.x was released last October. We will now explore some of these features and how it compares to “old” code.
Chuy Martinez · Dec 3, 2016
Read more -
Upgrading to Node 6 on Elastic Beanstalk
To upgrade AWS Elastic Beanstalk to Node 6, we had to explore Elastic Beanstalk’s inner workings. But we made the fix as simple as installing a Node package—and sped up `npm install` by 95% in the process. Here's how we did it.
Jeff Wear · Dec 2, 2016
Read more -
Mixmax Advent 2016
Over the next 12 days we’ll be sharing one engineering post per day. The posts are about our stack and interesting solutions to engineering problems we've encountered.
Brad Vogel · Dec 1, 2016
Read more -
An Open Source Culture
At Mixmax, we believe writing good, open-sourceable code, and keeping our dev efforts focused on delivered value for our customers are complementary, not contradictory goals.
Brad Vogel · Dec 1, 2016
Read more -
Native Support for Websockets on AWS
In this post, we describe approaches to supporting websockets on AWS pre-ALB, and their limitations, how to easily deploy Meteor to Elastic Beanstalk and more.
Jeff Wear · Oct 17, 2016
Read more -
Redfour: Binary Semaphores in Redis and Node
We just released a small module called Redfour that could be very helpful to you if you’re using Node in a distributed system. It implements a binary semaphore using Redis.
Chuy Martinez · Sep 14, 2016
Read more -
Requiring Node Built-ins with Webpack
Webpack's automatic shimming of Node built-ins can add hundreds of kilobytes of unused code to your bundle. We looked into this issue and the solutions.
Jeff Wear · Aug 16, 2016
Read more -
Taming the Imports
Performance is critical to every web application, and something we care deeply about at Mixmax. In this post, we share the tools that we use for the imports.
Eli Skeggs · Jul 28, 2016
Read more -
Generating Certificates for Local Development
In this post, we like to give you some insight into setting up your own secure proxy for development.
Eli Skeggs · Jul 1, 2016
Read more -
Watch Jeff Present the Electron app at Meteor Night
Check out Mixmax engineer Jeff Wear and Meteor open-source contributor Mike Risse presenting our new Mixmax app at Meteor Devshop in San Francisco on January 21, 2016
Brad Vogel · Jan 25, 2016
Read more -
Turn-key Electron apps with Meteor
In this post, we share how Mixmax built its desktop version of the app using Electron - a framework that helps you build cross-platform desktop apps with JavaScript, HTML, and CSS
Jeff Wear · Jan 11, 2016
Read more -
Building Your First Enhancement using the SDK
In this post, we're going to make a Mixmax Enhancement that makes it really easy to search for and embed an animated GIF in your email.
Jeff Wear · Nov 30, 2015
Read more -
Building Your First Link Resolver
In Mixmax when you paste the Giphy URL into your email, it'll be automatically replaced with the actual GIF. Here is how we integrated Giphy to Mixmax.
Andrew Tamura · Nov 23, 2015
Read more -
Building Your First Slash Command
In this post, we will walk you through step-by-step how to build a new /giphycats command using the Mixmax SDK
Chanpory Rith · Nov 17, 2015
Read more -
How We Built 'instant' Autocomplete for Mixmax
We’ve recently put a lot of work into improving the performance of the contacts autocomplete field in the compose window. Here is how we built 'instant' autocomplete.
Brad Vogel · Nov 5, 2015
Read more -
Introducing the Mixmax SDK
Engage leads, customers and candidates with professional interactive emails featuring email tracking, a meeting scheduler, polls, and surveys right in their inbox
Brad Vogel · Nov 2, 2015
Read more -
Migrating Production to AWS Elastic Beanstalk without Downtime
Mixmax is a real-time communications product with users all over the world. Here is how we migrated production services to AWS Elastic Beanstalk without downtime.
Andrew Tamura · Oct 23, 2015
Read more -
HTTP cache-control Header & the Chrome Back Button
Use the no-store cache directive instead of the cache-control header to tell the browser to not store anything. The Chrome back button will never serve up cached content.
Brad Vogel · Oct 4, 2015
Read more -
Node fibers: Patterns and anti-patterns using synchronize.js
Fibers let you write asynchronous code as if it were synchronous. This guide helps you understand how Node fibers can be used for structuring an application
Jeff Wear · Aug 22, 2015
Read more -
Leveraging AWS API Gateway & Lambda to Build a Slack Bot
API Gateway is an AWS service that allows you to build REST HTTP APIs that dispatch requests to other services like Lambda. Here is how we leveraged it to build a Slack bot.
Andrew Tamura · Jul 14, 2015
Read more -
Unicode Woes in Javascript
At Mixmax, we run into just about every unicode issue. This post describes a key learning about iterating strings in Javascript and why it's so often done wrong.
Andrew Tamura · Jun 9, 2015
Read more -
Bringing Meteor's Reactive Collections to Backbone
We found ourselves missing Meteor’s reactive front-end after migrating our app from Meteor to Backbone. Today, we will share the progress toward re-implementing the reactivity in Backbone.
Jeff Wear · May 27, 2015
Read more -
Scaling Mixmax: Front-end Performance
In this post, I’ll describe some of the front-end performance bottlenecks we experienced while using the Meteor framework and why we had to move one part of our app off it.
Mixmax · May 5, 2015
Read more -
Building the Giphy app using the Mixmax SDK
Engage leads, customers and candidates with professional interactive emails featuring email tracking, a meeting scheduler, polls, and surveys right in their inbox
Chanpory Rith · Apr 13, 2015
Read more -
Scaling Mixmax: From Monolithic to Microservices
In this post, we’ll tell you about what happened when Mixmax went out-of-control viral and how we quickly diagnosed and fixed a key bottleneck.
Brad Vogel · Mar 30, 2015
Read more -
Don’t Wait for Your PaaS’ Status Page to Tell You Why You’re Down
Status pages are great, but you need to define what makes your application available. A third-party can’t ultimately say why your application is down.
Jeff Wear · Mar 23, 2015
Read more -
Gmail Just Broke Every Chrome Extension. Here's How We Fixed Ours
Yesterday Gmail introduced a Content Security Policy that broke Mixmax and other Chrome extensions. Here’s how we diagnosed and solved the problem within an hour.
Mixmax · Dec 17, 2014
Read more -
Watch Brad and Olof demo Mixmax at Meteor Devshop
Check out Olof and I presenting Mixmax at Meteor Devshop in San Francisco on December 4, 2014.
Brad Vogel · Dec 11, 2014
Read more
Want to build this stuff?
Remote-first team across 20 countries. No offices, no politics, real impact.
See open roles