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.
This is the first in a series of blog posts to introduce you to some of our talented Bees. In this post we focus on Stephen Connolly, architect and elite developer. Come meet one of our Irish Bees...
Stephen has nearly twenty years experience in software development. Just prior to CloudBees, he spent four years working on conferencing solutions at Avaya. He is involved in a number of open source projects including Apache Maven , Apache Cassandra , Mojo@Codehaus (where he has authored quite a number of Maven plugins) and Jenkins . He is a member of the Apache Software Foundation and on the Apache Maven PMC.
Stephen was one of the first non-Sun committers to the Jenkins project and contributed the weather icons. Stephen lives in Dublin - where the weather icons are particularly useful - with his wife and son.
Fun fact about Stephen: Having only started running in September 2012, he completed the Dublin City Marathon this year in 4:49:59, just ahead of the 4h50m pace runners!
What is your role at CloudBees?
I have many roles, from the humble developer to the arrogant architect to the pedantic timekeeper in our weekly engineering huddle call. I guess my most important role is reminding Sacha, our CEO, of his 2011 promise that he would pay for a company Christmas party in the Swiss alps!
What does a typical day look like for you? What are CloudBees customers like?
I usually stick to a traditional 24-hour day, though just for fun every autumn I try a 25-hour one and to balance things out in spring I try a 23-hour day. For kicks, I may try adding or removing a few seconds from a day in mid-June, but I guess the 24-hour day is pretty typical for me. I find I get more work done if I limit when I do my work, rather than letting it spread itself across the day. You just get the same amount of work done but in more elapsed time. After I've dropped my son off to play school I'll get the distractions out of the way: catch up on the 100's of emails from the different open source projects I'm involved in, read some of my Twitter stream, etc. I try to stop by 9am though, as otherwise you'll just suck up the rest of the day.
If there is something important that I am working on, I'll typically work in "dark mode" whereby I don't look at my email and stay logged out of Skype and IRC until lunch time. It is important not to have distractions. I usually send an email to everyone letting them know I'm going into "dark mode" though. Otherwise I use the first part of the morning to clean up any support tickets I've been left and ensure that things are ticking over. Just because you are working on one thing doesn't mean you can forget the other things.
Come mid-morning, I have to collect my son from play school and that 10 minute break is usually my signal to get some coding done. Normally I'll be writing code up until about 3pm. After 3pm my head will need to recharge so I usually drop back to sorting out any emails and handling support tickets before 8am Pacific time, when I get a chance to sync up with the West Coast Bees in the United States.
I'm not sure how I would describe our customers. They are a very varied bunch. By and large though I guess they are a smart bunch of people. It's rare that you get support tickets where you feel like screaming PBKAC. Usually you get a good description of the problem with steps to reproduce and some exploration by the customer to try and fix their own problems. I guess that's what makes handling our support tickets fun. You know you are helping other developers with hard problems...not managing people through a brain-dead scripted support process.
What are some of the most common mistakes to avoid while building an app?
The most common mistake is distracting yourself from actually building the app. There are so many ways you can distract yourself from actually developing:
"I'm optimising the build script" - seriously, you haven't even built the app and you are worried about shaving a few seconds off how long it is taking to build your non-existent app?
"I'm comparing frameworks" - STOP, right now. Write the top three choices you have on a piece of paper. You now have 30 seconds to pick the "best." That's the one you are going to use. ~30% of the time this will be the wrong choice, but you are going to have to have gone a fair amount of the way down the road with the framework to know why it is the wrong choice and chances are that the other two frameworks would also have been the wrong choice for just that reason.
Not having a CI system in place - if you don't have an automated build and test running off your source control...you are just wasting your time.
Not invented here syndrome - if somebody else has written a library to do X and you need to do X, just use their library...you can always rip it out later...after you have got your app built and working.
"Should we use feature branches or feature toggles" - just pick one...if it doesn't work for you, change your mind and pick the other.
After these, the next most common mistake is not listening to your body and mind when they are telling you to stop focusing on your problem. There are problems that your mind is ready to solve...and then there are the problems that your subconscious wants to focus on. For the latter type of problem, you need to quit focusing on and go do something completely different...go for a run...play with your children...some of my best ideas have happened while trying to answer my son's most important question: "But why do Wile E. Coyote's plans never work?"...it's only by stopping my conscious mind from focusing on the problem that my subconscious can have the freedom to find the solution.
Finally - the most important question of all. Vanilla, chocolate or some other flavor - what’s your favorite ice cream flavor and brand?
If there could be one and only one flavour of ice cream, that would have to be rum and raisin. Though a very close second is coconut. (I do like Bounty ice cream bars...coconut ice cream covered in milk chocolate.) Third place would have to go to the HB Carte d'Or cream and cherry ice cream whose name I cannot remember...and likely they have been discontinued.
You can follow Stephen on his blog .