4 years in development, now on the App Store!
Tags: showdev, ios, node, aws
Published: 2020-08-07 12:23:05

## The Story

A year ago, I had a friend of a friend reach out to me to discuss an app. He and one of his buddies had come up with an idea and had heard I was a programmer.

Okay, pause: I bet every single one of you reading this right now has had this exact experience. It goes something like this:

"Hey you code right"
"Yeah"
"I have this app idea, build it for me"

So when they started pitching me, I was skeptical, of course. However, this time was different.

As soon as I heard the idea, I was immediately sold. They had been working on it for 3 years already and a company had built them a working prototype. Now out of money, they were looking to build their own team, which was why they had gotten in contact with me. 

And so it began.

# Meet Savvy, The Worlds First Live Dating Game

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/65ukqo0wvl26ezsewx5z.jpg)

## The Idea

Okay, time for the elevator pitch that sold me a year ago. **Savvy is the world's first live dating game**. Think a mixture between *The Bachelorette* and *Trivia HQ*.

Every night from 9 pm to 10 pm EST, the application goes live. 1 girl is matched up with 4 guys completely anonymously. The girl asks questions, and the guys respond. After each round, the girl eliminates the guy whose answer she likes the least. When she is left with only one guy, a match is made. The profiles are revealed and the two are able to start talking. 

Gameifying the dating scene. No more swiping.

## The Tech

This is a development website, so let's get into the details. 

Savvy is native iOS, so the front-end of the application is written almost entirely in Swift and Obj-C. The backend is written in NodeJS. We are leveraging Websockets for the real-time nature of the application through the SocketIO library. 

Architecture wise, we are set up like a pretty standard 3 tier web app. Everything is hosted on AWS. Clients hits a network load balancer, which distributes traffic to our auto-scaling group. The EC2 instances talk to each other through an ElastiCache Redis Cluster (otherwise socket.IO would not be effective in an ASG). Then lastly, all data is stored in a MySQL database. 

I co-authored an engineering blog post about our stack with diagrams and a more in-depth breakdown [here](https://medium.com/@savvydatingapp/the-challenges-of-building-a-real-time-application-8e236efab39d). I will continue to post to DEV with the technical and soft skills I have learned throughout this process. 

## The Experience

This has been the greatest learning opportunity of my career thus far. From both a business and technical standpoint, I have picked up far more than I ever could have imagined over the course of a year. Our team is now up to 10 members and watching everyone grow together has been one of the coolest things I have ever been apart of. Being in such a small, fast-paced environment may have forever ruined the 9-5 for me.

## The TLDR

Just quickly scrolled through this article, and there are far too many words? Sorry, I get excited when talking about this.

- We have a YouTube video detailing this entire journey [here](https://www.youtube.com/watch?v=ULVEcWTTtPE&t=174s).
- Want to try out the app? [Apple App Store Link](https://apps.apple.com/us/app/savvy-dating-game/id1426377188)
- Meet the team on our website [here](https://www.savvydatinggame.com/)

This project is still very, very new in production. If you do decide to check it out, please feel free to leave any bugs or recommendations in the comments of this post!