There are no monoliths here. Each application in our platform has a clear and distinct purpose and all of them are built in house. That means small, clean code bases with little technical debt and lots of flexibility. We use RabbitMQ to send messages about real-world events to other apps which decide whether or not to do something with them. This de-coupled, asynchronous architecture allows us to scale with ease and add or change components as needed. When it really makes sense we will build a RESTful API to wrap a service requiring an immediate response.
We hire engineers with great Product instincts because we are also the Product team: building great software is a collaborative effort so we work directly with stakeholders in the business. We are a central part of the business so we deliver real value and not just features, and because we understand how Stitch Fix works we are trusted to focus our time and effort where they are most needed.
Starting a conversation with a due date dooms it to fail from the beginning. Deadlines don't get things done faster but they do encourage stress, bad decisions, and technical debt. We still deliver a lot in a short period of time, but we don't burn ourselves out in the process.
We use technologies like PostgreSQL, Redis, ElasticSearch and RabbitMQ along with various private Gems to tie them all together. We work from San Francisco, Pittsburgh and remotely, and we use Heroku, GitHub, Google Hangouts and HipChat to help us build it all.
We are looking for people who share our values. We like to move quickly and ship lots of code, but in a considered way. We use TDD, CI and an all-hands-on-deck approach to Pull Requests to ensure we can keep the pace up without stinging on quality.
If any of us have a good idea for introducing a new technology or pattern then we go ahead and run an experiment. The debates don’t start until we have some real evidence to look at and since we avoid dogma and evangelism they tend to be short.
We work closely with our internal partners and we assume that they know best about what they need to do their jobs. Our job is to solve business problems and some of our proudest moments come from solving those problems without a line of code.