Dirkjan is experienced Rails developer and active Ruby community contributor.
I got my first thing with Ruby actually through friends. They started a new product at an innovative company and needed some additional hands. They asked me if I could help out and that's how I got into my first Ruby job.
I also see we get the best people at our company through people's network, not through recruiting, so use that knowledge to your advantage when looking for a job.
Where, and how, do you search for work now? Can you give me some advice on the best ways to find Ruby related work?
Well, I've been in the lucky position that I've never really looked for work myself, it mostly came to me. During my last university years I worked freelance on the side and had enough work from what I got offered from various clients.
After graduation a company I had done freelance work for asked me whether I would want to work for them in a new product they were going to launch.
What advice would you give a Ruby beginner without any projects ready to show?
Get yourself noticed is probably the most important thing. Nowadays it's very easy to prove yourself in the public area and personally I see that as probably even more important than a resume when I look for someone. Doing things like this also helps, I think a lot more people in the Ruby community now know you which can help a lot.
What have you learned in the past about working with Ruby, clients, how to find good clients, etc.? Many people dream about changing the past for a better present moment ... anything you want to share?
I don't really know what to tell my past self, my biggest problem has always been that I find so much things interesting. If I would advise myself to do something else, I'd probably advise myself now to do something else again. What I do know is that where you think you'll end up, is never where you actually end up. My current work doesn't relate much to my university graduation subject, but I wouldn't want to trade it. I like the fact that I have done different things and not just only pure software development.
What books, or sites, or recipes, or whatever else you can recommend (they may be about productivity, or negotiation, or thinking - anything you think will help me live a better life as a programmer)?
Read stuff non-programming related. Get to know what drives people and how they think. I think it's really important to know what for example drives a customer and how they think. This will allow you to build better products for them. I often watch inspirational TED talks, or read a blog like Freakonomics.
I of course also follow a bunch of Ruby blogs, but be sure not to limit your views to just programming, or worse, just Ruby.
How much time per week do you work? How do you keep yourself productive and focused?
Officially I have a 39 hour work week, but our company works according to what your results are and not how much time you put in. This principle is explained in this in my opinion interesting TED talk, which I think companies should adopt a lot more.
So for me hours don't matter at all, it's all about the final result in the end. I might have weeks where I work more, and also weeks that mostly consist of meeting with clients, implementing our product or discussing better integration with partners.
If I feel like I need a day off, I take it, since listing to yourself and your body is the most important thing to make sure you don't burn out quickly. Working until late at night doesn't work for me and results in bad quality which is more costly in the long run.
I generally use the pretty common setup of a Mac, Textmate, Git, etc. My computer workspace pattern is pretty insane, I have the habit of never closing a window so pressing the exposé key on my system is always a good way to scare colleagues. I guess the clutter doesn't bother me, since I usually know my way blind around my system.
How do recommend becoming a successful and profitable programmer?
Love what you do is the only way to be a good programmer at all. If you try to work on things you don't like, no matter how much they pay you, it will burn you out. So profitable really comes second for me, fun is way higher on the list.
Living without a decent pay is of course not fun either, so finding a decent place and also pointing out why you are an asset is very important. If you ever go to a job interview, realize that an interview is not only about whether they want you, but more important, it's about whether you want to work for them.
Like I already said, getting your name out is also important, so contributing to open source projects is a great help too. Whether it's hardcore hacking or documentation contribution, everything matters. This will also greatly increase the perceived successfulness by other people and your market value.
What should every programmer know?
Everything you write is crap, so always try to improve yourself. The moment you feel that you're not improving you should ask yourself whether it's still your passion. Never stop learning and always look for new ideas and play with them.
Also realize there is way more than programming and that building systems is almost never the goal in itself. Developing systems is about making life for people easier and those systems should incorporate that feeling.
Be passionate about your work and believe in what you deliver.
Please write your thoughts about being a programmer, fun and happy person.
I want to keep doing this work until I feel like I'm not really passionate about it anymore. Hopefully I've found a new passion by that time. Besides getting things done, work should also be fun and there should always be room to laugh. For me, working a job 9 to 5 five won't make me a happy person in my personal life either, so I try to be happy with both those aspects of my life.
Hopefully this helps, good luck!
Kind regards, Dirkjan Bussink
Thank you for your time and attention.