Episode 109 of The SitePoint Podcast is now available! This week Louis Simoneau (@rssaddict) talks with Cody Fauser (@codyfauser), the CTO of Shopify. We talk about the origins and history of Shopify, the role of software-as-a-service in ecommerce, and Ruby on Rails.
Download this Episode
You can download this episode as a standalone MP3 file. Here’s the link:
SitePoint Podcast #109: Shopify with Cody Fauser(MP3, 33:54, 32.6MB)
Louis: So hello and welcome to another episode of the SitePoint Podcast. With me today on the show we’ve got Cody Fauser, Cody is the CTO of Shopify which is a very popular Ruby on Rails based software-as-a-service ecommerce platform, so hi Cody.
Cody: Hi, how are you doing?
Louis: I’m doing very well, how are you?
Louis: Awesome. So before we dive into talking about Shopify and about ecommerce and probably talk a bit about Rails as well, can you first talk a bit about what your background is as a web developer?
Cody: Yeah, back in the day when I saw a post on Slashdot trashing Ruby on Rails development and so I thought I’d take a closer look, and it turns out that it solved all the problems I had with my web development framework at the time, so that was nice. And from there I dove right in and started devoting more and more of my time to Ruby on Rails programming and eventually I hooked up with Tobias Lutke who founded Shopify and was on the Rails core team and ended up joining the Shopify team.
Louis: Alright. And just for the benefit of anyone listening who’s not familiar with Shopify do you want to talk a bit about what Shopify is?
Cody: You sort of hit the nail on the head with your intro, but Shopify is a hosted ecommerce platform, we have over 13,000 merchants on the platform now and basically Shopify includes everything a merchant needs to get up and running with their online business quickly and with minimal risk, and the goal is that they don’t need their own IT department to manage their online store, they get their design in and they can manage the day-to-day operations of their business by themselves.
Louis: Alright, so for you guys is that the biggest differentiator between Shopify and a lot of other ecommerce platforms, is it those require say a bit more technical ability in-house?
Cody: Yeah, Shopify’s all about being the simple elegant solution, so there are other ecommerce solutions out there that have every feature ever needed for ecommerce, that’s not what we’re about at all, Shopify’s about keeping the complexity hidden under beautiful user interface that’s intuitive and easy to use, and also Shopify is perfect for people that want to experiment with new ideas or get started with a new product or experiment with minimal risk. They don’t have to spend a lot of time setting up infrastructure or hosting, there are no big setup fees or anything like that, so you can really go from zero to 100 in minutes.
Louis: Right. And for you is that something that you see as being, I guess that’s one of the things I’m interested in is there are so many ecommerce platforms that were out there before and that have come around since, I’m thinking of back in the day I think ZenCart and OSCommerce, I think it was called, and more recently Magento, so there are all these ecommerce platforms that people set up and develop their own themes and solutions in-house. Do you feel that that’s something that is having a smaller and smaller role over time, or is that something you think still has the place within certain organizations that have the resources and you guys are really targeting a completely different market?
Cody: Yeah, I think as time goes on I think that the install it yourself types of solutions are sort of moving into bigger business where people do have the dedicated IT resources to manage the software. For people that don’t have those resources on hand it’s just too time consuming and/or costly to be maintaining servers and doing upgrades and nobody wants to get woken up in the middle of the night with an SMS message saying that their ecommerce site which is powering their business is offline, so having a software-as-a-service product really sort of solves all of those issues for you.
Louis: Right. And when you got into working with Shopify my understanding is that Tobias had already been developing it, and was it already live and a functioning platform when you came on board or where you there when it sort of launched to the public?
Cody: So back in the day Toby had actually built a snowboard store, he was looking to go online with this snowboard business and he surveyed the landscape of all the available products and he just didn’t find any that really met his requirements, he’s very, you know, he has high expectations for the types of software he likes to use, and he didn’t find anything that really met his requirements, so he had been working, basically started working on Shopify, or as it was called Snow Devil, the snowboard store, the day Rails was released, the very, very first public release, so he was hacking away on that in his home for about a year or so, and then I came on board a few months before the launch in 2006 and helped out to get all the last features polished off and been here ever since.
Louis: Right. So that’s really interesting. I remember back in the early days of Rails when there was a lot of I guess criticism against Ruby and Rails as being platforms that couldn’t scale; at the time there weren’t a lot of apps out there, I mean now we’ve got the Twitters and the GitHubs and a lot of big Ruby on Rails based applications out there, but I remember early on Shopify was one of the ones you’d see on the Ruby on Rails homepage where they were saying look this is an example of an application that’s built on Rails and that’s scaling, so you guys were there from the very beginning.
Cody: Yeah, definitely. And you know we owe a lot to that placement on the Ruby on Rails homepage, especially when we were bootstrapping the company in the early days, we’ve just got an incredible Rails community and they’ve really helped us along through all these years.
Louis: Right. So coming back to — I know it’s a bit trite to ask anyone who’s developing a Rails application about the eternal scaling question but, have you found any issues with Rails? I interviewed a few weeks ago Tom Preston-Werner of GitHub and his statement was that, no, Rails has never been, or Ruby has never been the bottleneck in terms of scaling their application; what are the challenges that you guys have faced from a scaling perspective?
Cody: You know to us it’s all everything’s a trade-off, so if you want to develop software super fast and get your product to market obviously you’re not writing that in assembler or C code, but the fact that you have your product to market and you have customers means that you can then have to worry about scaling issues, and so you know like the Twitters and these types of things where they did become really successful and had the issues, that’s sort of a good process where they got up to market and then they optimized the code paths that are really hot and are causing the issues and that’s sort of the same technique we’ve used where we use the New Relic monitoring tool and it tells us where all of the horrible parts of our application are, but they’re usually not to do with Ruby per se, it’s just like us doing in-optimal database queries or doing just bad code in general, so we really don’t feel Ruby’s held us back at all at this point.
Louis: Right. Another thing that’s really interesting about Shopify is they’re one of the few, or I guess they’re increasing number of web services nowadays that have a sort of built in app store, so I think the first place I remember seeing this was some of the 37signals applications, you can correct me if I’m wrong on that, and I think I’ve also seen FreshBooks has a similar kind of thing where they’ve got a set of plugins I guess similar to what you’d see with plugins for a self-hosted solution like WordPress or Drupal except that these are sort of apps that you just turn on on the server side, and some of these are paid applications. Do you want to talk a bit about what the thought process was that went into developing that and how it’s working for you?
Cody: You know the Apple App Store was a huge inspiration for us, and it’s actually having an app store is just a great way to keep your core product very simple and lean and elegant because people always have that one requirement that the software doesn’t meet, and so if you’re always implementing all of these features that everyone wants then quickly your software becomes unintuitive and bloated and confusing, so not only can we allow people to develop the custom functionality that they need, we can also leverage our own billing platform to allow them to charge money for their application and it integrates seamlessly into Shopify to the merchant’s store, so it’s kind of a win-win for everyone involved. We’ve had quite a few, some Y Combinator startups and this kind of thing, use Shopify as sort of a testing ground for new ideas, new business concepts, and then once they’ve proven that the ideas work on the Shopify platform then they can expand that out to the general market.
Louis: So when you say expand that out to the general market do you mean it’s sort of a selling product that they move into retail or do you mean that they sort of expand their platform from a technological standpoint and build on top of your API to expand their website and platform?
Cody: Since we have so many merchants it’s a great way to test if a concept as valid or not, so we’ve had a pretty popular chat application where you can embed chat into your store so you know that’s not restricted to an ecommerce website, it’s just that we sort of had a good user base and a simple API and a billing platform that allowed them to prototype their product and get it out to market really quickly, and then once they know that it’s a solid idea then they can offer that and start hitting other niche markets and expand their horizons.
Louis: Oh right, sorry, I think I misunderstood you; I thought you were talking about merchants but you’re really talking about app developers.
Cody: Oh yeah, sorry, I was focusing on the app developers there.
Louis: Yeah, so that’s really interesting, so that you’ve actually sort of provided a platform for developers to tap into. And do you find that a lot of your app developers are also working in Ruby on Rails or is their a pretty wide variety of people because the API is just REST and JSON?
Cody: Yeah, so there are tons of Rails developers, but like you said since we offer XML and JSON, you know, PHP or whatever technology someone wants to use to build an app with is perfectly fine. We provide really great tools for people to get started with Ruby so that probably helps the adoption of Ruby on Rails with our API, but yeah, it’s definitely open to anyone that’s interested to integrate with it.
Louis: Right. I want to come back, circle back around a little bit and talk about maybe ecommerce more in general. As I was saying earlier, there were a lot of solutions out there when you guys were getting started, so some of those were free solutions and some of those were hosted solutions and there were the paid installed software as well, what was it that made you guys think that you had a product that would be able to compete sort of at a solid price point and something that’s sort of recurring billing which people maybe weren’t used to paying for for an ecommerce, they’re like oh I’ll just download some open source software and put it on five dollar a month hosting and I’m set. What was it that gave you guys the confidence that people out there would be willing to pay for a more I guess professional solution?
Cody: Yeah, well as I mentioned before, Toby really went through every product on the market and all the pains that he had felt were fresh in his mind when he started working on Shopify in the early days, so basically the goal back before launch was just to solve every pain point he had during the starting of his snowboard shop, so once we had Shopify working we actually took the design from Snow Devil and implemented the entire store in like 20 minutes. So it was really just solving all of those pain points and it wasn’t about the other products, it wasn’t like oh we think we can be better than the other products, it’s just that if we solve those problems then other people like us would also use the product, so it totally came out of necessity more or less.
Louis: Yeah. And you were talking earlier also about how for some small organizations or people that are just starting up and want to test a product or something like that, that something like Shopify is a great way of doing it at low risk, and that the other sort of self-installed solutions might continue to be a viable option for big organizations with their own internal IT departments, but I imagine you probably also have a few clients that are bigger organizations that could maintain their own solution but have decided to go with the software as a service solution, is that accurate?
Cody: Yeah, that’s definitely the case. For example, Rovio who sells the, well, the Angry Birds game that everyone knows, they’re selling their plush toys with Shopify, so it definitely scales up to larger organizations like that as well who their core competency is developing games, and I’m pretty sure they don’t want to get billed out their ecommerce team and OPS team to manage ecommerce servers because they’re focusing on making profitable games, so it’s just a great relationship we have there.
Louis: Yeah, I guess that will be the case with a lot of organizations where if you just look at the cost of hiring and training and maintaining a team to develop your own solution then the overhead is more than paying you guys a little bit of profit to take care of all that stuff.
Cody: Exactly. And you know a free open source solution looks cheap until you factor in all the time and that one time that it may go down, we have dedicated people on call 24/7 to make sure that our service is up, so you can’t really put a dollar value on that.
Louis: Yeah. Maybe I’ll switch gears a little bit here and start getting into more geeky stuff, a lot of our audience are sort of web developer type people so I want to give them a little bit of fat to chew on. With regard to scaling up or maybe even just building your platform, because ecommerce is one of those sort of tricky solutions that’s not just sort of like building a CMS, it’s a harder solution that involves a lot of moving parts, what are some of the biggest challenges that you guys have faced in developing your platform and scaling it?
Cody: To be really generic, I’ll get into more detail, but we thought ecommerce was this thing we’d have the problem solved and we’d all be onto the next business, we thought this four years ago and we’re still trying to tie everything together, so just an incredibly complex environment where you’re dealing with financial transactions plus you’re trying to streamline things end-to-end in terms of fulfillment and inventory and having an intuitive checkout and all these kinds of things, so for us it’s always been challenging just to try and mask the complexity that’s inherent to ecommerce behind intuitive interface but that’s probably enough geek talk.
Louis: It’s interesting to think about it from I guess more of a higher level point of view, I mean the fact that something that can seem like it’s core business, we’re just going to build an ecommerce platform, we should be done with that by now but there’s all these constant refinements and constant work going on, and again you’re talking about things dealing with financial transactions; I guess there’s a big difference between building a CMS where if someone posts a comment and it gets lost in the void that’s not such a big deal, but the tolerance for error in ecommerce is a lot lower.
Cody: Exactly. And so that’s one of the things I was going to touch on is just you’re trying to model everything correctly so that every attempt to do a financial transaction has a recorded history so that you can never — there’s never any data loss, it’s really critical, but aside from that since we do have the new mom and pop shop coming online as well as the big Rovio types, there’s just this kind of incredible diversity in what our merchants are like and what they’re doing and what websites are being featured on so it’s hard to really profile one of them accurately so one day someone may go on Oprah and all of a sudden their site gets slammed, so we have to be able to handle that as well as the fact that they can develop the entire front end of their store using their own Liquid and HTML which is unpredictable because we’re not in control of that. So there’s just a lot of stuff to do, a lot of caching and make sure that we can handle sort of all those odd scenarios that you may not have to worry about with other types of products where everything’s protected behind a login screen.
Louis: Yeah. So that’s one of those things that’s kind of interesting because you guys have to sort of in addition to providing the software to people you also have to host it, and like you were saying if one of your clients suddenly gets a massive surge of traffic you have to make sure that no one else’s sites are affected.
Cody: Yeah, exactly. And we had someone over Christmas sign up on a Thursday and they were featured on a television show in the U.S. on the Monday or the Tuesday and they did a million dollars in transactions that day, of fifty dollar products, so at some point they were doing over 300 orders per minute, so you really get these crazy spikes where you just don’t expect them.
Louis: If I’m not mistaken you guys kind of outsource even your hosting so you don’t do that in-house, you’ve got a deal with I think Rackspace, is that right?
Cody: Yeah, we’re currently at Rackspace, so yeah, we’ve got a big cluster of servers.
Louis: Do you guys scale up your cluster sort of dynamically or is it something you sort of handle still sort of on a manual basis?
Cody: We’re running bare metal servers so really we’re not — yeah, so we are using the cloud for certain services, but the core application is on bare metal servers so if we want to scale up we have to get more servers, so we just make sure we’re way over-provisioned to handle any spikes that we might see.
Louis: Right. Alright, so maybe moving on from the challenges you face, is there anything — maybe just let you geek out for a minute, is there anything particularly sort of a cool problem that you’ve had the chance to work on since you’ve been at Shopify or even something you’re working on right now that you think is a lot of fun or maybe a challenge that’s less of a downside as a challenge or an obstacle but something that you’ve had fun working on?
Cody: Yeah, I guess in general just anything you do is pretty satisfying because the moment we deploy the software and we deploy usually once a day or more depending on if there’s any code to push out, but the moment that code goes out it’s in front of all those shops and all those users and all that traffic, so it’s definitely anything you write is really satisfying, but there’s just some of the things that I wrote, the entire billing system for billing customers and seeing how that survived for the last few years is pretty satisfying, the payment and processing order management infrastructure of Shopify is also something; the sheer volume of payments and orders going through is pretty mind boggling and it was also pretty fun. Toby and I always joke that the best job in the organization is Ops Dev so we both like to get our hands into the servers at a sort of programmatic level in terms of configuration management, so I got the chance to help out a lot, or help the Ops team out a lot before we moved to Rack Space and getting everything automated using the Chef configuration management system, that was really satisfying as well.
Louis: Do you guys have a pretty big team now; how many total staff do you have on at the moment?
Cody: I think we’re just over 60 total staff now, so we started out really heavy on the engineering design side of things and now we’re building out because the product is super mature and really awesome so now we’re building out more the marketing dev teams and adding people to the customer support and all those kinds of other aspects that we really didn’t pay attention to back in the day but now that we’re scaling up the business we’re adding a lot of those types. So it’s really exciting going from a team of three or four up to 60 is definitely a big change.
Louis: Yeah. I wanted to move on and talk a little bit about open source. The reason I want to bring this up is just because like I said I was interviewing a few weeks ago Tom Preston-Werner from GitHub, and I was talking about his position on open source and he said that in their business one of the things that they — or the way that they approach open sourcing the code that they write is they kind of focus on the sort of low-level infrastructural things, so like the Ruby Git bindings grid was something they developed in open source, Jekyll which is something for creating static HTML pages for the GitHub pages, but you guys have been pretty active in developing ActiveMerchant which is a Ruby Gem to add, if I’m not mistaken, sort of ecommerce support to Rails, right?
Cody: It’s interesting because for us ActiveMerchant is actually our infrastructure and so what it does is basically just abstracts the interface between all the different payment providers worldwide, so it supports over 50 or 60 payment gateways now. And so while GitHub their infrastructure is lower level, they’re interfacing with Git, we’re interfacing with payment providers so for us ActiveMerchant is a piece of infrastructure, we have that same sort of mentality that we open source the things that aren’t sort of the core business logic of the product, so for us ActiveMerchant is infrastructure and we’ve actually gotten a huge benefit from open sourcing it. By now I think we’ve probably written from scratch less than half of the gateways that it supports, and the rest — it’s probably even more than that, but the rest just come in through the community and so it’s fantastic because someone will add a payment gateway for Denmark or somewhere like that, and all we have to do is edit one config file in Shopify and we can have support for that payment provider in Shopify, so it’s a huge benefit for us.
Louis: Was that something that was around before you guys started or was that something that you built as you were working on Shopify?
Cody: When I started with Shopify ActiveMerchant had I think one gateway which Toby basically started the library back in the day, it had one gateway provider, one or two, for a provider in Canada here, and then from there I started adding a lot to it and now it is where it is today, so it’s pretty impressive.
Louis: Alright, I wanted to switch gears again and finish off, it’s been really interesting talking about kind of ecommerce and the technical challenges of your business in particular. I wanted to talk a bit about Rails in particular and your opinions on some stuff that’s going on in the Ruby and the Rails world. So Rails 3 was released really recently, do you guys follow the upgrade cycle very closely or have you frozen to a specific version and are running off of that?
Cody: So yeah we do follow it pretty closely, we don’t follow it as closely as we did back in the day; I remember at one point we were running on Edge Rails for like a year, definitely we don’t do that anymore, but also because the changes that are happening now, you know, between the Rails 2 and 3 releases were pretty sweeping, so there’s a lot of points in between where it was just too unstable to be on Edge and running a business, so we basically were just locked onto the major releases there, but I believe we were one of the first large Rails shops or large products I guess to switch onto Rails 3 and so we’ve been happy there. So we really follow the major releases now or the point releases and then the major upgrades, but we’re not following the Edge with as much dedication as we were before just because it’s sometimes a bit too risky.
Louis: Yeah, sure, something with as much cash flowing through it as you guys. What are your thoughts on Rails 3; how do you find it stacks up?
Cody: I think it’s a fantastic change, Yehuda Katz and Carl Lerche really did a great job cleaning up the internals, it’s just amazing. As well with ActiveRelation, ActiveModel, it’s all things the little sort of pain points now you can just use something from ActiveModel and get validations in a regular class or in a regular model that’s not ActiveRecord-backed, so just really opens up, sort of extends the nice clean code you can get from Rails but spreads it around into all your models and all the parts of your software.
Louis: Right. One of the things that’s come up fairly recently on the Twitter is there was an announcement by the Rails team that the upcoming Rails 3.1 would ship with CoffeeScript built in by default, so I wanted to get maybe your opinion on that because I think it happened in the last week or so, and given that I had you on the show I wanted to see what you thought about that or is that something you’ve been following a little bit?
Cody: Yeah, we’ve been talking about that in the office quite a bit, and I think once you look at CoffeeScript you kind of see why they’re doing it, and CoffeeScript just looks so great.
Louis: So I’m going to backpedal a little bit for anyone who’s listening and who’s not familiar with this, first of all with CoffeeScript in the first place and then with the controversy, so can you just give a bit of background on what CoffeeScript is for the benefit of the listeners?
Cody: I think everyone here is pretty excited about it, but I think the point is just that when you look at — I think the controversy was just that it got put into the default Gemfile, so when you generate a new Rails app CoffeeScript is in there, and so I think people just feel that CoffeeScript is just a little sort of outside the realm of what your web framework should be doing, but Rails is an opinionated software and if you really don’t like it you can just comment out that line and goodbye CoffeeScript, so it’s not really too big of a deal at the end of the day, and just like everything else I’m sure they’re going to put a lot of really slick tooling to help developers work with CoffeeScript in Rails as well.
Louis: Was that something you guys were using already or have you used it in the past?
Cody: We haven’t really developed too much with CoffeeScript, like it was on the radar but we’re paying a lot more attention to it now and excited to see, well, we’ve got some projects on the go now but they’re more recent so, yeah, we’re definitely looking at it seriously.
Louis: Another I guess more minor controversy that’s come up a little bit in the Rails world there’s sort of the debate between the various testing frameworks that are available; I know a lot of people in the Rails world are big fans of RSpec, but I guess the Rails core team is kind of wedded to Test::Unit which is what comes bundled with Rails by default. Where do you guys fall on that spectrum, which one do you use at Shopify?
Cody: So since Shopify is so old we started with Test::Unit and we’re still using it, we were exploring some various options like Shoulda and RSpec throughout the various plugins and things we’ve written, and I think RSpec is fantastic to read; I find it’s a bit more — it’s harder to drop new developers into a project using RSpec because it sort of does a lot. I feel like Test::Unit’s sort of the most basic kind of, you know, you assert something, something else, there’s no dynamic, there’s no magic really happening it’s just what you see is what you get, so it’s really nice and simple. We try to use Shoulda to take advantage of some of the context and that kind of thing but then we ended up sort of backing out of that, so we’re just sort of sticking with Test::Unit now, not to say we’ll be there forever, but it’s just such a huge amount of work that as long as your test suite runs, you know, after you have thousands and thousands of tests and having someone sit there and rewrite them all doesn’t really get you that much benefit if you compare it to maybe adding new features to the software.
Louis: Yeah, absolutely.
Cody: I think at the end of the day it’s a personal preference, and you end up with a nice app, the user of your application doesn’t really see which test framework you’re using they just want to make sure that it works, and I think you can achieve solid tested software with either framework or either testing library.
Louis: Alright, well that’s a wrap pretty much for what I wanted to talk about with regards to Rails, just touch on some stuff that I’ve seen float across the Rails community recently and I figured I’d take advantage of having you on the line to talk about that. Before we close is there anything you wanted to talk about, about what’s coming up with Shopify, is there anything, any hints you can drop as to what we might be seeing in the future?
Cody: We have a really big announcement coming up later in the month which I can’t say anything about but it’s really exciting. That’s why I was checking with you to see when you’re going to air the podcast because I was hoping I might be able to say something about it, but watching our homepage and the new site’s will probably catch it at the end of the month, so that’s really exciting, other than that just lots of exciting features, we’re always trying to improve the software for the users by releasing customer accounts for the merchants so that their customers also can have accounts at their stores, it’s a long desired featured.
Louis: Do you want to just elaborate a bit on what you mean by that?
Cody: Yeah, basically our opinion at the beginning was that the checkout would account-free, so you would go through the checkout, enter your address information and your email address and everything and then you wouldn’t end up with an account with the store at the end of it. So one of the things that wholesalers and others want or need is the ability to actually create a customer account, so we’ve developed a pretty sophisticated sort of CMS with the ability to actually create customer accounts, and so the customer can actually login to the storefront and manage, view their orders and history and that kind of thing, and then there’s a ton of new features that can sort of build off of that later on.
Louis: So that’s going to be important also for example any type of merchant that sells sort of digital products, I’m thinking of us here at SitePoint, if you want to be able to see all the ebooks you’ve purchased it’s something that’s really valuable if you have an account and can login and just see that stuff.
Cody: Yeah, exactly. And we’ve extended the Liquid templating right down to the customer area so the merchants can have their designer or they can customize the whole look and feel of the custom area themselves so that’s pretty exciting too. Yeah, aside from that I guess one other thing that’s pretty exciting which is coming up is we’re going to add an ability for merchants to have an entire mobile theme so they can basically develop, right now they have a theme which is the look and feel of their stores, but they’ll have a secondary theme that only presents for mobile clients, so that’ll be really nice.
Louis: Are you handling the user agent detection and the redirection on your end, is that something that the customer has any control over, is it something entirely handled by the Shopify backend?
Cody: So it’s more of like we sort of developed it at the backend level right now, so we’re still sort of figuring out exactly how to allow like how to perform the matching, so potentially you could — the use case we have now is a mobile theme but potentially you could just match any feature of a request like user agent or anything like that and present a different theme, so we’re still sort of it’s up in the air how we’re going to solve that problem but, yeah, potentially just selecting user agents and matching a theme up with it.
Louis: Right. Awesome. Well, we definitely look forward to hearing your big announcement, I wish I could have gotten you on the show a month or so later so we could have talked about it, but we’ll definitely be watching the Shopify homepage and the Shopify blog to see what’s coming up.
Cody: Yeah, it’s really super exciting. I really wish I could talk about it because it’s super exciting.
Louis: Yeah, it’s always unfortunate with those kinds of things when you’ve got something you want to talk about and you know you can’t. Well, thanks so much Cody for coming on the show today, it’s been a pleasure talking with you, very much appreciate it.
Cody: Yeah, same here thanks for having me.
Louis: No worries at all. If listeners want to be able to find you online do you have a personal blog or a Twitter account where people should go to keep up with you?
Louis: Alright, plain and simple.
Cody: And also one last thing to mention is currently working on a book called Rails 3 in a Nutshell for Reilly and so you can check that out at Railsinanutshell.com, and so we’ve got a Creative Commons version of the book so it’s targeting Rails 3 and has a full on Rails 3 book there, so you can check that out and hopefully it will be in stores soon as well.
Louis: That’s awesome. Alright, thanks again very much Cody.
Cody: Yeah, thanks to you as well.
Louis: No worries. Bye.
Theme music by Mike Mella.
Thanks for listening! Feel free to let us know how we’re doing, or to continue the discussion, using the comments field below.
Louis joined SitePoint in 2009 as a technical editor, and has since moved over into a web developer role at Flippa. He enjoys hip-hop, spicy food, and all things geeky.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
Form Design Patterns