Wednesday, May 10, 2017

Kogan's Hiring iOS Developers, But This May Be The Clincher

As I'm writing this post, my job application has been rejected by one of the most reputable online shops in Australia. It was a short journey yet I gained some insight into how jobs can be presented, and how they may not be what they seem.

Here's the job description:

IOS DEVELOPER is Australia’s largest online retailer. We use technology and digital efficiency to make prices on the latest products more affordable for our customers. Tech is our thing -  we love using it to solve problems.

We are looking for a passionate and knowledgeable iOS software engineer to join our engineering team.



In this role you will have a lot of responsibility and independence with a massive impact on the thousands of customers who interact with our apps on a daily basis.

From a technical point of view, you’ll be hands-on (crunching the code) whilst also providing architectural input, thought leadership and expertise in all aspects of the mobile development lifecycle. We’ll want you to be good at getting stuff done, whilst regular innovating and experimenting with new tech.

From a product perspective, we’ll want your analysis, design and user experience skills to be working their magic and providing great business outcomes and experiences for our customers.

You’ll be:

Building new and game changing features for our iOS mobile app

Owning of these features from idea to deployment

Maintaining a high level of quality both in the look and functionality of our apps

Keeping our mobile stack and technical landscape fresh and pushing the boundaries



You’ll be someone who pushes for innovation and are ready to take the lead in all aspects of our mobile app development lifecycle, ensuring our tech and customer experience is world class.  You'll need to be fast paced - we like to deliver new functionality and improvements to our customers often, so you'll be seeing your code in production regularly!

You’ll have:

- Experience in building and maintaining high profile mobile applications.

- Deep knowledge in the iOS development environment and iOS design patterns.

- A thorough understanding of the iOS development environment with working knowledge of testing, Pods and iOS design patterns.  Objective-C knowledge is a must, Swift & React Native are a bonus!

- Multi-Threading and memory management specific to mobile devices Understanding of caching mechanisms.

- Knowledge of the whole stack including server side technologies

- An understanding of complex code bases, including API design techniques

- Great collaboration skills to work with our design and engineering team to create an awesome experience for our customers

- An eye for great design and the ability to write elegant, readable and well documented code.

- Attention to detail with a high standard of quality.

- Can apply an entrepreneurial approach and passion to problem solving to building products.

- Experience with the following languages and/or working in an agile environment previously is a plus: Objective C, Swift, Javascript, Python, Django, React Native, Android App Development..



Email with the subject line [IOS-201704]. Ensure you tell us why you’ll be great for the role and you supply examples of previous work (including apps that you’ve been a part of).

You may have noticed the ripper at the end: "Experience with the following languages and/or working in an agile environment previously is a plus: Objective C, Swift, Javascript, Python, Django, React Native, Android App Development.." This isn't the kind of description you would typically see in an iOS Developer job listing, at least not for native development. I have personally never come across an iOS Developer from, but I do know someone who has worked there in a previous job -- the team is cross-skilled.

I applied, and to my surprise, they sent me an email telling me they're impressed with my skill set:

Hi Rex,

Thank you for applying for an iOS developer position with us. We've reviewed your application and we are impressed – congratulations!

At this stage of our recruitment process, we give candidates a quick coding challenge to let them show off their coding skills. It allows us to get a bit of an understanding of some aspects of your coding style.

Here is your link to the challenge:

Please complete the challenge and reply with your solution attached by Sun, 7 May 2017 23:59:59 +1000.

Have fun coding!

That link has since expired, but I can describe the challenge as having to calculate the cubic weight of items under the category "air conditioners" from a list of miscellaneous items, and getting the average.  The data comes from a JSON string, have a look:

You may have also noticed that it's paginated.

The cubic weight = Length x Width x Height x 250

To solve this challenge, I either had to write a command-line application or a web application. Being a polyglot myself, I wrote it in Python. If you would like to see my code, you may clone it from Github:

Long story short, they got back to me after a few days:

Dear Rex,

Thank you for applying for the role of iOS Developer at

I regret to inform you that at this stage we will not be proceeding with your application as we did not feel you were best suited to this role. Please note that due to the high volume of job applications that we receive, is unable to provide feedback to candidates in regards to their applications.

Thank you for the interest you have shown in and all the best with your future pursuits.

I can accept rejection, I've had lots. I received no feedback though I asked for one.

But the surprising thing for me is that there was not one bit of iOS or even Mac concepts in that test. This would have turned off a lot of dedicated iOS developers applying for the job at the very beginning.

So what were they actually looking to hire?

No comments: