One Source of Truth for Our Frontend
CIOReview
CIOREVIEW >> HubSpot >>

One Source of Truth for Our Frontend

Matthew Hensrud, Senior Director, Platform Engineering and Vadim Komisarchik, Senior Director, Interface Engineering
Matthew Hensrud, Senior Director, Platform Engineering

Matthew Hensrud, Senior Director, Platform Engineering

We all have the same problems; what sets us apart is how we solve them. At Freshly, a problem we chose to solve last year was how to ship complex user-facing features across three platforms simultaneously, free of defects.

Historically, the answer was "with difficulty."  We would make extensive use of feature flags, deploy platforms "as they were ready," and then coordinate a launch.  Sometimes, iOS might be ready a month before the web, or vice versa. Obviously this can lead to a host of issues. What if UAT reveals an issue in a lagging platform that requires a fix across them all? What if marketing suddenly requests an analytics improvement, or a change to how an experiment is run? Maintaining a responsive engineering organization while coordinating a web application, a native Android app and a native iOS app is a consistent challenge.

There are many solutions to this problem, each with different advantages and drawbacks. One of the most popular is to use a so-called multi-platform framework. We all know the drawbacks of this choice ” apps feel clunky, you may not be able to hook into a platforms native strengths, and speed is often slow. This may be a good choice for your organization if budgets are tight, but we would not recommend it for a long-term approach. At Freshly, we were lucky enough to have full engineering teams for each platform, so building natively was an easy decision.

We decided to investigate what the best of both worlds would look like. What if there were a framework that allows a platform to use all of its native interfaces, but was built programmatically, from the same centralized configuration? What if our servers could present the basic definition of a page,from copy, to buttons, to form elements, and then the native application could apply its own interface to that description?

  ​Engineering teams, when allowed to think creatively, can solve nearly any problem, even ones the industry tells us are intractable 

 

Unfortunately, nothing like this existed, so we asked our engineering team to invent it.Vadim Komisarchik, Senior Director, Interface Engineering

After a year of work, we launched CoreUI, which at its heart is a combination of GraphQL, and a custom UI description syntax (component library). Want to update some copy? Deploy a single commit to a translation file, and all three platforms will see the update on supported pages. Want to change the data in an analytics event? One more deploy. Fully redesign a page from the ground up? Perhaps some QA time is warranted here, but a single deploy to our central repository can contain all of the code necessary. This has effectively doubled the productivity in our mobile teams ” allowing our engineers to focus on performance, squashing rare bugs and entirely new features, instead of the basic structure of new experiences and the block and tackle of new events.

The lesson here is that engineering teams, when allowed to think creatively, can solve nearly any problem, even ones the industry tells us are intractable. At Freshly, we are proud to have sold millions of meals on our software – 90 percent  of which was built in-house. We formed our engineering team on the premise of daring to tackle complex problems, and are determined to push that ethos forward. We hope your engineering teams do the same.

Read Also

For Richer Insights

Heidi Mastellone, Director, Customer Experience, Selective Insurance

Delivering Unique Customer Experience via Technology

Brian Powers, Customer Experience Officer, Likewize

A Modern Policy Admin Platform with Cost and Customer Experience in Mind

Chris Eberly, VP, Life IT, Lincoln Financial Group

Laying the Foundation of a Satisfying Commuter Experience

Yvette Mihelic, Director Customer Experience, John Holland Rail and Transport

The Ever-Evolving Landscape Of Customer Experience Management

Gonzalo Carpintero Navarro, Senior Vice President Operations & Head of Business Transformation Office (BTO), Radisson Hotel Group