Here at CloudBees, we have a lot of really talented developers. You may or may not have interacted with them, but they work hard behind the scenes to keep the CloudBees Platform as a Service (PaaS) up-to-date with all the latest and greatest technologies, gizmos and overall stuff that makes it easy for you to develop amazing software.
For our last Meet the Bees blog, we were down under with Michael Neale. This week, we head to the United States to catch up with Ryan Campbell in Austin, Texas.
Ryan has 12 years of development experience, most recently at Debix, JBoss and Red Hat. While serving as QA manager at JBoss, he and his team built one of the largest known Jenkins grids. Realizing his real passion was programming, Ryan returned to the trenches, but retained his commitment to software quality and automation. He lives in Austin, TX with his wife and two daughters.
Who are you? What’s your role at CloudBees?
I’m an engineer and architect responsible for our DEV@cloud Jenkins service. It’s my job to keep the builds running for several thousand Jenkins instances, develop new features for DEV@cloud, and support our customers.
What does a typical day look like for you?
I’m really interested in hearing more about these ‘typical’ days you speak of, because I don’t think I’ve ever encountered one. ;-)
My days are a good mix of operations, support and development. In the morning, I review any support and operational issues logged by the APAC and EU teams and prioritize any fixes or improvements. We use OpsCode Chef to manage host configurations, so anything I do usually results in a cookbook deployment of some kind.
What I like about my job is the variety of contexts that I get to work in. One issue may require firing up a Java debugger to understand a bug in a Jenkins plugin, while another may require using strace to debug a hung Linux process, and another may involve analyzing intermittent issues with an AWS ELB. I love learning new things about complex systems and thinking of simple fixes to the problems we encounter.
The other half of my job involves designing and developing new features for DEV@cloud. I get to work with some fantastic colleagues, the work of whom I’ve admired for several years. There’s little more satisfying than a hard-core technical discussion on a Google Hangout with some Very Smart People.
Do you have any advice for someone starting a career in software development?
I think the most important thing you can do is ship real software to real users. If you’re just starting out a career, the best way to do this is with contributions to open source projects. The most important thing is to build a reputation for excellence. When I started my career, I think most people did this with degrees and certifications, but it seems like these days, the best venues for this are probably GitHub and Stackoverflow. If you can demonstrate that you are smart, talented and generous with that talent — that’s attractive to people.
What are some of your best tips for developing or testing apps?
Use Jenkins ;-) More seriously, don’t delay automation. Learn to hate mind-numbing tasks, and get angry with tools and processes that waste your time. Channel this anger into new and better tools which save you time. Right now, my laptop is only using 3% of it’s CPU capacity. To me, that’s a wasted resource. Why hasn’t someone written a tool to help me write this blog post and put some of that CPU to good use!?
If you could eat only one meal for the rest of your life, what would it be?
Follow Ryan on Twitter and learn, first hand, about new developments on the Austin breakfast taco-and-coffee (dare we say Java?!) scene.