Giving Back at Seattle GiveCamp

Published on 09 November 2017

Smartsheet Engineering has a history of looking for opportunities to improve the community in which we work and live.

Whether it's participating in one of the regularly organized department-wide trips to Northwest Harvest to pack food for local families in need or the Mobile Development team making trips to the Hunger Intervention Project to help feed the hungry, Smartsheet Engineering is mindful that we can make a difference.

The Seattle GiveCamp hackathon is a weekend-long hackathon that brings programmers, designers, and other software professionals together to donate their time to build software for Seattle-area nonprofit organizations. This year’s event focused on developing mobile apps. So, it was natural that members of the Mobile Development team at Smartsheet were eager to participate.

Engineers Anthony Bryan, Stephen Lardieri, and Aleksei Sazonov worked on a team of five to build a mobile app for the Hunger Intervention Program (HIP). The application helped HIP to more easily track the number of hours worked by its many volunteers.

"HIP has a relatively small number of staff," said Anthony. "Most of the work done is by temporary volunteers. These volunteers typically only work for a few hours at a time and keeping track of how many people did what for how long has become a logistical nightmare."

With that problem in mind, the group built an app that allows volunteers to check-in for an event and record how many hours they worked. HIP is then able to use that data to more effectively manage event logistics.

In addition to providing a handy tool for time-input and analysis, the app also integrates with the volunteer's calendar so that HIP can notify them of any upcoming opportunities to serve.

One of the requirements of the hackathon was that each project needed to use Xamarin in some way. Xamarin is a development tool owned by Microsoft that allows applications to be built with a single code base and run on multiple platforms, such as Android and iOS.

Xamarin was something new for Smartsheet's native, mobile-platform developers to learn for this hackathon.

"We're all native iOS/Android developers, so Xamarin is something none of us had any experience with prior," said Anthony. "It was a challenge to learn these tools during the short time we had to develop the app."

One of the features of Xamarin is the ability to share a common code base across platforms.

Xamarin.Forms allows developers to define user interfaces using XAML rather than code. However, using the XAML user-interface language presented some design challenges that required the team to get creative.

"The big technical challenge we had was trying to model users and HIP events in a way that could be consumed by both the application and back-end server," said Anthony. "The goal would be to write one object that could be consumed by both--that would make it easy to serialize/deserialize back and forth and cut down on development time."

"We have not done that," said Aleksei. "We ended up with duplicate model objects for ASP/server side and mobile [client]."

While it was a challenge to learn during a weekend-long hackathon, the group saw some benefits to the platform.

"Being able to work in the same Visual Studio project let us [front-end developers] keep an eye on what the server developers were doing," said Stephen.

At the end of the event, this group of engineers was able to help a charity in a way that not many other volunteers could. The Seattle GiveCamp hackathon provided an opportunity for these coders to learn some new technologies, build something cool, and help an organization in need. What better way to spend a weekend?

"Anyone is able to volunteer their time to help a charity, or to just make a donation of goods or money," said Anthony. "But while these tasks make meaningful contributions to the charity's ability to help people, there are still a lot of operational and logistical problems these organizations have that need software solutions in order to maximize their ability to help.

"Unfortunately, software development is expensive, and for charities with already stretched budgets, it can be impossible to get the solutions they need. That's why it's so essential that people with that technical expertise lend those skills to help."