Friday, May 16, 2014

What is RPO (Recruitment Process Outsourcing)?


Sharing a write up I did previously. Many people know about in-house recruiters that are directly employed by a company. This post will cover a lesser-known recruitment type, RPO.
 
RPOs have similar functions to a standard recruitment agency, but there are major differences between the two.
 
Major differences between an RPO and a standard recruitment agency:
 
  • Representing the Account
  • Responsibilities and Access to ATS (Applicant Tracking System)  
  • Payment Structure

Representing the Account

An RPO is similar to a recruitment agency, but the employees there have the privilege of representing themselves as the account they work on to candidates. Example provided below.

Recruiter working for a regular recruitment agency hiring for a position at Amazon.com:

“Hi. My name is David from XYZ agency and I have a position that you may be interested in.”

Recruiter working at an RPO on the Amazon.com account:

“Hi. My name is David. I'm working with Amazon's (or any other big name) recruitment team and I have a position that you may be interested in.”

The difference is small between the introductions, but it makes a large difference to the candidate especially if it is from a well known company. In the recruitment business it can mean either the start of a conversation, or being promptly cut off with a dial tone.

Responsibilities and Access to ATS (Applicant Tracking System)

RPOs work to promote their account. This ranges from creating news letters, candidate pipelines, and job postings. In addition to this we have full access to the client's ATS. An ATS is the system that resumes and contact information funnel into once candidates have applied to a position. Having access to a client's ATS is one of the reasons why RPOs can disclose specific job postings and companies versus agency recruiters who do not disclose this information.

Payment Structure

Agencies and RPOs both receive payment on positions they fill. A major fear of an agency recruiter is a candidate finding the company's job posting and applying directly. In this way the agency does not get paid unless they presented the candidate's information to the hiring manager before the candidate applied themselves. RPOs on the other hand freely disclose how to apply directly, in fact applying directly is a part of the process of getting hired.

RPOs charge a flat rate for the position that is being filled, it doesn't matter if the candidate found the position by themselves, an internal employee referred them, or even if the hiring manager referred the candidate (yes, this one is quite the easy hire). The amount charged per position depends on the seniority of the position, but it is usually several times less than the 20%-30% of a first year salary that recruitment agencies usually charge.

I hope this broad explanation of an RPO and how they are different from recruitment agencies has helped those that are interested in the subject.

Monday, April 28, 2014

May Goals: Math!

Not even on the 2nd part of the Andrew Ng's Machine Learing course do I feel my lack of math expertise hindering my understanding =(.

Background

I really slacked off during my middle school / high school days. Prime example of a procrastinator. Failed AP Calc, passed Calc and Stats in college, and never took another math class again. I really did enjoy stats, much more practical in day to day life.

There are gaping holes in my math abilities. I usually did well enough to pass, but that's horrible since this left me with a swiss cheese foundation. Probably didn't retain 90%+ of what I "learned" in school. I think the biggest problem is that there was no connection to how applicable this is to the "real world", most likely why I liked stats, I saw that it was useful in determining bias with data that we're constantly bombarded with.

May Goal 

Utilizing Khan Academy I plan to get through Algebra II, maybe even Probability and Statistics, by the end of May. Courses I'm going to skip include Geometry and Trig since I consider them vastly difference than what I think is relavent for Machine Learning, unless I'm going to concentrate on Computer Vision. I have to consider whether or not to do Calculus, this will largely depend on what the Prob/Stats course will cover.

Did I mention that I love MOOCs? Well I do! <3.

Saturday, April 26, 2014

Google's Making Sense Of Data = Fusion Table Tutorial?

Finished all 3 units of Google's Making Sense of Data course today. It took about a week to finish without doing the final projects.

What I was expecting: Introduction to data science and learning statistical methods.

What I got: Introduction on how to read graphs, empirical research, and Fusion Table.

This was a super basic course. I wouldn't recommend to anyone that has taken basic stats already. This course really acts as a tutorial for Fusion Tables, a Google product that's an extension of their Spreadsheet. Fusion Table feels clunky, but the I love how easy it was to visualize the data, I mean, we even get heat maps. =D


I like how they UI of the course probably better than the Edx course, but the layout is practically identical.

Gonna see if Andrew Ng's ML class has a stats prereq so I can start diving in and create that Singularity.

Saturday, April 19, 2014

April Goals Completed (...Somewhat lol) / Testing Careers

MITx

One the big things I wanted to pick up from the MITx course was how to determine O notation (time complexity). The course did a fairly good job of explaining it and I passed most of the quizzes on it, though my n log n understanding still needs work.

The last weeks of the course covered decision trees. I'm going to agree with commenters that this section feels rushed and was quite confusing for me to understand what it is suppose to do to writing code for it.

I did skip a few things like classes and object oriented programming since I did most of it during the bootcamp I attended.

Overall: This is a solid overview of python and how to develop time efficient algorithms. I think this covers a lot more detail than just the Codeacademy course on Python.

Testing Careers

I think going through the bootcamp was a great way to figure out if I wanted to do software development as a career, to a lesser extent I think this course helps with that decision as well. For me, these types of courses helps connect the dots that traditional school wasn't able to do. I learned skills from the courses, then was made to complete assignments that can be applied to real world situations right away.

The next courses I'm looking to take are in Machine Learning and Data Science. Since most investments/decisions are data driven these days, having knowledge of stats is super important. I enjoyed statistics when in school because it seemed so practical, especially in reading studies that we're bombarded with everyday and knowing what the conclusions actually mean and questioning methods that a study uses.

The bright side for me is, a lot of Machine Learning and Data Science in companies require programming skills as well. To develop the tools to analyze information, storing and pulling data from databases, and parsing documents.

Sunday, March 30, 2014

April Goals And The Past Few Months

Let's get started with all that has happened since the end of the bootcamp. 
  • Coding Dojo
  • Facebook
  • Self-learning (April Goals)
Coding Dojo

After the bootcamp I got a part-time offer from the school to be a Student Advisor. Created some recruiting courses/videos and also meeting with individual students on how to write resumes, interpret interview processes, and how to handle salary negotiations.

Facebook 

Remeber this post? http://withdavidli.blogspot.com/2013/08/august-goals-completed-and-other-big.html

At the end, about wooing Google and Facebook. Funny thing, got in process for both of these companies for Sourcer roles. Facebook was super fast in getting the interview set up and got the offer same day =). As a Sourcer/Recruiter seeing how fast a company moves in the candidate stage is really important because it will be something I will be a part of. Didn't get to the on-site interviews with Google before accepting the offer from FB, maybe in the future. 

I'm currently on a 1 year contract with Facebook, started this January. It has been an amazing here. Everyone is super communicative and helpful. The level of access to hiring teams is incredibile, I can literally walk to up to their desks. I've already had meetings with managers, directors, and heads of departments. Just a great experience. 

April Goals: Self-learning 

Haven't done goals in quite a while. Self-learning has definitely been slacking. So for April goals I'm looking to complete Mitx Intro to Computer Science and Programming to build more of a foundation in creating algorithms. It's an 8 week course, but I think I should be able to do it in half the time if I really dedicate myself. 

Thursday, December 19, 2013

Should I Learn Google Dart As A First Language?: Swallowing The JavaScript Pill

Let’s get this out of the way. I’m an indecisive person. I’m the guy that’ll be in store looking at 2-10 different bottles of sunblock for an hour while one of my best friends is standing there with his hand freezing because he got a gallon of milk (thanks Kyle for always putting up with me!!!). All the while thinking this would have been much easier if I had only done the 2-4 weeks of research I usually do before buying a product (not joking).


Knowing the above, the world of programming is my own little level of Dante’s Inferno. So many choices from languages to frameworks. I went to a coding bootcamp and I took a very shallow dive into several languages, now it’s time to take a deep dive into a stack (frontend and backend). This came down to JavaScript, JavaScript/Python, or Google’s new language Dart.


It has been utter turmoil for me the past few weeks as I took a shallow look at these languages. The real decision was between JavaScript and its new competitor Dart. I’m a calculated risk type of guy and Dart is definitely a high risk / high reward scenario for Google, but what about the common man? This is where practicality wins out. I’m going to be learning JavaScript, for how long? Until I make something presentable for a project!! So months at least.


There are a lot of reasons to pick JavaScript over Dart, but the main reason for me, legacy code (ewww). Like it or not most of the web has some sort of JavaScript in it and it’s still worth learning now even as Ecmascript 6 is soon to be released, and all the frameworks that came out in the past few years are gaining traction. While learning Dart is something I still plan to do it isn’t worth being the first language I take a deep dive into because when I look for a position as a programmer I will most likely still need to deal with JavaScript code and it will be expected that I know it.

So for all the new programmers out there trying to make this decision I hope you found this helpful. I only stated one reason to learn JavaScript, but I think it’s the most important one when picking a first language. A language you will have to deal with anyways. Right now choosing to not learn JavaScript is like choosing to not learn HTML/CSS.

What Is Eloquent Code?

This post explains what is eloquent code to me and why. Note that I am still within my first year of learning to code when writing this so take it with a mountain of salt.

Before learning how to program I kept hearing about the concept of eloquent code.The word eloquent by itself vague so understandably it will mean different things to different people. Most commonly, it can mean readability, maintainability, pretty (aka syntactic sugar), well commented, efficiency (code that executes a function the fastest),  or having the least lines possible to run a program.

During my bootcamp the class had algorithms to solve and we would present our answers. This gave us a chance to see how each person thinks, represented by their code. When comparing my answers to others I noticed mine was simple and straightforward, maybe that’s because I’m simple minded. I have a tendency to minimize the amount of methods already available within the language, didn’t include regex (regular expressions), and didn’t get fancy with manipulating attributes, though I understand these are needed to complete certain tasks more efficiently (time to code and runtime).

My concept of eloquent code derives from understandability. It is as follows understandable->readable->well structured->maintainable.

  • Understandable code is:
    • Readable: A person should be able to look at the code and understand what is trying to be accomplished. Preferably, this is by reading the actual code instead of just the comments.
      • Well Structured: To obtain readability overtime the code base must be well organized. This means a person can find what they are looking for within a code base.
        • Maintainable: Because the code base is readable and well structured it is going to be more maintainable (updating/editing current code base).

Well, that wasn’t vague at all (/sarcasm). This is my general concept of eloquent code. What it means to be understandable and its derivatives will be up to each person and company to define. Just make sure to document so people don’t forget.

There are definite limitations to this concept. For instance, maintaining legacy code millions of lines long. This concept will only work when starting out or if the person/company have the ability to re-write the entire code base.

A friend once told me great code will look like only one person has written it, no matter how many people collaborated. There’s a lot of information in that one statement, and hopefully I unpacked it well in this post.