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 

Kogan.com 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.

 

THE ROLE

In this role you will have a lot of responsibility and independence with a massive impact on the thousands of Kogan.com 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

 

WHAT SKILLS/EXPERIENCE ARE WE LOOKING FOR?

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..

 

WANT TO GET INVOLVED?

Email dev.jobs@kogan.com.au 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 Kogan.com, 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: https://kogan-recruitment.herokuapp.com/challenge/8738436f17b6c50686b29f71198233ff/

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:

http://wp8m3he1wt.s3-website-ap-southeast-2.amazonaws.com/api/products/1

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:

https://github.com/radical81/cubicweight

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 Kogan.com.

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, Kogan.com is unable to provide feedback to candidates in regards to their applications.

Thank you for the interest you have shown in Kogan.com 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?


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.


Friday, April 17, 2015

Someone else, something else, and... we're back!

Dear readers,

My name is Oliver Queen. After five years... whoops, wrong channel.

No, we're not in Yan Yu.

About five years has passed not owning this domain due to my neglect  to renew it, I checked tonight if myspaceless.com was still available. I quickly purchased it from Name.com and I'm so glad to get this back. For a while it contained JAPANESE writing, and I really don't remember who owned it or whether I even bothered to check.

That's all in the past now, and I'm back to writing geeky stuff.

Looking forward to more posts with you.

God bless,
Rex

Friday, March 13, 2009

New York Times Features Elance and Odesk


In a society where people are losing their jobs, many have turned to self-employment. Companies who see outsourcing as a viable strategy for their business hire these independent contractors.

In today's New York Times, two communities that I'm part of were featured: Elance and Odesk. These were not the only ones, and the article says a lot about the growth in the freelance communities because of the economic crisis. To read the whole article, click here.

These are my profiles in Elance and Odesk, respectively:

My Elance
My Odesk

Wednesday, March 11, 2009

php | architect: Order Accepted

I was able to contact phparch.com's toll-free number and talk to a customer service representative. I contacted them to inquire about the shipping address that was registered in their database because I was being charged 11.90 USD for shipping even though I selected a US address for the shipping address. It turns out that the shipping address was indeed the US address, but since the billing address was a Philippine address, their system automatically charged shipping (this is apparently a bug). The lady on the line asked me to send a refund request once the order is accepted. At this time my order wasn't accepted yet since they manually had to check my credit card for validity.

I now know why my credit card was manually checked. It's a policy that they have right now, to check credit cards that have an overseas billing address. After that conversation, my order was accepted and I was able to download the soft copy of the book on my online account:

After they sent my receipt by email, I replied to them that they charged 11.90 for shipping and that I'm requesting a refund.


Now I'm waiting for the refund. They promised it will take about three days to credit back to my credit card.

Tuesday, March 10, 2009

Credit Card Manual Check


Today I tried to purchase the 2nd edition of Zend PHP 5 Certification Study Guide at phparch.com's online book store.


When I first tried to order the book by my saved credit card in my online account, it generated an error saying the number is invalid. So I entered my credit card details manually.

After the order, the site gave me this page:



It seems that I'm now suspected for credit card fraud. They will review my purchase manually. This is weird. It's not the first time I made a purchase from phparch.com.

You might also experience this, and note that this link will show on top of that page:


Is it because there was an error the first time I tried to use my saved credit card details and when I entered my credit card details manually they now get suspicious?

If you have any experience with phparch.com similar to this, do leave a comment.

Regular Server Maintenance



Some time ago, both Twitter and Drupal went offline. They had scheduled planned maintenance, but seemingly for two different reasons. I suspect Twitter again had too many tweets. It's a phenomenon that is happening rapidly. People seem to use Twitter a lot, increasing its server load. But in Drupal's case, it was doing an upgrade from Drupal 5 to Drupal 6.

Whatever the case may be, down times are important. Servers, or at least clouds, work 24/7. Given the load that is bombarded into them, all loose ends need to be tied once in a while to make sure they don't crash.

Friday, February 20, 2009

Ubercart for Drupal


A few months ago I was able to set up a shopping cart for Drupal. I made it using Ubercart, a module you can easily install. It looks very seamless with a wide variety of payment methods. It emails you your invoice. It even has shipping cost calculations.

If you want to test it, you can check out this dummy site I made for testing the shopping cart. When calculating shipping costs, I set the pick-up address to a California 95262 zip code, so that's the origin of the package. Go ahead and try it at

http://cart.site40.net/

Friday, January 02, 2009

It's 2009!

Happy New Year to everyone! It's the end of 2008 and the beginning of 2009. I also just turned 28 on January 1.

For the previous year, it was met with a lot of challenges for many of us. The recession has affected first-world countries such as the US, Canada, UK, Australia, and Singapore. There's less effect on us here in third-world countries but nevertheless the effect is there. Many Filipinos working abroad have returned to their motherland. Some have gotten laid off because of the financial crisis. Even my job hunt was not successful in Singapore, a first-world country that has a suffering economy as well.

As I'm writing this, I'm back in my motherland the Philippines. I'm currently a freelancer who's hopefully a future shareholder in a new business venture. The economy here has not changed much. Generally, companies pay as low as possible, and it seems that it's not easy to find employment that pays well based on experience, skills, and education. We just haven't reached that level in our job culture yet (my humble opinion).


Anyway, for the latest technology I've been exploring -- I recently got back to Drupal and learned more than I had at first. Drupal is viable for creating social networks, shopping carts, and point-systems (e.g. rewards for shoppers). I've tested all three features and they work. It's a growing active community with lots of modules to choose from. It's good to use for seamless integration that reduces the need to hard code. All you need to do is install the modules and activate them.

To a great year ahead...

Friday, October 31, 2008

Scratchproofing


invisibleSHIELD


Recently I bought a Nokia 2630 when I was in Singapore. One of the things they gave me for free was a transparent plastic case to protect the phone from scratches and dirt. The transparent case broke easily and I had to get a new one in Manila. My phone is protected now.

Scratchproofing is important with phones and laptops. If you get a Macbook, iPhone, or iPod from Apple, you can protect these with invisibleSHIELD


Watch out for their sale on October 31 - Halloween Special. 40% OFF All invisibleSHIELDs

Friday, September 19, 2008

My Brainbench

I am currently certified by Brainbench.com in three different areas:

1. OO Concepts
2. RDBMS Concepts
3. PHP 5

As I'm writing this, I just finished my PHP 5 test. Here are the results:


If you want to view my transcript, simply click on this link:

http://www.brainbench.com/transcript.jsp?pid=7261841

Monday, August 11, 2008

Another Domain for Sale

I'm new at domain flipping, but it seems like an income-generating thing that can be done on the side.

I'm selling a domain name (without content) called marketbymedia.com. I posted it at Sedo and you can view the page where you can place bids.

I chose the domain because of the keywords it has -- "market", "by", and "media" which seem to have high value and can sell at a good price.

I also recently joined a community of domain flippers at siterev5.com.

Monday, August 04, 2008

Domain Name for Sale

I posted this domain, MYSPACELESS.COM, for sale, along with the site. Although I'm not sure how I can sell the content without giving access to my blogger account, I may just end up selling the domain. I posted it at Sedo.

You can look for it there later on. Right now it's undergoing verification. If interested, you can just email me at

buy _AT_ myspaceless _DOT_ com.

Your domain owner,
RJ Alobba

Saturday, July 26, 2008

Brainbench Shape-Based IQ Test


On July 16, I received an email from Brainbench asking for help on the beta testing of their new Shape-Based IQ test. All I had to do was enter the promo code and take the test. If I got 20% or more and answered all questions, I get a free certification worth $49.95 and a chance to win an Apple iTouch.

So I took the test. I made it to 98%. Now I have a free test and have entered into the raffle draw for an iTouch.


I wanna take the PHP 5 test. After all, it's free now for me. =)