First moment of truth in recruiting

I read this post and liked it:

So what does all this have to do with recruiting? A lot actually. An candidate will begin to form an idea of who you are as an employer over time, your employer brand, through articles, tweets, consumer ads…etc….maybe even a friend who already works there.

When she walks into your office for the first time, all this could come crashing down or on the contrary, it could live up to the hype.

Take a minute and think about all the candidate touchpoints from inital reachout to 1st day of work? What are they? What happens in each? Is your brand being reflected in each one? Do you even have an employer brand?

I also think that, for the recruiting process, all those details are very important, and there is a huge opportunity in those terms for recruitment. Of course, it should be sincere. Just trying to look cool does not make you cool.

Nice try, but no
Nice try, Tony, but no

4 years ago, I did two interviews for positions on Dublin with a difference of a few days.

My first interview was done in a Hotel’s bar, as I was just arriving from my plane. It was for a position on a small startup company. The ones conducting the interviews were technical people (CTO and technical lead). I had a phone interview with them a couple of days before. It was funny to each a sandwich while I was hearing about the role and the company history. I also had to do a couple of programming exercises on paper. They were interesting, and I felt like I was collaborating, not like doing an exam. After the interview (which was not very long), they said that they’ll be making me an offer, and send me the details by email (the CEO, which was in charge of it, was sick that day). So –they ask me — do you want to see the office? So I went to see the office. Then it was — do you want to see the new office? An I saw the new office. Then we went to the pub, when we were joined by a couple of people working on the company. After that, they invite me for dinner, and then we went to another pub. All the “post-interview” process was “off the record” (or so they said, and if I had done something really inappropriate they could have reconsidered, but it was quite relaxed). We talked about a lot of stuff, mostly not related to the job (including things like Star Trek and other nerd subjects) and everyone was quite smart and amicable. It was an enjoyable evening, really.

The second interview was for a more established company. The company was locate in a business park. I had an interview initially with an HR person, then with the manager, a technical interview (which included some coding), and then again with the manager. The technical interview was interesting, but the rest was a quite standard interview process. Nothing fancy or particularly bad, but a lot of the kind of questions that you feel are just not very relevant. At the end, the manager asked me if I’ll be interested in coming back to do another interview. Please note that I was coming from Spain, which mean two 2.5 hours flight, plus getting to the airport, etc, etc.

I guess I don’t really have to tell that I accepted the offer from the first company (Jolt Online) and I was quite happy while I was there (unfortunately, I closed two years ago. You know, startups). Probably that’s quite extreme example of this kind of “Wow factor”, and I think that bringing someone to the pub is not necessary for a job interview (Nice touch, though). But most of the interview processes are, well, quite dull.

For example, I had a lot of problems with phone interview times and reschedules. With scheduling interviews at reasonable times (meaning reasonable times for someone that is already working somewhere else). With interviews that are supposed to take 1 hour and take way more. With questions that requires “aha moments” and doesn’t look remotely similar to what real work looks like. Or with processes that are just one interview after another, with no clear view on when will it end.

They have never been deal breakers for me, to be honest. Most of the time you understand that it’s the way it is. But I think that anyone that tries to be careful about all those details and sincerely works on delighting the interviewees can get a huge advantage.

Again, this needs to be sincere. This needs to reflect who you truly are, or it won’t work. There are already to many places pretending to be cool, looking for ninja rockstar developers. But there are also a lot of nice places that are not showing their best (and real) face.

Being cool is really about believing in it
Being cool is really about believing in it

Some characteristics of the best developers I worked with

I had a conversation last November on the PyConEs, when I was on a conversation stating that I am working with truly brilliant people in DemonWare, and then someone asked me: “Do you have problems agreeing in  what to do? Normally great developers have problems reaching consensus on tech discussions”. My answer something like: “Well, in my experience, truly awesome developers know when to have a strong argument and they usually are ok reaching an agreement in a reasonable time”.

So, I wanted to, as sort of follow-up, summarise what are the characteristics that I’ve seen in the best developers I’ve been lucky to work with. This is not a list I am making on “what’s my ideal developer”, but more a reflexion on the common traits I’ve seen on my experience…

    • Awesome developers are obviously smart, but that’s not typically shown as bursts of brilliance, solving really difficult issues with “aha!” moments. In my experience, genius ideas are rarely required nor expressed (though they surely happen once in a blue moon). Instead, great developers are consistently smart. They present solutions to problems that are reasonable all the time. They find and fix typical bugs with ease. They struggle with very difficult problems, but are able to deal with them. They are able to quickly present something that will make you say “Actually that’s a nice point. Why didn’t I think about this?”. They do not typically present something ingenious and never heard of, but deliver perfectly fine working ideas over and over, one day after another.  Their code is not full of mind blowing concepts, but it is logical, clean and easy to follow most the time (and when’s not, there is a good reason). They are able to remove complexity and simplify stuff, to a degree that it almost look easy (but it’s not)
Normally brilliant people on real life do not come with crazy great ideas out of nowhere
Brilliant people on real life do not come with insanely great ideas out of nowhere
  • They keep a lot of relevant information on their minds. They are able to relate something that is in discussion with something that happened three months ago. They seem to have the extraordinary ability of getting out of the hat some weird knowledge that is applicable to the current problem.
  • While they have a passion for coding, it is not the only thing in their lives. They have hobbies and interests, and they don’t usually go home in the weekends to keep working on open source all day, though they may occasionally do.
  • They love to do things “the right way”, but even more than that, they love to make things work. This means that they will use tools they consider inferior to achieve something if it’s the best/most convenient way. They’ll complain and will try to change it, but deliver will be more important that being right. They have strong opinions about what language/framework/way of doing stuff is best, being that Python, Ruby, Haskell, PostgreSQL, Riak or COBOL, but that won’t stop them knowing when it’s important to just stop arguing and do it.
  • They are humble. They are confident most of the times, but far from arrogant. My impression is that they don’t think that they are as awesome as they truly are. They will want to learn from everyone else, and ask when they have questions. They will also catch new ideas very fast. They are also friendly and nice.
  • Communication is among their best skills. They are very good communications, especially, but not limited, about tech issues. They may be a little social awkward sometimes (though this is not as common as stereotypes portrait), but when they have the motivation to express some idea, they’ll do it very clearly.
  • In some of the truly remarkable cases, they’ll be able to fulfil different roles, when needed. I mean different roles in the most broad sense, basically being able to be what’s needed for that particular moment. Sometimes they’ll have to be leaders, sometimes they’ll be ok being led. They’ll know when a joke is the proper thing to do and when to remain formal. They’ll be the person that helps you with a difficult technical question, or the one that will tell you “you’re tired, just go home and tomorrow it will be another day”
  • And they’ll have a great sense of humour. I know that almost everyone thinks that they have a good sense of humour. That’s not totally true.

Again, this is sort of a personal collection of traits based in my experience and on what I consider the best developers I’ve been honoured to work with. Any ideas?

My concerns with Bitcoin as a currency

Today I retweeted this brilliant tweet:

So, to start the year, I’ve decided to share some of my thought on the bit coin issue, and some of the problems I see. As I am not an economist, I’m not going to go into the deflation / long term scenario. For what I know, that’s very bad, but as that can lead to a deep economic conversation, one I don’t really want to get into, as I lack of the required knowledge, I’m going to concede that. Let’s imagine that bitcoin, from the macroeconomic point of view is absolutely sound. Even in that case, my impression is that it is not very safe from the user point of view. These are “social problems“, more than “tech problems“.

(I am also going to assume that it is cryptographically sound, as I don’t have any reason to think is not)

One of the main problems the system have is that you are entirely on your own to safe your bitcoins / wallets. I guess some people don’t perceive this as a “real problem“, but as someone that can be considered tech-savy, the perspective of a virus, a hardware problem or a missing password that can make disappear my money forever  is really worrying. Even a common problem like transferring money from a dead person (unfortunately, everyone gets to that point) can be impossible if not planed in advance. A Bitcoin wallet (which can be reduced to a private key, a sequence of bits that should be secret) associated to all your Bitcoins can be gone or inaccessible in seconds. Accidental deletion, hardware problems, a malicious virus … Yes, there are countermeasures to this, like backups (if you’re reading this and you don’t have a backup in place, PLEASE DO), but the sad truth is that most of the people out there does make regular backups.

Gone in 10 minutes
Gone in 10 minutes

The single most important quality of any currency is trust. I trust that, if I have money in Dollars or Euros, they are not going to be vaporised for a stupid reason like a failing hard drive. All you need is some horror stories of people loosing all their savings on Bitcoin because there is a virus out there, and non-tech-wavy people will be scared, loosing trust on the currency.

Of course, this scenario can be avoided by an intelligent move. Hey, I don’t have my Euros with me in cash because of these problems. I put them in the bank! Awesome. I can move all my bitcoins to a bank, and interact with my money in the usual way, like credit cards, getting some from time to time from the ATM (in this case, a virtual online ATM). But, in this case, what’s the point of  Bitcoin? If I relay on a bank, I am using the currency exactly as I am using Dollars, Euros or Sterling Pounds (and the banks will charge accordingly). It could have some small benefits, like getting the money out of the bank to transfer it to someone else in an easier fashion than with a traditional currency (especially for small amounts), but I doubt it will be different enough or advantageous enough to justify using Bitcoin instead of regular currencies for most people.

I must say that Casascius coins are gorgeous
I must say that Casascius coins are gorgeous

Another insidious problem I can see is privacy. Bitcoin is pseudonymous, meaning that all the transactions are public, but there is no association between a wallet and someone. I don’t see that as reassuring, as getting to know that wallet A belongs to person B is definitively not a extremely difficult operation. In case Bitcoin was popular, there will be a lot of transaction, and most people would use a couple of wallets at most, for convenience. If you need to send goods to someone, for example, it won’t be that difficult to associate the wallet that pay for the goods with the person receiving the goods. Again, this can be obscured and some people will use complex schemas to hide who they are, but in a typical operation, I’d say that most people wouldn’t care too much about it, just as they don’t care at the moment with a credit card.

Ok, so you manage to know that person B is behind wallet A. Now you can track all the activity of wallet A (because it is public) and use it for whatever you want. A lot of wallets will be simply obvious what they are (known shops), so for example that will be a great way of  “directed marketing”. For example, Amazon could know that you have a contract with Vodaphone that looks like a mobile contract. Now you’ll get “directed information” of all the million offers that Amazon has about mobile products. Great, now you have more spam in your inbox. The data mining implications are incredible.

Of course, any purchase that you don’t necessarily what to share with the world can be exposed. And it’s there, publicly available, forever. If you move to a different wallet and move your bitcoins around, hey, that’s registered, so you can’t hide unless you transfer all the money out of the system, and then exchange it back, to a new wallet(s) that, this time, hopefully won’t be discovered. Plus all the inconveniences of doing so, of course.

Of course, there are ways of dealing with it. Using a lot of wallets, circulating the money among them (and hoping this is safe enough, as there could be advanced methods of detection for common uses). Being aware of what information is being shared. But, seriously, are we expecting everyone that just wants to use a currency to make common operations to add all that overhead and knowledge? I think that’s asking too much.

As the objective of a currency is to be used as means of payment, to be exchanged often, I think that these problems are in the way of considering Bitcoin as a currency replacement that can get some real traction in the world. The potential risks are quite big, and not well understood for a lot of people at the moment. Of course, these problems are at the moment less important that the fact that Bitcoin is used at the moment as an investment / speculation product, making the exchange rate so volatile that using Bitcoin as a currency is currently unviable. But assuming that Bitcoin can leave this state behind, I still see these issues in the way of becoming a viable currency.

I am not an expert in this subject, so if I am mistaken at some point, let me know. Comments welcome 😛