NanoTowns : Facebook town builder
Published by Digital Chocolate, we used a Flash client served with Java back-end. I spent a lot of time on the back-end, learning multi-threaded Java application code, interfacing with Facebook APIs.
This was my first deep dive into back-end development, as the bulk of the heavy lifting in Facebook games was the scaling request service that had to be able to handle tens of thousands of simultaneous users. This was a learning experience, and we made some mistakes, like adapting our real-time multiplayer server that Digital Chocolate purchased from us (Flying Dino) to handle game sessions instead of using a simpler asynchronous http service. I had to learn lot of different back-end concepts and technologies like load balancers, database sharding, content delivery networks, ORMs like Hibernate, multi-thread safety, thread pools and executors, Java memory tuning, and of course, a ton of Linux.
I dug up a video showing the gameplay from Social Games Broadcast:
Henry Ho