Interview with Giles Bowkett

Giles Bowkett

Giles Bowkett

Rails Freelancer Giles Bowkett

We kick off Railsfreelancer.org with a bang! The incredible talented Giles Bowkett (gilesbowkett.blogspot.com) was the first one who granted us an audience, despite his intense schedule. So without further ado, here goes the interview!

Who are you and what do you do?

My name is Giles Bowkett. I’m a Rails developer, an actor, and a musician. I live in Los Angeles, a beautiful city with a terrible reputation. I’m working on Rails apps for two awesome clients in the entertainment industry – I think I shouldn’t say who, at least not yet, but big names – and I’m also writing a book called “Teaching The Robots To Sing” about how to write Ruby code which writes its own original music.

How did you get started programming?

I took a class on BASIC when I was 11 years old. Then I forgot all about it until I was 17. I was working a summer job repairing air conditioners. I was apprenticed to an older guy who spent a lot of our “working” time taking naps. So I borrowed a friend’s book and taught myself Pascal to keep my brain occupied. I never ran a program in Pascal, I was just into languages and my favorite language, Ancient Greek, would have required me to bring several large books to the air conditioning repair job, which would have made people suspicious. So I wrote a few programs in Pascal in a paper notebook and forgot all about it for several years. Then I was living in a ghetto, trying to be a screenwriter, writing really bad screenplays, and I got into the Web because I was already really into Usenet and AOL. This was like 1994 or 1995. I learned HTML, moved to San Francisco, and rapidly became a developer.

How did you get starting using Ruby and Ruby on Rails?

I was living in New Mexico and a friend asked me to take a look at Rails to see if it was any good. She had a programmer who wanted to build a site for her in Rails, and she didn’t care, as long as the site did what her client wanted, but she hadn’t heard of it and wanted a sanity check on it, basically. I was like, wow, this thing is awesome, and I went to the first Rails conference, which was Canada on Rails, actually – I didn’t make it to the first RailsConf, because tickets had already sold out, but technically Canada on Rails was a couple months prior.

I did Rails work for free for a little while, working a day job as a Java developer, which I hated, and after a few months I was good enough to start charging, so I did, and became a freelancer. This was back when Rails was considered a gamble for corporate projects, and it was in an area where there wasn’t much of a tech industry.

What part of creating websites do you like most?

I like the satisfaction in solving difficult problems and in creating fluid workflows and UIs. But I’m actually much more interested in writing code than I am in creating web sites.

Do you outsource work you can’t do yourself or don’t like to do?

Not really, no. I’ve toyed with the idea, and I certainly refer potential clients to friends when I can’t take on new stuff myself, but typically the only people I’m confident I want to work with are too expensive for that approach.

If so, how do you find the right talent to work for you?

Well this part is easy. I find them through the open source community. Former co-workers, friends I’ve met at conferences and gotten to know through Twitter, stuff like that. Really I wrote a whole series of giant blog posts about this and sell a video about it too. Blatant self-promotion, here’s the URL: Programmers – What to do if you get fired

The long story short version is that if you make something awesome people will find you wherever you are, and the best way to make something awesome is to make lots of stuff. Even if your first things suck, just rack it up to experience and go on to the next one, as Jay-Z would say; just keep making new stuff. If you keep making new stuff all the time, and you look for ways to do things you haven’t done before, or ways to do the same thing better than you did it last time, some of the things you make will start to impress people and/or prove real useful to them, and at that point work will come to you.

How did you decide that it was time to freelance?

I’ve always been a freelancer, really, with the exception of a few 9 to 5 jobs that never really lasted very long. I started out as an office temp; I dropped out of college and got my own apartment when I was 19. My dad was an entrepreneur, and I just find that way of doing things very natural.

What are the pros and cons of being a rails freelancer?

Well, for me, honestly the biggest downside is that it’s not always challenging. A lot of Rails work is just, here’s a bunch of shit you’ve done before, now do it again. When I can find ways to push myself to do it better than I’ve done it before, I can get into it, but there are times when I only want to work on stuff I can believe in wholeheartedly. The projects I’m working on right now are both very interesting, and both tie in very well to my interests as an actor, and indeed as somebody who does a lot of social media marketing, so I’m really happy about that, but in 2010 I spent most of the year making money via my blog, just by making videos and selling them, running ads, stuff like that, and it was actually a huge relief not to be working on boring-ass bullshit projects, which I’ve sadly had to do before, at times.

The other enormous downside is that doing freelance work, although it can be very profitable and a very nice lifestyle, has you investing your time and only getting money in exchange. That’s actually very foolish, because if you run out of money, you can always make more, but everybody runs out of time sooner or later, and when that happens, it’s all over. To be less morbid, you’re creating value, and it’s wise to own that value. So it’s actually a lot smarter to build something you can own, and/or to work in an industry that is interesting to you for its own sake, because then at least you’re building knowledge and relationships you “own” to some degree.

The upsides: the profit, the lifestyle. It can be great money and there’s a lot of working from home or cafés, and even when you’re in a client’s office, they tend to make you comfortable, if you’ve done well with marketing yourself.

What are your strengths as an rails developer?

I understand the Web very thoroughly, having started out writing CGI scripts before Perl even had a CGI library, so I can appreciate Rails pretty much top to bottom, although there are definitely a lot of people better versed in the framework’s internals. I’ve had to do complicated SQL back in the day, and although I hate to, I can dig up that skill set from the back of my mind if I have to. This is often useful when looking at a site with performance issues, or preventing performance issues from occuring in the first place, when doing anything unusual which runs that risk. I can do design, I have a passion for usability, and my knowledge of “advanced” (obscure) features like lambdas is pretty damn good. My biggest strength is probably my imagination; some of my projects have really surprised people, in terms of what I was able to get Ruby to do. Also I used to have a passion for AI, and I learned a lot during that time. I’ve got a very unfinished automated refactoring project which can actually do almost everything required to turn repetitive JavaScript into wrapper functions, for instance, with very little human involvement.

What are the necessary skills to be a great rails freelancer?

Being a Rails dev is not really just about learning Rails, it’s about an entire ecosystem. You need to know New Relic, Heroku, and GitHub, for example, as well as BDD, TDD, caching, SQL, OOP, refactoring, functional programming, jQuery, semantic HTML and a few other things. The smart thing is to acquaint yourself at a shallow level with all these things first off, and then find interesting people who are working on projects in these areas, follow them on Twitter and/or GitHub, read their blogs, read their code, form opinions about their work, and then find ways to test your opinions and see if you’re wrong or right. You want to be wrong more often than right, because if you’re right more often than wrong, you might think it means you’re super smart, but it doesn’t. It means you’re playing it safe. Rails changes way too fast for that to be any use to you.

Best way to be up to date as a Rails dev is watch every video from PeepCode and Railscasts. Railscasts is good and free, and PeepCode is awesome and affordable.

What were the most interesting projects you have worked on in the last years?

The two projects I’m working on right now in the entertainment industry are absolutely thrilling to me. I worked on another very very big site in the entertainment industry which I can’t talk about. (This industry is extremely image-conscious.) All these entertainmentprojects excite me because I’m an actor and a musician as well as a programmer. In terms of the code, I enjoy when I’m working with really good people. I got to work for ENTP for a year, with so many great programmers it was like being asked to join the Justice League or the Avengers or something. I’m working now with Pat Maddox on one of my projects, which is also awesome.

My Archaeopteryx project, which is the foundation for my upcoming book, is really exciting and I’m glad to be getting back into it. My automated refactoring project is likewise a thrill, although writing code which fixes other people’s code is so insanely meta that I worry what it might do to my sanity. I got to do some AI work for a client in the entertainment industry but unfortunately (you may notice a theme) I can’t talk about that.

Wait, actually, I did talk about that on my blog: How To Annoy Co-Workers With Extremely Lazy AI

I’m also pretty proud of several of my miniapps, including Hacker Newspaper, Minimal Bitly, Clueful Google and Minimal GitHub. None of these are very sophisticated but I think they’re all very useful.

ALSO, one of my favorite projects ever, I got to rebuild an internal web app from the ground up, at a large corporation, and I used it to restructure the way these two departments in the corporation communicated with each other. These groups were constantly bickering before my web app, and they made peace by using it. The secret was just looking for ways to make both sides happy.

Which ways do you use to acquire customers?

Promoting myself on the Web and at user groups and conferences. Asking friends for referrals. Answering ads online. In that order.

Which of these is the best and why?

Self-promotion is best because you do it by creating things, giving them away, and getting people excited about them. You lead with generosity and it comes back to you. Your worst-case scenario is you have something that didn’t exist before.

Which tools and webservices do you use?

Already mentioned Heroku, GitHub, and New Relic. I also love ScreenFlow for screencasts, Pulley and Fetch for selling screencasts, Keynote for presentations (both on the Mac and the iPad), Numbers for keeping organized, Pixelmator and Acorn for graphics, and my own fork of ENTP‘s time-tracker XTT, for keeping track of hours. (I don’t even think ENTP uses XTT any more, and to be honest my fork is basically just the Rails Machine fork, plus more vibrant colors and some extremely small edits, but I actually get a lot of mileage out of it.) For passwords, I used to use my own gem (gem install password), but 1Password is way better, and it runs on OS X as well as iPad and iPhone. For IRB, I use my own gem which provides all kinds of useful additional features, including the ability to hop into vi or emacs and still be in IRB, which I wrote years ago at a Ruby conference with Greg Brown.

One more thing: Keynote + ScreenFlow is how I do my videos that I sell on my blog, but it’s also an absolutely fucking fantastic way to communicate with remote clients, especially when you’re using Keynotopia templates for design mockups. I put unlisted videos on YouTube, so my clients can see them and share them with anyone they want, but they’re still essentially private since they’re invisible to YouTube searches and browsing.

For which webservices or other services do you pay online?

GitHub and Slicehost (which is where I put my various experiments).

Windows or Mac?

That’s the craziest goddamn question I’ve ever heard. You mean Linux or Mac, and the answer is both, but more Mac than Linux.

What are your favourite ruby gems?

Honestly ever since GitHub began I stopped thinking in terms of gems and started thinking in terms of repos.

Are you actively involved in open source projects?

Not really at this time. I write a lot of stuff which I release as open source, and I make small contributions like once a month or something.

Where can people find more information about you?

Tags: , , , , , ,

{ 2 comments to read ... please submit one more! }

  1. Demetrius Olsen

    Thanks for an inside look at an inspiring and happening Rails developer. Nice to know someone still cares about more than making a buck – “…there are times when I only want to work on stuff I can believe in wholeheartedly.”

  2. Awesome post!! Glad to know more about a fascinating person in the Ruby world.

    Do modify the web-site so that the date & time of the blogpost shows up somewhere in the page.

    And looking forward to more interviews and resources for freelancers in the future!

{ 0 Pingbacks/Trackbacks }

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>