How to integrate your AWS event-based system with external/legacy systems using RESTful APIs
I've written about hiring before, from the perspective of a non-hiring engineer.
Since then, over the last 2.5 years, I've had the opportunity to be a hiring manager, and to be responbile for hiring my team.
The result was that I hired 7 engineers over 2.5 years, while receiving 2 resignations. I also chose to re-org the structure, and moved a few team members to new teams. I also had to get involved in firing one guy.
This is my learnings
Go, go, go....
At first, I started out fear-less - 'just go out an hire'. I quickly cut down the existing 50 page spec to 2 pages, and sent it out via LinkedIn, forums and User Groups. Thats how I came across the first few guys
After that, it slowed down. I soon learned hiring cant be done rapidly, atleast not in a large corporate. Too much process, red tape, etc. But most importantly, its the fear of getting it wrong. Make the wrong choice, and you stuck with it for a long time.
Different....but not too different
I soon realised its not only about technical skills, but more importantly, its about culture. Will the new guy have the same mindset, work-ethic and goals as the rest of the team. Its tempting to think you have the 'perfect' hire. But nobody is perfect. Its just like marriage - all based on social variables. The guy might be perfect in most stuff, but struggle with others. He might hate something, and constantly wine about it, lowering team-morale.
I'm not at all suggesting we want people who all think the same way. Not at all, you want diverse thinking and experience, and people who want to do things differently. But....you also dont want 'difficult' people, who are difficult for the sake of being difficult. This is not the same as Proactive People
I included most of the team in the interviews, and let them decide who to hire. When we had a shortlist of candidates, one of Seniors guys came up with a scenario-based interview, in order to focus on what strengths we were looking for.
I hired 7 engineers over 2.5 years. Of those, six were the best choices anybody could have made, and one, the last one, was atrocious. I made a really, really bad decision. It was an emotional decision, becaused one of the Seniors has just resigned. I made a rash decision, and paid dearly for it. We hired a complete mis-fit, both technically and socially.
Be a bit like Google, and make the process objective and score-based. Include a minimum of 3 rounds, but dont go overboard like Google and make it 7 rounds, and only based on data. At some point you need to hire with your heart, but if at any point you think this is a bad hire, then dont hire. Its far better to have false negative (dont hire the right person), then a false positive (hire the wrong person)
I also love Amazon's Leadership Principles, and I think more companies should be hiring like that.
Some good reads:
[https://news.ycombinator.com/item?id=2557672]( Why Google's hiring process is broken)
[https://news.ycombinator.com/item?id=1691532](Exactly. They've also said that their high false negative rate is why)