If you have every been lucky enough to be able to pick the technology stack that you work on you know how exciting the process can be. However, it can also be a daunting task. Sure if you are developing an Android app or an iOS app you are pretty limited on what software stack you can use, so that makes your choice pretty easy. The real fun comes in when you are developing a back-end service for an app.
Open-Source or proprietary? REST or SOAP? Windows or Unix? Dedicated hardware or cloud solution? These are just a few of the decisions you will have to make before you can begin coding your web-service.
Before we get too far off the rails here, I should explain why I am writing this now. If it weren’t obvious enough I am writing a back-end service for a mobile app and the best part is that I am the client. That’s right no worrying about a client’s IT staff not being familiar with UNIX-like systems (a lot more common than you’d think) or having a culture that doesn’t want to implement anymore services in their aging technology but is at the same time unwilling to look at any more modern solutions; believe it or not, there is a lot of VB6 code still running out there. I’m not bitter. I promise.
So, as the client, what do I want? Well, I basically need a web-service that will return JSON to mobile clients, interact with social networking services, store user data, be fast to implement, easy to maintain, and deploy-able to a number of possible cloud hosting solutions. I am trying to do this project as lean as possible. Meaning I want to fail fast and as cheaply as possible. Tall order, I know, but I think the developer (yours truly) is up to the task.