Crunch began in 2012 as a small group working at a global survey research company. We were survey experts, data scientists, and engineers who understood the needs of research companies and their clients. Clients demanded modern dashboards and interactive data products; we crafted tools and project-specific workflows to meet their needs. Our experiences and challenges led us to decide to build a platform to solve our need to produce data products at scale.
Existing software for working with data — collecting, cleaning, analyzing, and delivering it — in this context were technically difficult to use and impossible to integrate. Data scientists and client-facing analysts could not use the same programs to accomplish their work, so the norm was lots of exporting of files from one program to another, emailing those files around with increasingly long filenames, and copying and pasting, all of which were error-prone and tedious to reproduce. So we built a platform where you could store all of your data, where both data scientists and business analysts could work with the same data, and, when data was changed or new rows added, your saved analyses and presentations would automatically update. No more copy and paste, and no more files with names like clientX-jun23-final-FINAL2-jbf_edits.sav.
Our team has grown quite a bit from those beginnings. While our origins are in the San Francisco Bay Area, our team is completely remote. Most of us are in the Americas, but we range from Australia to Poland. So we don’t just allow remote working: we embrace it. All communication happens online, whether in Slack, in Google Hangouts, or on pull requests on GitHub — there’s no central office where important conversations are happening without you.
Of course, we also appreciate the kinds of connections and interactions that can only happen face to face, so we schedule team meetups a few times a year. We rent a big house or two, and when we’re not planning out roadmaps, discussing how we can improve our processes, or sprinting together on a new feature, we cook meals together, go out and explore the city (or countryside), and share laughs with the humans behind the chat avatars.
We are a small team, which means that everyone wears multiple hats, and you get the satisfaction of knowing that your work has instant, direct effects on our users. But despite being a small team, Crunch is not the typical startup experience. We are adults with lives, families, and wide-ranging interests outside of work. We value hard work and expect serious contribution from our teammates, but we also recognize that building a sustainable, lovable product is more of a marathon than a sprint, and we actively discourage unhealthy work habits.
We value automation so that we can offload tedious, repetitive tasks to computers and focus our energies on problems needing creative solutions. We value testing so that we never have to fix the same bug twice, and so that we are free to refactor and improve our code without fear of unintended consequences. When we make changes, we leave the codebase cleaner than we found it.
We come from diverse backgrounds. And when we hire people, we value experience and education of all kinds.
To provide continuous improvement for our customers, we work hard to make our development platform work as smoothly as possible. One of our goals is for new developers to be able to ship a small amount of code on day one. You can expect to meet with your peers for a short standup daily. From there you might be helping make design decisions, reviewing some code, writing code to create a new feature or expand on the one you wrote last week. Since we are all remote, the majority of up-to-the-minute communication happens in topic-specific chat rooms, but we often will meet face-to-face in a Hangout to discuss a topic or demonstrate a new feature with screen sharing. We also meet physically at regular intervals for short stints to work together in person.
Since our development process is continuous, there are no hold-ups when your work is ready to go. Not only does this make the process of bringing new features into the fold less onerous, it also means fixing problems you or others find more satisfying. Continuous development also means that your days can vary as much as you want them to. Crave consistency? Code in the morning and ship in the afternoon every day. Sometimes need downtime in the afternoon? Maybe that’s a good time to schedule some offline code review. By creating an atmosphere where talented people can thrive in ways that work for them, we reach our goals more quickly than we would with a more rigid system.