Back in late summer of 2007, we saw a business opportunity to build a LinkedIn web application on-top of our extensive database, and we needed to build one fast (3-4 months)! We started with an extremely small team of engineers (2-3) and eventually grew to 6 engineers. We needed a framework that could give us the productivity we needed, while allowing us to leverage the extensive assets we have invested in our backend logic built on top of Java and Spring. Given that most of us are Java engineers, we wanted something that had a shorter learning curve.

I’d been playing with Grails since 0.1 days, and I thought this would be a perfect opportunity to test drive this technology. I wanted to see if we could quickly realize the productivity gains in a real world scenario. My main worries were: scalability and compatibility with the LinkedIn technology and process ecosystem. Due to the fact that this is not a free product, our initial customer base has been small and will remain small for a quite some time. Because of this, we were able to de-prioritize the usual stringent scalability requirement to allow us to give this young framework a chance to prove itself.

Another engineer (who had no prior experience with Grails) and I built two initial prototypes: one based on AppFuse 2.0 M5 (Spring MVC/JSP + Hibernate), and one based on Grails 0.6. We found that Grails was a lot faster to work with, even in its immature state. We then took a month to firm up the prototype and presented to management to gain their blessings to do it for real.

Below is a presentation that my colleagues Alex Vauthey, Borislav Roussev, Jamie Still and I put together for a JavaOne Groovy/Grails Meetup. This presentation tells about our experience using Grails to build our application.

This is the first in a series of Grails at LinkedIn blog posts we’ll be writing. We hope you return next week to learn more about how we introduced Grails into our Ant build process, how we’re developing new Grails projects and what we like/dislike about Grails.