Archive for the 'Staffing' Category

“Distributed Systems” is the new black

“Distributed Systems” is the new black

This shouldn’t be news to a lot of people in Bay Area technology.  In fact, one could have made this declaration a few years ago.

In case you missed the free shuttle to Google, this is where the future is and where the future should appropriately be.

What are Distributed Systems?  You can look to Wikipedia or many other sources and the explanations will be numerous.  In fact, it appears the term has been in use since the 1960’s.  Who would have thought it – a bunch of engineers, like my father, drinking martinis and smoking Chesterfields while creating some distributed system in a lab at IBM back in 1966?

Why is this important?    Any good recruiter knows that elite engineers want to work on sexy projects.  This does not apply to everybody.  There are those engineers who wish to make the most money via base salary and those that want to work 8 hours/day and go home and have a life outside of work.  This applies to those engineers who love code more then money – at least until they are acquired – and are at work at 1am when the rest of us are ideally in deep REM sleep.

Distributed Systems are sexy.  They are sexy because the idea of writing code that makes 1000 servers hum along in perfect harmony is like reading Bruce Catton to us History geeks.  Writing code that solves very complex problems in areas such as performance and scalability are challenging and elite engineers know that most problems can be solved by a series of 1’s and 0’s.  All they need to do put in the time and effort and these things will happen.  Distributed Systems, because of the vast amount of moving parts, require code that is smart.  Algorithms are smart, and really elite engineers like algorithms, along with math, breaking things, and playing devil’s advocate.

When you talk to a software engineer who tells you he or she works into the wee hours of the night this is often what they are doing.  In speaking with software engineers, I have heard it is this drive towards solving a problem that is what keeps their engines burning.

Editors Note:  I am not an engineer so please excuse the lack of technical granularity.

So, recruiters, it behooves you to find some customers who are solving problems where that customer has some sort of distributed back-end system/s as part of their solution.  When you recruit that IIT-Bombay CS grad or Wisconsin-Madison Masters in Math and CS I can tell you that this is very likely the area in which they would like to work.  It would even behoove you to find multiple customers, and ideally at least one that is using Java and another using C++ as the primary language.  You will find other ancillary technologies are also used and required as these systems tend to call for more then one language.  You might see PHP, Ruby, Python, C, etc.  In many cases Python, PHP and Ruby are the primary back-end technology.  You will also find data, or rather “Big Data”, a primary component of any architecture.

I may be Captain Obvious here, but I am often astounded by how many recruiters, both young and old, do not have a tactical recruiting plan.  You should always have a few sexy customers in an area that is “hot”.

Think of it like always having a black sweater on hand.