GeekOn: Geofencing with Local Deals

Jonathan Blood
Groupon Product and Engineering
4 min readFeb 24, 2021

Before the GeekOn Event

My participation in the Geekon event began a few months before the event started. I was approached by an engineer on my team, Riccardo Polacci (Frontend Engineer), who was one of the members of the GeekOn committee looking to help in the creation/organization of this event. He told me that he would like to build a small website to allow users to pitch ideas for GeekOn and find other team members to collaborate with.

Riccardo asked if I would be interested in helping to build out the backend API for the website since I spend most of my time building and working on backend services in Groupon. I was pretty busy at the time, but I ended up saying yes as I wanted to help support my teammate on his idea. As a secondary motive, I also wanted to write the API using a building block called JTier that we use for building out backend services and I wanted to use this project as an example of how quickly you can spin up service with JTier and how you can get a lot of functionality out of the box like metrics, logging, deployment tools, testing, and integrations with many other libraries, etc.

I ended up creating the backend for the project in a weekend and had it deployed about two working days later once I got approval for the deployment resources. This also includes the creation of monitoring dashboards, alerting, and test coverage of about 95%. We later extended the project with a voting system so users would be able to vote for their favorite project after the GeekOn event was over.

My Project Idea

When we launched the site, I registered my idea for GeekOn website. I decided to do a project on my own (just in case I had to support the GeekOn site in any way during the event). I decided to work on a proof of concept for building out a mobile application that would pull deals that were nearby for a user periodically and then create geofences around these deals. Upon entering one of these fences the user would get a push notification about the deal. This mobile application was purely a proof of concept as I wanted to get an understanding of how geofencing works on these devices so I could turn this into more complex ideas down the line. It also turned out to be a good bit of fun learning Android with Kotlin as well. Eventually, a long term goal of this project was to use a different way of recommending deals using a service called Deals Cluster which was a service my team developed for grouping deals by certain business metrics or rules (like deals expiring in the last 15 days, deals with the highest conversion rate or top 30 trending deals, etc.) For GeekOn, I did a basic deal search sorted by distance; a perfect proof of concept.

During GeekOn

Geekon breakdown — it’s a 3-day long event.

Day 1: I spend most of this day working on a last-minute feature request for the GeekOn website to support bulk updating project links on the website. This way we could easily link a project to their presentation at the end of the event. I then spend the remainder of my day setting up my development environment for the project and getting it working so I could run the app directly on my phone.

Day 2: I spend the whole day implementing my idea. Overall, I was surprised at the simplicity of the Geofencing API in terms of implementation. It was also quite interesting learning about the different levels of permissions required to run this application and see how it impacted battery life.

Day 3: I spend half of the day trying to figure out how to demo this application since I can’t easily leave the house. (At the time we were in a Level 5 lockdown in Ireland due to Covid-19). I figured out you can install an application that allows you to mock your location by dragging around a pin on a map, then in the developer settings of Android, you could select this application and allow it to mock your location. The remainder of the day I spend preparing for the presentation.

Reflection on the GeekOn Event

  • There is a huge amount of effort that some of the GeekOn committee members spend in organizing this event (and even other events throughout Groupon as a whole, such as Sports & Social, Lunch & Learn committee in the Dublin office — just a few that come to the top of my head). Kudos to all that help make Groupon a fun place to work!
  • GeekOn is a great way to come up with ideas.
  • You get a chance to collaborate with people from other teams and work on different projects or tech stacks.
  • From a personal point of view, I would like to build on to the GeekOn website to further improve it for the next iterations of GeekOn. We ran out of time to implement everything that we wanted to do.

--

--