How we engineered the new smartbnb | Smartbnb

How we engineered the new smartbnb July 10, 2019

Saying that engineering the new smartbnb was intimidating would be an understatement. The original smartbnb is loved by hosts all over the world, so threatening that stability is always a risk.

But, to improve the experience for our customers - as well as to ensure our ability to build the next generation of short-term rental management software - we had to bite the bullet and upgrade. All the things.

Consciously uncoupling the front-end from the back-end

Probably the biggest challenge we faced was to separate a tightly-coupled web "app" into clearly delineated, separate entities.

Ben Davies, our front-end lead, was set on a mission to complete this uncoupling. In Ben's own words:

"We've created a modern, maintainable, scalable solution, where the back-end and front-end are totally separate and communicate through an API. This should help a lot if we need to grow fast in engineering, but most importantly, it helps us create more and better opportunities to delight our customers."

Ahead of the launch, Ben worked on tens of thousands of lines of front-end code, across 10 different modules, and pushed 900 commits. Luckily for him, the pace is not likely to slow down — Ben loves a challenge.

Rapid application development with a focus on quality

As Ben likes to say, "No front-end is an island." (Insert British Isles joke here.) He worked closely with the rest of the team to test designs and API end-points. Shoutout to Ekrem Elmas, our design lead, and David Thorpe, API wizard, respectively.

There was a lot to cover in a relatively short time, so there wasn't time to wait for individual APIs to be ready. We heavily leveraged API mocking in the early stages to be able to demo functionality internally early in the process so that the full team could provide feedback and the iteration cycles get started.

From that point, it was full speed ahead. Feature by feature, the pieces started falling into place, from visual prototypes to something functional to fully fleshed-out products. Inbox, then Guest Experience, and finally Properties and Operations.

We invited a range of customers - from single property owners to large property managers - and worked closely with them to refine our designs and implementations around their use cases and scenarios. Their testing and feedback was an important driver of the project; keeping the team grounded on the importance of reliability, speed, and great user experience.

Back-end thrills

Meanwhile, the back-end team was busy rebuilding the infrastructure to be faster and more easily scaled. The key challenge for them was to make sure the existing functionality stayed exactly the same, and to add on top of it new features and improvements.

At the same time, they had to make sure the new smartbnb works equally wellfor users who have one property to manage, as it does for those who have thousands.

Although there's a lot of small successes to recount, here are a few select ones from our own Nikita Logachev, who led the back-end team:

Engineered fast, on-the-fly message template preparation. That means our messaging shortcodes and custom codes get replaced really, really quickly with fresh data from the Airbnb API. This is a big crucial for some of smartbnb's features like canned responses, rule simulation, and backend performance.

Added up-to-date pricing and availability data on the calendar, as well as the ability to set price and availabilities directly from the calendar UI on Airbnb and HomeAway at the same time.

Enabled populating Airbnb listing data into HomeAway messages containing shortcodes that would otherwise be Airbnb-specific. This functionality can be easily replicated for new channels once we have them.

Maybe they're born with it. Maybe it's collaboration.

The one thing that all developers said was the key to their success was collaboration.

Nikita said 'We trusted each other to do great work, and we did great work for each other.'

As a distributed team who works across five time-zones, development tasks took place nearly around the clock, with communication and documentation happening on a constant relay.

Jovana Gajic, from our back-end development team, summarised the project with: 'Teamwork above all'

The dev team had to adjust to a new way of working, they had to re-learn how to work together effectively, how to pass lessons between teams, and how manage joint-dependencies. And they will be the subject of upcoming posts!

About our Engineering team

Our engineering team is made up of Nikita Logachev, Jovana Gajic, Ben Davies, David Thorpe, Kieran Patel, Sam Jones, and of course, Founder and CEO Pierre-Camille Hamana.