At Apartment Therapy Media we publish two lifestyle sites Apartment Therapy and The Kitchn. Our mission is to help people make their homes more beautiful, organized and healthy by connecting them to a wealth of resources, ideas and community online.
Our engineering & design teams currently consist of 6 (incredibly talented, friendly & collaborative) engineers (4 senior, 2 junior), 2 web designers, and 1 product manager. We're currently hiring a second product manager and fifth senior developer.
Our team (and much of the company) works remotely. Slack has quickly become our critical communication channel. We make heavy use of Slack integrations including our own bot to manage code deployment & staging environments.
We've reached a critical growth phase as a team. We have just split our single team into separate self-sufficient squads with independent missions, heavily inspired by the Spotify model. Our current open positions will fill out these squads and our hiring plan into 2016 includes creating 1-2 more squads.
Each squad has its own mission, related initiative pipeline (for future planning purposes) and issue tracker (currently Trello boards) for tracking and managing ongoing work. We currently work in two week sprints.
We're currently experimenting with models to more deeply integrate product and design work into our workflow and plan to run a pilot design sprint in the near future.
We use git and GitHub for our projects. We use GitHub's pull requests for code review. We're currently tracking stories in Trello.
We practice continuous integration. We run our automated tests through our build system (CircleCI) and have invested heavily in tools to make deploying new code ordinary and routine. We deploy code every day.
We currently use New Relic's suite of tools for application monitoring. We catch exceptions with Airbrake, and monitor front-end performance with SpeedCurve.
We deploy to Heroku, finding the cost-to-performance ratio worth the tradeoffs.
Our two primary applications (a custom CMS and custom Community stack) are built with Ruby on Rails (4.1) making heavy use of varnish (via Fastly), postgres, redis, unicorn and elasticsearch. We also run a custom image service on Sinatra.
Our application architecture is evolving into a back-end that primarily serves as an API for rich client-side code built with React.js and the Flux architecture.
We recently extracted and published a couple of gems we use in our color-based image search, which gives a little peek behind these scenes of some of the back-end code we write:
- multicolor: an opinionated library for TinEye's fabulous MulticolorEngine
- color-rgb: a set of utilities to help with dealing with RGB colors
-
Do you use source control? Yes. git & GitHub.
-
Can you make a build in one step? Yes. This is automated with CircleCI. Deploys to staging & production environments are also a single command.
-
Do you make daily builds? Yes, this is continuous and automated.
-
Do you have a bug database? Yes, we track bugs in Trello.
-
Do you fix bugs before writing new code? Yes, in most cases.
-
Do you have an up-to-date schedule? Sort of. We engage in an agile (small a) process to track & estimate current & near term work & priorities.
-
Do you have a spec? Usually and we're getting better at better intitiative and story definition.
-
Do programmers have quiet working conditions? Yes. We all work from home.
-
Do you use the best tools money can buy? Yes.
-
Do you have testers? No.
-
Do new candidates write code during their interview? Yes.
-
Do you do hallway usability testing? Yes, though our "hallways" are on Slack.