When I first learned Alexa was open-sourced, I wanted to get one. In a deal with my dad, he gave me an Amazon Echo, and I started developing an app for him. As a real estate broker, he wanted me to build a properties' search. The final product was pretty cool, and we both saw its potential.
What it does
Our Alexa skill asks you a series of questions to navigate your search to find houses and properties you might be interested in. Alexa then can send you an email with a link to your graphical results.
How I built it
I wrote the voice app in Java and host it as a lambda function. It uses DynamoDB to store session data and information about the app. Each time a user loads the app, it looks to see if the user has a prior session saved. Returning users have different options than new users. Once connected with our skill, a returning user experiences a personalized greeting and the ability to redo searches or continue those that may have crashed. Then, I built a server to store user info and return graphical responses in ruby on rails. The server is used for account linking and finding all of the housing data.
Challenges I ran into
Once the code became more complex, I realized it was no longer maintainable in its current form. It needed to be re-written and reorganized in order to be more sustainable. In my experience, voice apps commonly face this challenge because of the endless possible user states and the constant need to anticipate and evolve with them. As you add more questions, the app gets exponentially more complex. The next challenge we faced involved obtaining the data for our skill. Housing data is incredibly fragmented and locked down within the real estate market. It took a lot of time and negotiation to get access to the markets we have now. We currently provide listings in Albany, NY, Boston, MA, Staten Island, NY, Denver, CO, Phoenix, AZ, Virginia Beach, VA, Naples, FL, and the state of Michigan.
Accomplishments that I'm proud of
I am proud of the organizational scheme developed in response to the growing complexity of the app. Overtime, we have balanced the intricacy of the app without sacrificing organization or efficiency in the code. Obtaining the housing data has also been a major point of pride within our small startup. While one of the most challenging parts of this venture, closing the deals and gaining access to that data continues to be one of the most rewarding and exciting parts of developing this app.
What I learned
I learned that nothing is as straight forward as it should be. At every turn, there was a simple solution and a complex one, but the simple solution was often not an option. We originally wanted to build the voice interface and partner with a pre-existing real estate search company, but that wasn't as easy of a sell as we anticipated. The complex solution was to build our own website and search engine. Just as rewriting the code benefitted the future of our app, so did creating these services ourselves. By controlling all of the aspects of our product, I ensure every piece is the best.
What's next for Real Estate
We are constantly acquiring and searching for more housing data. So far in 2017, we've developed and launched our skill on Google Home, reached eight housing markets, spearheaded the addition of voice search to the rules put forward by the National Association of Realtors, and grew our Voiceter team with more great minds. We have primed ourselves for finishing 2017 strong with more housing markets, improvements to the skill, and growth for our company.