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. We use a combination of shared gems and RESTful services to share synchronous business logic between our systems.
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 deliver products & solutions—not features—because we understand how Stitch Fix works and are trusted to focus our time and effort where they are needed most.
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 and RESTful services to tie them all together. We work from San Francisco, Pittsburgh and remotely, and we use Heroku, GitHub, Google Hangouts, Blue Jeans, Screen Hero, 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 detailed and focused code reviews to ensure we can keep the pace up without sacrificing quality.
Introducing new tools and technology is a part of our culture, and we debate such additions by looking at running code that solves a real business problem. This avoids dogma and focuses us directly on what we want to accomplish and how a new tool could do that.
We work closely with the people running the business, under the assumption 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.