Clock Product Release
Published on 20 March 2018
As Smartsheet has grown, the size of our customers has grown with us. Which means, from an engineering perspective, some solutions that worked a few years ago need to be reworked to better scale with the increased demand.
Such was the case with one feature unleashed with the recent Clock release.
Mark Kristensson, Senior Mobile Software Development Engineer, was working on improving the contact list experience on the Smartsheet for iOS app when he discovered that the improvements needed more than a change to mobile app code.
"I went in thinking it would be pretty simple to add this search to our existing contacts infrastructure," Mark said, "but quickly realized that the foundation I built several years ago was overtaxed. When I first built it I think we had two data sources for contacts and now we have six!
"So, I had to rewrite the contacts infrastructure to handle a more diverse set of data sources and I also took the opportunity to rewrite most of it in Swift."
One of those data sources that Mark had to take into consideration was a new service built to better search for Smartsheet contacts. That new service was written by Pradeep Garimella, Senior Software Development Engineer, from the Enterprise development team.
"The solution we came up with was to use Elasticsearch," Pradeep said. "It does full-text searches, but one of the obscure features is that it can also do autocomplete searches--which is what we were going for. Searching on parts of names [or] searching on parts of email [addresses] that is autocomplete or 'type-ahead' search."
While analyzing the results of using Elasticsearch, Pradeep also had another challenge--latency.
"The mobile guys said that our latency couldn't be anymore than 300 milliseconds," Pradeep said.
To keep the searches within the latency boundaries, Pradeep worked with the Technical Operations team to reduce the number of connections that were needed by implementing HTTP Keep-Alive.
"HTTP Keep-Alive is a persistent HTTP connection between the client and the server," Pradeep said. "If you don't do that you have to renegotiate your TCP and SSL handshakes for every key press. So, that would be another 300 milliseconds straight off the bat."
The improved performance of searching for contacts on Smartsheet for iOS is only one of the features in the Clock release. Read about everything that came out in the Release Notes.
The art for the Clock release was done by Andrew Bair, Senior Software Engineer. Andrew has been at Smartsheet for almost a year and a half, and has worked on such features as the multi-select drop-down control and approval updates, among others.
He has a life-long love for drawing, and at one point hoped to become an animator or comic-book artist, before ultimately deciding to study computer science.
Of the illustration, Andrew wanted to create something non-traditional.
"When I think of a clock, I think of Roman numerals, a series of mechanical gears, and rich ornamentation, like one would see in an old clock tower or pocket watch," Andrew said. "I wanted to avoid all of these elements, so I figured the iconic cat clock one would see in a mid-century American kitchen was a good place to start."
From there, Andrew put a twist on the classic cat clock by drawing on the inspiration of one of the 20th century's great surrealists.
"One of my initial concepts was The Purrsistence of Meowmery, an homage to Salvador Dalí's The Persistence of Memory—the melting pocket watches were replaced by melting cat clocks—but I felt that it was a bit too cliché and really wasn't a good fit for release art," Andrew said. "I simplified this concept to a single warped cat clock, with bold colors and clean lines calling to mind poster art and classic animation. When it came time to decide on the background color, a 'clockwork' orange was the obvious choice."