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.
« Kohsuke Kawaguchi presenting at one of the 1,000,000+/- conferences that he has spoken at!
For our last Meet the Bees blog, we were in France with Nicolas De Loof, support engineer. This week, we head back to the United States to catch up with Kohsuke Kawaguchi, CloudBees newly-named chief technology officer, in Los Altos, California.
Kohsuke is the founder of the open source Jenkins project. Jenkins is a popular continuous integration (CI) platform, used by thousands of organizations around the world. CloudBees leverages Jenkins in two ways: by providing additional functionality and professional support for open source Jenkins and by offering “Jenkins in the cloud,” in our DEV@cloud development services. DEV@cloud is part of the CloudBees Platform as a Service (PaaS).
Kohsuke is a well-respected developer for founding and leading the Jenkins project. He is also a popular speaker at industry and Jenkins community events. He’s often asked to speak about his experience and approach in creating Jenkins; an approach that has enabled Jenkins to become a widely adopted and successful community-driven open source project. The principles behind the Jenkins community – extensibility, inclusiveness, low barriers to participation – have been the keys to its success. Kohsuke’s sensibilities in creating Jenkins and his deep understanding of how to translate its capabilities into usable software have also had a major impact on CloudBees’ strategy as a company. Before joining CloudBees, Kohsuke was with Sun Microsystems and Oracle, where he worked on a variety of projects and initiated the open source work that led to Jenkins.
Who are you? What is your role at CloudBees?
I’m the creator of Jenkins, and my role at CloudBees is a little bit of everything in and around Jenkins. Sometimes I hack on open-source Jenkins core and plugins, while trying not to fail Jesse Glick’s razor-sharp code and spelling review. Sometimes I hack on our value-added Jenkins Enterprise by CloudBees. Sometimes I help DEV@cloud by patching Linux kernel modules and writing Chef recipes while fooling Ryan Campbell into believing I know what I’m doing, and sometimes I help handle some of the tricky support tickets, which I really cannot complain about because it’s all my fault, if you think about it.
I recently took on the role of CTO, which means I now have an opportunity to help make everything a little bit better. Ultimately, I’m just a guy who likes to create stuff. Mainly in software, but also in LEGO, cross-stitching, electronics, etc.
Why did you choose to work on continuous integration?
Mostly by coincidence.
I like creating stuff, and as such, I have a large number of open-source projects. Sometimes I just come up with what I think is an interesting idea, and I just go write it.
Jenkins (then Hudson) was just another such piece of software. I wanted to write a web application, and I had an interesting idea for a web framework (this was back in the day of the Cambrian explosion of Java web frameworks), and perhaps most importantly I was a guy who breaks the build and I wanted to have software that catches my mistake before others do.
It somehow got more traction than most of my other software projects, and so I kept at it. Unlike some other people I genuinely enjoy making users happy one person at a time, fixing bugs one at a time, and gradually making the software better. And thanks to the amazing people who became a part of the Jenkins project, it eventually turned out to be a very popular piece of software.
What is your best memory from working at CloudBees?
While I do a little bit of everything, what I really enjoy the most is those times when I get to concentrate on something without getting distracted into anything. I sometimes do that all on my own, but it’s more enjoyable when you are doing it with another engineer.
Ryan has been the biggest victim of this. At one time, I had him kidnapped for two weeks to hack on DEV@cloud mansion. I picked him up from the hotel in the morning, hacked the code all day in a conference room in our Los Altos office until pretty late, then dropped him back to the hotel. The amount of progress we were able to make was amazing. It was pure joy to have the face-to-face bandwidth with someone smart whom I normally work remotely with.
I’m hoping to do more of such sessions with Ryan and others in the future!
What else do you make other than software?
I’m a big LEGO fan, and while I’m not as talented as other LEGO builders, I make it up by calling upon my ability to program. One of my recent projects was to build an accurate scale model of Earth by reverse-projecting a satellite image of Earth back onto a sphere, and deciding individual brick colors from there. Spending time with my daughter while having fun with my hobby at the same time is a wonderful thing, too.
« Lego Earth project
I also enjoy electronics. I’ve done a little bit of this back in the electronics club in my junior high school. It was hard back then, but as electronics basically became programming micro-controllers, I started doing more of it. After all, I know a thing or two about writing software. I’ve built a growing orb (video) a while back, and since then I’ve used Raspberry Pi to build a large LED board with help from my daughter and a borrowed power tool from our SVP Steve Harris. It even comes with a custom designed PCB board, which was a first time I did it.
Another hobby of mine is cross-stitching, which is a very simple form of needlework. This is a hobby I picked up from my wife, and it’s generally a girly hobby. People normally stitch something cute, but I usually like to stitch 2D pixel arts from old video games (more pictures). There’s also an interesting mathematical aspect to it —- you do cross-stitching for a while and you become capable of filling arbitrary continuous region of the same color with a single minimally long thread. For some time I have been hoping to “prove” that it takes no more than absolute minimum length of thread by writing a program that computes the precise movement of needle, but so far I have been unable to do so.
Needle-less to say (sorry, couldn’t resist!), the cross stitching population and the math/programming geek population do not really intersect, so I have yet to find a single person who I can really talk about this. When I find such a person, that’ll be the best day in my life.