Monday, April 17, 2017

The Hiring Gap (or an Open Letter to Recruiters in my Network)

In two weeks' time I would have reached eleven years in my career as a software developer. I have worked in three countries namely, Philippines, Singapore, and Australia (spent most of my career in the second, and I am currently living in the third).  I've worn different titles including Web Developer, Webmaster, Mobile Developer, Software Engineer, and Software Developer. The titles don't really mean as much as the technology and programming language space you're working in, but I lay them out to present a case for confusion. This confusion happens in the realm of hiring.

When a company decides we want to hire a "_____ Developer" with the blank filled in, the hiring gap immediately comes into play. Ten years ago, that blank would be a technology space, hence the titles like "Web Developer", "Mobile Developer", "Enterprise Developer", "Desktop Applications Developer", etc. would be given. As the years went by,  new technologies emerged and companies became more specific as to what they would like the new hire to focus on, hence they hired specialists. These specialists would have more narrowed-down titles based on the programming language and tools they used, hence titles like "PHP Developer", "AngularJS Developer", "ReactJS Developer", ".NET Developer", "Swift Developer", "Native Android Developer" come into play. There's nothing inherently wrong with narrowing down expertise in specific areas. However this pigeonholing of computer programmers (yes I used that word) has led to oversimplifying the nature of experience and learning that they have accumulated over their entire career. Web developers may have once been Java developers when Java was still owned by Sun Microsystems. iOS developers may have once been programming in VB or C# using .NET frameworks. And Javascript developers who now specialise in ReactJS, yep you guessed it, they were using Flash and Actionscript before the industry went bust.

Imagine you were a recruiter, and I'm hoping most of you reading this are, because I wrote this with you in mind. Say you found out that one of your clients required a "Swift Expert", and immediately you login to your company database of profiles of people (who unwittingly accepted your terms and conditions, privacy policy, and other legalities to allow your company to keep a copy of their resum├ęs for future reference). You find a few who have "Swift" in their skillsets. But your HR training kicks in, and you realised after a few minutes of pondering that in order for someone to be an expert in a given subject, that person must spend 10,000 hours practicing it. So you do the Math based on a normal forty-hour work week, and you come up with this requirement: 250 weeks which equals more than five years experience if holidays and vacation time are accounted for. So you create a draft (hope you didn't actually publish this on Seek or LinkedIn, by the way):

  • 4 to 5 years commercial experience in Swift (preferably 3 years in Swift 3)
  • 3 years experience in Xcode 8.x
  • 7 years overall industry iOS development
  • Local experience is required 


What's wrong with this picture, you ask. Then you realise that Swift only came out in June 2014 hence your "4 to 5 years" is out, much less "commercial experience". Okay, but Swift 3? You guessed it, it came out much later in September 2016. And iOS developers who have developed for more than 7 years are few and far between. And experience in Australia? (which has a general manpower shortage in I.T.) How many programmers are actually here with years of local experience who are still programming?

And don't get me started in React.

Of course not all recruiters are this ignorant about when programming languages were released, but their HR training does get in the way of evaluating candidates. If you're just reading a "shopping list" sent by your clients and ticking skill boxes and years of experience let me tell you -- a lot of developers come from digital agencies and they work with multiple technologies. So your "iOS Developer" and ".NET Developer" may not have spent those entire months of their employment coding in those languages. Surprised? Here's more -- passionate developers tend to spend their free time tinkering with technologies that are not in their workplace. Think Arduino, Raspberry Pi, GoLang, Python, and Ruby. When you're not under pressure to learn and do so at your own pace, I tend to think you actually learn better. Can they work in a job later on in these technologies of their hobbies, that are not in their "commercial experience"? I can already hear you recruiters saying No.

As I work in a government-controlled company in Australia as a developer, I've had the privilege of sitting in the interview sessions, and even asking the questions, for potential candidates. We had to hire a number of developers last year, and we had to revise the way we present questions time and again because at the end of the day, we wanted people who can do the job. But because we had to go through recruitment agencies and couldn't hire directly, we had to cater to your HR lingo. One of the challenges we encountered was having to create a "shopping list". This was a list of skills that we thought would be required, plus skills that were "nice to have or preferred". It wasn't easy, we tended to put too many things in that list being unrealistic, but also overcomplicates the process -- some of those things can be learned on the job. Even common skillsets have different uses depending on the company you're working for, such as git flow.

So we came up with a plan, that can be summarised in three points:

  1. Send a written test to the recruitment agencies to screen the candidates prior to being considered for face-to-face interview.
  2. For the face-to-face interview, formulate two major problems that the candidate has to to solve, which were real day-to-day technical problems we encounter.
  3. Have only one interview with the candidate, with three to five developers (including the lead) from our team doing the  interview.
The written test was sent to the recruitment company so that they can screen the candidates, send the results to us, and then we can decide whether to proceed with their application. There's no passing mark or minimum score, it is simply to give us a general impression whether the candidate is a real programmer.

Once we determine that the candidate is a real programmer we can interview in person, we sit down with the candidate for one hour. There were three to five interviewers in the room, and one candidate. It can be intimidating to the candidate, but we just explain that we are all here, and this is the first and last interview you have to go through. At this point please understand, a candidate's "years of experience in technology Y" or "commercial experience" or "Australian experience" pretty much go out of the window. We've hired people with over 20 years experience, and we've hired someone with almost zero experience. We start asking basic HR questions like "Please tell us about yourself and your experience" or "Have you worked in a similar role before?", etc. Then depending on the answers, we can already tell if the candidate is technically sound. We then ask the two major technical problems and analyse the response -- this was a whiteboard test. The whiteboard answers help us to see the thought process the candidate goes through to solve the problems. During the test we encouraged each candidate to ask us as many questions and clarifications as possible in order to solve these two problems. 

Should the candidate answer the questions satisfactorily then we will most likely hire, but we first had to have agreement on the assessment of the interview's outcome. We cannot hire if there's no consensus among ourselves. 

This greatly simplified our hiring process,  and to this day we don't regret hiring more than ten developers this way. This series of interviews happened five months ago  over a two-month period, and only half of them made the cut.  These developers are still going strong.

If you're a recruiter reading this please don't take this with offense. This is my opinion and I hope by reading this you can understand the frustrations we developers have with your recruitment process in our line of work. 

If the three simple points I mentioned in my company's hiring process can change the way you screen candidates and they work for you, then well and good. But for now I can't see myself applying through recruiters anymore. If this article can make some changes to the way you hire, then I hope developers like myself can get good jobs in the future through you again. 


Sincerely,
Rex

Wednesday, February 01, 2017

TopTal

I have been referred by an acquaintance to try out TopTal. Having been trying to get back to a full-time iOS role for the last three years, the hill is getting steeper to climb as the months roll on. I typically get caught in recruiters' formulas about "years of commercial experience", as well as the silent war that wages between front end Javascript vs. native mobile.

Since no one is giving me a chance to get more experience through iOS employment, it looks like I just have to make my own experience. After publishing my app Money Monthly in the Apple App Store, and working on an app for a non-profit, and tinkering with other iOS-related stuff after hours, I'm knocking on TopTal's door to get my foot in as a FREELANCE iOS DEVELOPER.

Godwilling this door opens, and I'm hoping for the best. This includes my interest in joining the toptal Mobile app freelancers group

Rex
'Coding since 1993

Tuesday, January 10, 2017

2017 and iOS

Happy New Year to one and all!

Towards the end of 2016, I submitted my app Money Monthly, for the first time. This is in part due to my move to get back to iOS development. The industry is very competitive, and I better have work to show for it if I am to return to full-time employment as an iOS developer.

The app helps you keep track of your monthly spending, and helps you limit your expenses to save money.




As of now it's still in a soft launch phase, and not much publicity is going on. For now it's free, so better download it now at its best deal. Today I submitted a bug fix with the date picker.

If you would like to know more about the app, simply go to

http://www.rexjason.com/moneymonthly/

All the best for this year!

RJ

Wednesday, February 17, 2016

Udemy Online Course Discounts

Udemy is currently offering discounts on their software development courses. I signed up for a Swift development course by Michael Rudowsky. Recently I got another notification that other courses are also on discount. You may want to start learning something new too, check out the list here.


Thursday, July 23, 2015

4k, 5k, 8k, 11k Pixels

As screen resolutions become higher, Samsung is planning to release an 11k display:

News about Samsung, click here

I found this interesting because I have owned the 11k.co domain for some time now, let's see what happens :)

Saturday, May 16, 2015

Codility



Codility tries to standardize the way companies filter candidates for software engineer /developer positions. I got to choose from different languages, so I chose PHP which was what I was most familiar with. There were three problems I had to programmatically solve and test in 90 minutes.

Saturday, April 18, 2015

Coursera's Programming for Everybody (Python)

Today I just submitted my final exam for the online course "Programming for Everybody" or PR4E. This was a massive open online course (MOOC) from Coursera offered by the University of Michigan. I took it for ten weeks.


Special thanks goes to our instructor Dr. Chuck Severance for coming up with this course for beginning programming using Python. The course materials are FREE.

I attended my virtual graduation video, complete with commencement speaker Dr. Curt Bank of Indiana University, and the blank piece of paper rolled with a nice bow.