ProfitWell provides industry standard BI solutions that improve your retention and monetization automatically through unmatched subscription intelligence.
We connected with Michael Cox, Director of Engineering at Profitwell, to get an inside look at the company's engineering team. Cox also went into lots of details about the company’s technology, the various projects, the team's culture and more.
Interested in joining Profitwell’s engineering team? Take a look at all of the company’s openings in the sidebar and on their BIZZpage!
Quick Hit Details
Year Founded: 2012
Number of employees: 78
Number of engineers: 15
Industry: SaaS Subsciption Economy
Can you share a summary on what Profitwell does?
ProfitWell provides free subscription metrics to help you identify opportunities and then tools to help you reduce churn, optimize pricing, and grow your subscription business end-to-end.
What are some of the different technologies that the engineering team gets to work with and at what scale?
On the backend, we’re processing and aggregating billions of rows of constantly updating subscription data for which we use Python with our API built in Django. On the front end, we need to present that data to our customers in an intuitive, uncluttered interface. We use TypeScript and React.js (React Native for the mobile app) there.
To deal with the terabytes of data we have, we use MySQL as a primary data store, but also have significant datasets in Redshift and ElasticSearch. Our backend pipeline is orchestrated through RabbitMQ, and most data our customers see is cached in Redis.
On the operations side, we’re hosted completely at AWS, leveraging a scalable Kubernetes cluster with dozens of EC2 servers and hundreds of pods running at any given moment.
What are some of the interesting projects that the engineering team is tackling?
I think there’s something for every engineer here, from building performant algorithms and juggling CPU usage in the cloud, to designing graphs and other visuals in React that are simple to use but provide a lot of valuable information.
From the engineering side, we’re growing quickly, and the amount of data we have at our disposal is ever increasing. This presents interesting challenges both from the “how do we deal with this scale?” perspective to “what insights can we derive from this data?” and “how can we make this complex thing simple to understand?”
On the product side, we’re constantly running experiments on how we can improve outcomes for our customers and drive value for them. With the engineering team at the heart of these efforts, there’s always a chance to talk to customers and help mold the future of our products.
Can you walk us through a specific project or feature and how you approached it?
Right now we’re launching a tool that allows companies to compare their growth and performance with the thousands of other subscription companies we have data for. For example, our customers will be able to see whether other companies at their stage (e.g. companies 2-5 years old in the B2B space) are growing on average faster or slower than they are. We’ll also be opening up the full dataset so everyone can see patterns and trends in their industry.
To build this, we had to start by developing the feature set within the engineering team, since it required diving into our data in an ad hoc way. We had to see for ourselves what’s possible by finding the best insights we could in the available data. We also had to consider how to obscure the results in a way that wouldn't reveal too much about any single company’s metrics, and how to handle companies that wanted to opt-out of this research. From there, two members of our engineering team created a basic server-rendered page, so the larger product team could play with various queries and see how well some basic graphs were being generated.
Once we felt good that we had the rough scaffold of a feature people would love, we brought the frontend into our main TypeScript/MobX app, and worked with a designer and product manager to create a great user experience around it.
What is the culture like at Profitwell for the engineering team?
First, we care a lot about building great products, but also about writing great software. We have high standards for our code, and everything to push goes through a rigorous code review. We’re ok if it takes a little longer to get things right because we believe it leads to better products, better software, and happier engineers in the long term. There’s obviously a tradeoff between speed and quality, and while we’re always trying to find the sweet spot, we tend to err on the side of shipping well designed software.
Related to this, engineers are expected to give input on the product. It’s not “here’s a spec, go build exactly what it says.” We think building great products is a “contact sport,” meaning there's typically a lot of (respectful!) debate and refinement over the things we build before they reach their final form. This means pointing out the UI inconsistencies and UX awkwardness when starting to build out the frontend or coming up with novel ways to leverage the immense dataset we have on the backend to drive better outcomes for our customers.
We also do a lot of team activities here. Whether it’s trivia or game nights, or lunch with the team, or our bi-weekly lunch & learn where we rotate presenting to the rest of the engineering team on technical topics that are interesting to us. There’s always something going on.
What can a potential employee expect during the interview process?
We’ve tried a few different approaches, but believe our current process gives us the best insight into whether a potential employee is a good fit. Remember, we’re not just evaluating whether you would do a good job here – we’re giving you a chance to learn about what it’s like to work with us, too. It has to be a mutual fit.
First, we’ll chat on the phone just to get to know you a little better, ask about your experiences elsewhere, hobbies outside of work, etc. It’s a pretty informal conversation.
The second step is to have you present something interesting you’ve worked on, or if that’s not an option, do a take-home project. But we always push for the presentation as it’s a good opportunity to hear you talk about code you are passionate about and know well. We’re not expecting you to pretend the entire project was executed perfectly. In fact, we prefer to know which challenges you faced or mistakes you may have made, and how you handled them. That’s a much better indicator of where your skills and head are at.
Finally, we like to have you come in for a half-day to a day to get lunch with us and then work on a small project here. The point isn’t to see if you complete the project or write perfect code, it’s to see how you approach it, and you’re encouraged to ask questions. Remember – you’re here to evaluate whether you like working with us just as much as we are evaluating you.
After that, we usually move forward quickly with an offer. We’re in full on growth mode at the moment, so getting the right people in and contributing as fast as possible is a big priority.
Are you involved in any local tech organizations or Meetups?
We definitely like to go to the local Meetups when we can. It’s always a good opportunity to see how other people are tackling similar problems and to see new technologies. The ReactJSBoston one has been a hit with our front-end and back-end coders alike.
Rapid Fire Q&A
What’s on tap?
Cold brew, although we keep some of our top Boston craft brews on hand too.
Star Wars or Star Trek?
I took a vote, and surprised to see we’re 50/50. Lots of Picard “face palm” emoji’s in our Slack channel though.
iPhone or Android?
Almost 50/50. It’s almost as divisive for us as PyCharm vs Visual Studio Code
Coffee - hot or iced?
Iced, even in the winter. We have delicious cold brew and iced coffee on tap.
Favorite employee perk?
Taking advantage of our flexible hours policy to leave and get some exercise.
What TV show describes the engineering team’s culture?
The crew in Office Space, but at a much better company and with webpack errors to yell at instead of “PC Load Letter.”
What music is playing in your office?
We celebrate 5 p.m. every Friday with Rebecca Black. On the dot, without fail. It’s fun fun fun fun.
View from your office
At ProfitWell, I get to work on designing and implementing the solutions to interesting technical challenges every day. But it is the people that really make this company special. It is the most amazing, dedicated, and talented team with whom I've ever had the privilege of working.
I’ve been at ProfitWell for 6 years, and I’m more excited by our potential today than at any time in the past. The company continues to grow, but the one constant has been an ever increasing set of challenging (and rewarding!) problems to solve. This keeps the work engrossing and creates endless opportunities to punch above your weight. If this sounds like your cup of tea, come join us.
Images courtesy of Profitwell