Perl Startups: Recollect.net
Ovid: Can you tell us a bit about Recollect.net?
Luke: Recollect.net is a product I've been working on for the past few years that makes life a little easier by helping you remember to take out the garbage and recycling. What started as a simple open data hackathon project has evolved into a comprehensive communication system for municipal solid waste and recycling staff to use to engage residents.
We work with municipal and regional governments, as well as private haulers to load their geo-data, schedules and business logic into a system which is dead easy for residents young and old to use. Residents get beautiful, informative schedules, calendar feeds, email/text/twitter/phone call and push notification reminders the day before garbage day. Municipalities get a new channel they can use to educate residents about waste collection issues and programs and reduce inbound call volumes. Everyone is happy!
Ovid: Can you describe your technology stack/architecture?
Luke: Recollect is powered by open web technologies and lots of open source software - primarily Coffeescript, Perl and PostgreSQL.
Recollect has 3 components - an embeddable widget that goes on municipal websites, our adminstrator backend and our notification engine.
Our widget is a JS payload that is written in Coffeescript and uses Ingy's Jemplate for templating with a Template Toolkit style. It makes RESTful HTTP requests to our backend.
Our backend serves both the widget and our administrator console - it is a PSGI app served behind Nginx. This is pretty vanilla, although we'll soon be introducing Redis for some caching and Solr for search.
We also have a custom AnyEvent / Twiggy backend for our telephone system which lets us do some really cool things with inbound calls.
Ovid: Why did you choose Perl?
Luke: We built Recollect with Perl because our two technical founders knew it extremely well and can build systems with it very quickly. Simply put, it let us execute our vision very rapidly.
It's also very well suited to Open Data work, as there are so many modules for reading different data formats, rendering data in different formats and everything in between.
Ovid: What Perl-specific technologies were used?
Ovid: What was good and bad about the Perl language?
Luke: I think Perl is wonderful and joyous to work with - it lets me build things very quick, and it's also reliable and fast!
But it definitely is not sexy. I'm fine with that, though.
Ovid: What would you have done differently with Perl, had you known?
Luke: I end up rolling a lot of code myself, rather than learning and using frameworks. In some ways this is useful because I really get to learn the domain, but in some ways this creates a burden. So I go back and forth here sometimes.
But I've also had lots of bad experiences with frameworks where they got in the way of being productive - either through a high learning cost or because you want to do something the framework doesn't want to do, or because of speed.
So I'm pretty happy with where we are at.
Ovid: Did the availability of Perl developers impact your business?
Luke: No, not yet at least. I can see it being a challenge, but I'm not overly concerned about it.
Ovid: Did the company have a chance to give back to the community?
Luke: As a relatively young startup we are hustling hard to build our product vision - so we have not spent much effort on releasing open source. Having said that, we contribute to the projects we use whenever possible - through patches/fixes/enhancements to CPAN modules, mostly.
Ovid: Do you have any Perl-related plans for the future?
Yes, as a co-founder of the Vancouver Hack Space, I really want to build a membership management system in .... Perl! (And Coffeescript!)
Ovid: Are there any questions you wish I asked, but didn't?
Luke: Nope, thank you for doing these interviews and for promoting the Perl community!