Category Archives: Recruitment

Top 5 Things To Get Ready For Your Job Search: NUMBER ONE, Work Out What You Want To Do

Whether you’ve got a job right now and you’re looking to take your next career move, or whether you’re beginning your search from a standing start, here are my top 5 things that are going to help you get ready to begin your search.

Getting ready

This is aimed at software engineers looking for a permanent position (PAYE), most of the things I’m talking about will be applicable to day-rate contractors, but not 100%:

NUMBER ONE: Work Out What You Want To Do

As anyone who’s recently finished looking for a new job will tell you, it doesn’t take many conversations to work out that you actually need to have a really good understanding of what you want to do next before you start to talking to anyone.

The key point here is that for the hiring managers the interview process is all about risk. Working out which candidates are going to be worth interviewing from their CVs is an obvious example (which candidates looks like they’re least likely to be a waste of time interviewing). But for the hiring manager it isn’t just the time spent on the initial search for the right candidate, what’s also at stake is the huge amount of time that stands to be wasted if the candidate they hire never really wanted the job in the first place. If the successful candidate goes on to leave after the first couple of months, then that’s potentially hundreds of hours of time wasted, involving training, mentoring, showing them around the company, including them in future plans, wasting the hiring manager’s time, their colleague’s time, their team’s time, their boss’s time…, reputational damage, their judgement and competency questioned, a huge amount of budget potentially wasted, IP at risk, etc, etc, etc.

Which means that during an interview when you’re asked “what kind of job are you looking for” or “what are the main things you want to get from your next job”, you’re going to want to have worked this out already. Because the man who walks into an orange fruit shop and starts talking about other fruit they’ve had in the past that they liked, and “that they really don’t mind what kind of fruit they buy because they’re just hungry”, or even that “actually their most favourite kind of fruit they ever had was an apple, but as they’re here now they’re happy to consider oranges”, isn’t going to go down as well as the man who confidently tells the shop keeper “I’m an orange-kind of guy. I like oranges and I’m here to buy oranges.”

So, going into the job market armed with nothing more than a bunch of vague ideas about what you kind of job you’d like to have is not going to help you.

Operational Hypothesis vs Re-iterating

Have a good think about it, talk it over with someone else, and then be comfortable with the idea that you’re probably going to refine your idea of what you’re looking for after you’ve started your search, but time spent working it out before you begin will be time well spent.

Some Food For Thought:

To help get the brain juices flowing, here are some ideas. You could say a Software Engineer can go in 1 of 3 general directions with their career:

  1. Team Management
  2. Sales and Product
  3. Architecture / Technical SME.

Here is a simple list of the main factors that Software Engineers’ tell me they’re looking for:

  • How much time you want to spend hands-on coding? Do you just want to code, or do you want to be paid for other things as well (design, architecture, requirements gathering, scrum mastering, stakeholder facing, client facing, deployment, support, testing, code reviews, people management, project management, etc)?
  • What size of company do you want to work for? A big corporate? A mid-tier company? A start-up? A small company?
  • Would you discount a company that had lots of problems, or would you see that as an appealing factor?
  • Does it matter if the team is all located in the same office or is spread around the world?
  • Are you looking for technical authority?
  • Is formal training and investment important to you?
  • Is any the “package” element of the job important to you (pension contributions, medical insurance, nice office, flexible working hours, working from home, lots of colleagues etc)
  • What kind of office locations you want to commute to / are you prepared to get to?
  • Is a new (“greenfield”) application important to you?
  • Is working with the latest and greatest tools and technologies important to you?
  • Do you have some kind of preference for the people you work with (senior to you so you can learn from them, same age as you so can easily get along, etc)?
  • What kind of industry/industries do you want to work in? Does it matter to you?
  • Is it important that the application you work on is something you find exciting or high profile?
  • Do you want to work for a well-known company?
Advertisements

Why are Algorithms such a popular test for a developer’s skills?

In my experience, although there are lots of different ways of assessing a developer’s technical ability (from verbal technical interviews, to logical and numerical tests to the dreaded “paper and pen” exercises) most technical interviews fall into broadly one of two schools of thought: either ask them to complete an exercise which requires solving a real-life business problem, or ask them to solve written-for-purpose puzzles by writing algorithms.

 

THE EXERCISE-BASED CAMP

The exercise-based camp always made sense to me, apart from the common trap that the hiring manager who writes the exercise basically writing a test that says “can you guess how I think” and then marking the result on how close they got to their own solution, it’s a clear indicator of what a programmer’s development skills might be on the job. Does it solve the challenge? Did they complete their solution? Does they solution make sense? Is it elegantly written in the development language of choice? Is it extendable / documented / follows TDD / etc etc? Naturally coding in the time sensitive, pressured environment of an interview doesn’t suit everyone, but it is unarguably a rock solid example of what the candidate can actually do.

 

THE ALGORITHM-BASED CAMP

And for years the algorithm test camp has puzzled me. Algorithms are often written in the main language that the job requires skills in (write your algorithm in Java if it’s a Java developer role), but sometimes answers can be written in pseudo-code and that’s just as acceptable – which seems counter-intuitive. Often when my candidates fail the algorithm writing part of the interview and are “no’ed”, they tell me that they were asked to write a kind of sorting algorithm that they hadn’t looked at since their university days (typical example is a Bubble Sort) and their mind goes blank. Which seems unfair.

bubble sort

A better gauge of your coding skills than anything you write in an IDE.

 

And I can’t help but wonder how easy it is to game algorithm-based technical tests. Many developers who are actively looking for a new position know they’ll come up against algorithmic challenges to complete during the interview process and I wonder to what extent you can simply train yourself to become “good” at solving the most commonly ask kinds of question. I know for a fact that I’ve seen some very good developers dismissed for developer jobs they were good fits for, completely out of hand after failing a algorithm test. And I’ve then seen the same developer go on to successfully complete algorithm based challenges and get job offers after having practised solving challenges at home. I personally recommend codility.com as a great preparation tool to the developers I work with.

 

It’s also very rare that writing algorithms from scratch will be a part of s developer position’s day job, so my candidates are being tested on a skills they don’t need to have to be able to do the job they’re going for.

 

So with so many pitfalls, I began to ask my candidates and hiring managers why algorithms are so highly valued as an interview tool.

 

ALGORITHMS ARE A RELIABLE TEST

The first thing I learnt is that it the ability to write an algorithm is considered one of the few reliable tests of how good a developer is (despite concerns about “gaming”). The field of study to be a competent Java developer (or C# developer or [insert chosen language here] developer etc) is so deep its hard to actually come up with a reliable, catch-all test that doesn’t take hours and hours, in the absence of a better model, algorithms are a tried, tested and trusted way of assessing how good someone’s core development skills are. When asked about “gaming” algorithm writing tests, I’m told that most tests these days can be gamed, and that its up to the hiring manager to keep the exercises fresh. Which doesn’t sound like an unreasonable requirement!

merge_sort.png

Ahhh, the old “merge-sort two step”

ALGORITHMS ARE TIMELESS

New algorithmic challenges can be written, but the principles by which they are solved still rely on the same set of fundamental skills, its just the style of implementation that changes (hence the willingness of some hiring managers to accept answers written in pseudo-code). On the basis that development languages change over time, and dexterity with the latest tool or framework will probably soon be made redundant, a test of someone’s ability to solve an algorithmic-based challenge is kind of timeless.

 

EACH ALGORITHM IS A MINI-PROGRAM

Each algorithm-based challenge is good all round mini-test requiring the candidate to demonstrate the core concepts of software development:

  • Problem solving
  • Structuring the solution
  • Refactoring it
  • Testing it
  • Proving it
  • Optimising it if necessary

They’re all key skills required to be able to “code”.

 

AN ALGORITHM CAN BE WRITTEN COMPARATIVELY QUICKLY

Its common for developers to be set 1 algorithmic puzzle per 15 minutes, with taking up to 30 minutes to complete not being considered an automatic rejection.

 

So there you have it, for as long as a more reliable, less time-intensive form of testing a candidate’s development skills is unforthcoming, the algorithm-based technical test will continue to form a common stage of a developer’s interview.

 

Video: My HR Interview Advice

HR interviews can be a sticky wicket, but they’re easy to pass as long as you bear in mind a couple of simple facts and do a little preparation before hand. Here’s my explanation of the key points:

Martin Jee’s HR interview advice

My top 10 predictions for Software Development in 2017

mjs-future-predictions-2017

These are my predictions, based on nothing more than my observations over the year so far.

 

  1. Machine learning is going to be BIG – demand for anyone with commercial experience or a PHD in Machine Learning / Artificial Intelligence will be massive. Watch out of Neural Networks and Bayesian Optimisation

 

  1. Microservices will continue to be adopted, driving up demand for the skills like SOA and RESTful Webservices, and driving down contractor rates

 

  1. React will overtake Angular the Front End space

 

  1. Enter Kotlin : a new Jetbrains language, based on the JVM there are already a handful of commercial projects in flight, but I think this new language will gain more traction and recognition this year

 

  1. Growth of Web-based mobile apps – and therefore less demand for specific iOS and Android developers

 

  1. PAAS – I’ve seen a lot of service-based companies building Platforms As A Service encouraging their buyers to cut down their own internal infrastructure teams, and I think this trend will only continue

 

  1. OpenStack and DevOps As A Service projects – we’ll see the technologists who have learnt to use these tools this year hit the market in 2017

 

  1. NancyFX (an “OpenSource” Microsoft lightweight development framework) will become an in demand skill in the C# development world

 

  1. Software Development Engineers In Test become increasingly in demand – we will continue to witness the steady decline of manual testing skills as automation and agile methodologies continue top penetrate the Software Test Lifecycle

 

  1. Enter the Age of “X is Code” – Infrastructure As Code, Networking As Code, etc. It will become increasingly harder for any hands on technologists who are non-coders to compete for the top positions

 

Employing Autistic People In Technology

Yesterday I met a learning psychologist to discuss how people who are on the Autism and Aspergers spectrum can be integrated into the technology workforce (Aspergers is a form or type of Autism) and I thought it would be good to share my notes and thoughts following my fascinating meeting with her.

DUSTIN HOFFMAN MAKES A FORMAL INTRODUCTION

215px-rain_man_poster1

Gainfully employing autistic people is something that I think has been at the back of the Western World’s mind ever since “Rain Man” came out, and I certainly don’t think it’s unusual for someone to have watched that film and wondered to themselves how that character’s strengths could be implemented in their industry!

(One thing that she soon told me – and that I should point out here – is that the Raymond Babbit character in the film is a portrayal of an autistic person who also has “savant abilities”, his almost super human ability to do maths and remember things is very far from being a typical trait of autism!)

 

MY FIRST NON-NEUROTYPICAL CANDIDATE

But recruiting autistic people in technology is certainly been something that has been on my mind since the beginning of my career. That’s because I remember very early on I found a developer’s CV who had a PhD in Computer Science and had mentioned that he had Aspergers at the bottom of his CV. I called him up, partly out of curiosity, and to my surprise he seemed to be nothing like Dustin Hoffman’s character, there was something about his communication style that was a little “askew”, but there was nothing inhibiting his ability to express himself in verbal communication. We discussed some positions I had at the time and I went ahead and submitted him for them. Disappointingly we got absolutely no traction in the market and I when I called him  back a couple of weeks later it turned out he had decided to go back into academia.

 

My feeling was/is that his story is not uncommon. Whenever the industry has a drive to hire “diversity” candidates, we almost always see the same thing. Lots of enthusiasm and fanfare at the top, but at the hiring manager level things tend to peter out. I’m not so sure this is an active resistance but probably something more passive and risk-adverse.

 

THE TIMES THEY ARE A CHANGIN’

sapmicrosoft

But there are lots of reasons to think that times might indeed be changing. SAP began a pilot scheme to hire autistic people in 2013 and Microsoft began one in February 2015 (non-Neurotypical), and a year later they opened up 10 new positions across the UK. By 2015 SAP reported they had hired 66 people across the world and only 2 had left, which is an excellent attrition rate given that its not unusual for autistic people to lose their job within the first year.

 

AUTISTIC HIRES HAVE BOTH MET AND EXCEEDED EXPECTATIONS

Both have teamed up with Specialisterne, a specialist non-Neurotypical recruitment company to help achieve this, and both report that their hires have either met or exceeded expectations. Both companies have been keen to hold up their successes to show the world what can be done with an open mind and some specialist training.

specialisterne-page-banner

AUTISTISM IN TECHNOLOGY

SAP have said that autistic people are well suited to being “software testers, programmers, and data-quality-assurance specialists” and given that autistic people tend to be either at average or above average intelligence, that makes sense to me!

 

So hopefully, an increased consciousness across the IT sector that autistic people can bring an awful lot to a company’s development efforts, will bring more and more people into the technology workplace.

 

NOTES ON EMPLOYING AUTISTIC PEOPLE

So it was with these ideas bubbling at the back of mind that I met a learning psychologist to find out more about what employers should think about when considering hiring technologists with these conditions. These are my notes, they’re not a definitive guide, if you want to learn more about hiring autistic people I’d suggest that the Papworth Trust and the National Autistic Society are both good places to start:

 

  • STRUCTURE AND ROUTINE Autistic people are most comfortable being able to follow the same routine or set of routines day in, day out.
  • NOT FLEXIBLE And they won’t respond well if your business demands mean that work will chop and change frequently.
  • JOBS WITH A START AND AN END Autistic people will thrive in an environment where challenges have a clear “start to finish” nature.
  • VERY LOYAL Autistic people can be very loyal employees, often if they find a place they like, they won’t move. That doesn’t mean if you manage to hire someone you’ve got them for life, it’s still a quid pro quo agreement, but in general they’ll stick around.
  • BREAKS Autistic people are often reluctant to take breaks because they don’t feel comfortable in the typical work-based socialising that is involved. As an employer you’ll still have to ensure that your hires take breaks though, so work with them to find a solution.
  • ENGAGING WORK Autistic people tend to be at average or above average intelligence, so it stands to reason that successfully employing an autistic person will require giving them work that they consider challenging and engaging, an art that is undoubtedly one of the most difficult challenges to surmount in this arena.
  • That said if you’re successful on this point, Autistic people don’t tend to expect promotions in the same way that Neurotypical people do, they’ll be unlikely to be interested in management or work that involves close technical collaboration.
  • EXCELL AT DILIGENCE The fact that they don’t get bored by very repetitive tasks means that they are well suited to software testing and quality assurance roles where churning out work that requires a high degree of attention to detail.
  • AVOID TASKS WHICH REQUIRE QUALITATIVE JUDGEMENTS As a generalisation Autistic people don’t tend to thrive with tasks that require making opinion calls, or qualitative judgements. Their thinking is much more binary.
  • TAILOR INSTRUCTIONS AND COMMUNICATION Autistic people are very literal, and dislike and can get confused by common language idioms and “business speak” (the nuances of being told that someone found a task very “challenging” in a workplace context might well be completely lost on an autistic person).
  • SOME HAVE A LANGUAGE DISORDER Some Autistic people actually have a language disorder as well as being on the autism spectrum which will add an extra layer of complexity to an employment environment. Although it should be noted that the relationship between poor social skills, language and autism is a massive area of ongoing scientific research.
  • VERY HONEST Given their binary nature many employers find their Autistic hires “what you see is what you get” helpful and refreshing. Without any real concept of “business speak” someone who speaks their mind, often with a seemingly ruthless honesty, and no “hidden agenda” can be a real asset to a team.
  • SOCIAL SKILLS PROGRESSIVELY IMPROVE Many Austic people’s social skills gradually improve over the years with increased experience at socialising.
  • AVERSION TO FLUORESCENT LIGHTS Employers looking to hire autistic people should be aware that it’s common for people on this spectrum to have an aversion to very bright or fluorescent lighting, so you might need to check out the ambience of your empty work station!
  • CASE BY CASE BASIS!! Finally it’s well worth bearing in mind that each Autistic person will have this condition to a greater or lesser extent.

 

+++ This is what I learnt from my meeting and having since read into what’s happening in the tech industry in general. If you read this and you think there’s something wrong, or a misrepresentation please email me martin.jee@energonpeople.com so I can make any corrections that are needed +++

Whatever you do in 2013, don’t…

Don’t quit your job before getting a new one.

Sayonara

This is a subject I speak to so many developers about. We start to discuss their next career move and they reveal that they are planning on quitting their job soon so that they will become immediately available for a contract. The logic being that only technologists who are immediately available are eligible for contract positions…

Notice periods

There are two problems with this course of action. In my experience it is a complete fallacy that you can only get a contract position if you don’t have a notice period. If you are the right candidate for the position nine times out of ten the client will wait 4 weeks for you to start. Now at this point I would point out that my experience of recruitment is purely limited to the financial markets, so I am not speaking for any other market; but despite clients almost always stating that they would prefer to hire a candidate who can start straight away, in practice they are always happy to wait for the right candidate.

A deep recession

Despite the appearance of “green shoots” in the banking sector, we are still very much in a deep recession at the moment. Everyone who reads the papers or has any contact with life outside of the Square Mile can see that. They’re even talking about the country going into a triple dip recession (not a new icecream flavour) – so the idea of quitting your job without already having lined up something to go to is madness. The contract market is still depressed, and there are still lots of contractors out there looking for their next contract, so competition for each position is fierce.

“Ready to go contracting”

After about 5 years development experience many developers start to consider the prospect of going contracting. In general contracting is a good career option for someone who is a strong technologist but not interested in team leadership or corporate titles. The problem is that the contract market is not buoyant at the moment, with many of the investment banks trying to replace contractor numbers with permies. So there are lots of developers out there who feel that they are “ready to go contracting” but have not been able to.

My advice to these people is to be patient. Quitting your stable, permie job in the hope that it will make it easier for you to find a contract will not make it happen faster. Doing so runs the risk that you will end up waiting for months without finding that dream contract job, or even end up taking another permie job! You might be ready, but if the market is not, nothing you do will change that. If you are determined to go contracting, I think you are better off either staying where you are and applying for contract positions as and when you come up (despite your notice period) or taking a new permie position that will improve your prospects to enter the contract market when it does pick up. But one thing is for sure, being unemployed in a recession is no fun.

Good news for the start of 2013

I’ve got a feeling that despite all my gloomy predictions at the end of last year, 2013 is going to be a good year for the City of London. I started to think that things might not be as bad as I had thought they would be when within a few days of being back in the office we started to get some interesting roles being released. Now, 17 days into the year we have about as many live roles now as I did at my busiest period at any point last year.

A healthy number of roles is always a good sign, but IT recruitment tends to be a “bellweather” for how the financial markets are doing, as opposed to an accurate indicator. For instance lots of roles in January could just be a sign that it’s the New Year and companies wanting to test the market to see what the quality is like, rather than actually having a need to hire.

Good news from the States means good news for us

But there has actually been some low level good noise floating about since the summer, I refer mainly the Oil and Gas boom in the USA. Their enthusiastic adoption of “fracking” has revolutionised their national energy landscape, which is going to help their economy recover, leading to surprising stories that the US is now a net exporter of oil and that they expect to export more oil than Saudi by 2020 flying around.

The US economy is flying

Then last week I read this article in the BBC news Bank of America to pay Fannie Mae billions to settle mortgage claims. Now that Bank of America, Citigroup, JP Morgan and Wells Fargo have settled their dispute with the US Government (Fannie Mae), the toxic debts they acquired in the lead up to 2007 / 08 will have been cleared off their liability books, which will improve their balance sheets at a stroke, meaning that they can now lend more, pay more dividends and be in a stronger position for the banking standards currently being implemented (i.e. Volcker and the rest of Dodd-Frank). Now they don’t have set aside so much capital to meet these liabilities many of the banks can start chalking up bigger profits.

And today the front page of City AM sees JP Morgan announce, alongside Goldman Sachs, that profits are up 12%. And even better news was that Goldman Sachs recorded a 19% rise in total revenues in 2012. As these two top investment bank do well, we should start to see the other banks also starting to do well. And with all the cost cutting the banks have been doing since 2011, they should be in a place where profits can come quite quickly.

Which can only mean good news for Java developers in the City of London and Finance Technology recruiters like myself. Hopefully this recent spate of jobs will be the beginning of a more successful period than recent years!

On an aside I just can’t help but think what a shame it is that whilst the US banks have been able to sort themselves out, the UK still seems to lag behind. How long do we have to wait for our own banks to move on from the quagmire of 2008?