What's it like to be a developer at Honey?

Ever wonder what’s under the hood at Honey? Wonder no more. In the following post, one of our senior engineers, Adam Walsh, gives a behind-the-scenes look into a developer's life at Honey.


What are the most common tools that developers use at Honey?

We use Github, Slack, Google Cloud Platform, NPM, and Jira. Engineers are free to use any IDE or editor that they desire. We leverage a variety of the Google managed services including their pub/sub, multiple global-scale databases, and StackDriver monitoring. The full list includes much more.

Which languages do developers code in?

We use a variety of languages for different technical areas, however, our most common are Javascript and Python. Javascript is the most commonly used language inside Honey as we do almost all of our front-end and back-end application coding using it. On the front-end, we primarily leverage React, JSS, and Redux. On the back-end, we generally use a light Express-based approach. Our automated testing code & data pipelines are mainly written in Python, although we have a few services written using Scala.

What is the development process like? (the lifecycle of a piece of committed code)

Once a work unit is completed by a developer, they open a pull request, provide the necessary contextual information and assign it to the relevant senior developer(s) or lead(s) for review. After the code has been reviewed, updated and agreed upon by the author and a non-contributing reviewer, it is ready to be merged by a lead. If the pull request impacts the visual or UX of a product, a designer is asked to perform a design review before merging.

What is code review like at Honey?

Code review is done by all team members, with final approval coming from the lead engineer who owns the respective product being targeted by the change. We use Github’s pull request diff feature to discuss the proposed code changes. Larger changes, which would require too much context to properly review, are accompanied by a meeting where the authoring developer(s) explain the high level changes and answer questions about the pull request to reviewers.

How is testing done, and what kind of tests are run?

Depending on the scale and scope of the change, it may be deployed to a staging environment first for testing away from production users. QA engineers will potentially be asked to assist in testing at this stage. However, because the QA team is still scaling up, not all changes are subject to this level of scrutiny. Product manager validation works similarly with smaller changes being validated later in the deployment process and larger changes getting more pre-production deployment cycles and validation. We are also constantly working on expanding our automated QA coverage.

How is code deployed?

Once the lead and authoring developers are confident in the changes quality, it is deployed to production and once again validated. The product manager is then notified that the ticket has been completed.

What is an average day-in-the-life of someone on one of the development teams?

Our engineering organization is broken down into feature teams with a few specialty teams to help assist in scaling needed domain knowledge. Each feature team owns a specific product or domain of the Honey ecosystem. The specialty teams include Data, Dev-ops, and Security, to name a few. These teams lay the groundwork for their respective space to allow all developers to be able to accomplish tasks which cross over these regions. This setup allows developers to move easily throughout all of our code and keeps knowledge of all aspects of our software flowing throughout the organization.

What makes Honey a special place to be a developer?

We hold growth very highly here at Honey. Within software engineering, this skill is particularly important given the speed of the industry. At Honey, we're not only scaling products and building brand new ones, we are also holding ourselves to a very high level of quality. We strongly believe in providing any employee completing a task the full context of why that task is important and how completing it will help the company get closer to accomplishing our current goals. Although providing this information can slow down development speed slightly in the short term, the long term ability for developers to know and question how we operate as a company has proven to be invaluable for iterating on the company’s processes. If you’re looking for challenges to grow into as a software engineer, Honey is just the place.

We're hiring! Interested in joining the Honey team? Visit our Careers page to discover new opportunities and openings in our Downtown Los Angeles and Santa Barbara offices.

Facebook Facebook yahoo