How to integrate your AWS event-based system with external/legacy systems using RESTful APIs
[This is my personal opinion and does not reflect the views of my employer. All information mentioned here is publicly available]
I've recently (circa early 2022) interviewed at AWS, GCP and Azure. This post serves as a review of sorts, containing the things I enjoyed about the different hiring processes. At times I will compare and contrast some differences of each. Specifically, I will call out how this differs to the hiring process in traditional legacy organisations. My main focus here is to discuss and comment on the Candidate Experience, which is the perception that the job seeker has of the employer, and will highlight just how much effort Big Tech companies have invested in their hiring processes. I think the targeted audience of this post are those, like me, who have spent most of their career with traditional legacy organisations, and will find this Big Tech (FAANG/MANGA/whatever) hiring process to be very different and refreshing. This post may be of interest to those thinking about interviewing for a Solutions Architect role at AWS, GCP and/or Azure. Please note: because these Big Tech companies have (mostly) standardised interview processes across all their roles, I suppose this post could very well apply to any role (Software Development, Product Managers, Program Managers, etc) across Amazon, Google or Microsoft.
Ok, let’s get the role names out of the way. In AWS, this role is called Solutions Architect. GCP calls it Customer Engineer, while Azure calls it a Solution Area Specialist. In summary, these are customer facing roles, part of the Cloud Sales function, where the candidate is responsible for the technical engagement with the customer - helping the customer understand how the Cloud can help them transform their business. These roles requires technical ability to understand and propose solutions for customers. Coding is not necessarily required, but it is a hands-on role.
Starting the hiring process
Each of these three interviews started out with a recruiter reaching out to me on LinkedIn. They had looked at my profile, and thought I was a good fit for a particular role. They asked me to read over the role, and to apply if I was interested. So the first call out I can make is that I had to apply myself for the role - I was not auto-applied to the role. So whether you found the role and applied yourself, or got contacted by a recruiter, it probably makes no material difference to the interview process. You wont get any benefit or bonus points, as you will be equally evaluated just like any other candidate.
It’s worth calling out the different recruitment people you will interact with during the interview process, besides the actual interviewers themselves. I counted three distinct roles:
Talent Finder (Talent Acquisition / Sourcer)
This persons role is the understand the job and role they’re scouting for, and look for candidates. They reach out to you, sell the role to you and convince you enough so that you apply, and then move on. You won’t hear from them again after your apply. But if you applied yourself, you wont meet this person at all.
Once you've applied, the Recruiter will be your guide through the entire process. They will be the one that progresses you along through the process, gives you regular status updates, provides you with the intermediate and final decisions, and works on the compensation package with you. They share with you details of the interviews: who the interviewers are, what type of interview (technical, sales, etc), and even the principles or competencies that will be tested in each interview. My recruiter setup a call the day before my on-site interview to brief me on all of the above. Their role in the process is to make you successful.
In order to book the main interview loop, the Recruiter will bring in a Scheduler, who’s role is to book all the interviews with you and all the interviewers in their calendars. You won’t hear from them again after the calendars are booked. In Amazon, the recruiter that reached out to me was both my Recruiter and Talent Finder. While with Microsoft and Google, each of the three roles were distinct people. In some cases, the Talent Finders may be from external 3rd party recruitment agencies, while the other two roles are always internal staff.
In my experience, the Talent Finder is an important and key differentiator to improving the Candidate Experience: they realise that this is a competitive market, and they all facing a talent shortage. Amazons vacancies page lists 54 000 jobs and Facebook, Alphabet, Microsoft, Apple and Amazon have put more than 1 million people to work between 2000 and 2018. The market clearly belongs to job seekers, and candidates have plenty of options. And thats why the role of the Talent Finder is key - its to connect with passive, happily-employed candidates, sell them the role and convince them to apply. In my experience, the Talent Finders really understood the roles, and sold them well enough to get me to apply. It really increased my Candidate Experience. Contrast this to a legacy orgs, where their hiring practices belie the fact that they are struggling to find talent. Their job boards and application process is a mess, and HR Partners and recruitment agencies barely understand the role they looking for. Case in point: an agency cold-called me a few years ago, and in trying to understand if I am a fit for this role, rattled off a list of technologies listed on the JD, and one of the questions they posed was "do I have the Oracle?..." In my experience, using a Recruitment agency always results in a lower Candidate Experience, because as a candidate, you don’t have direct contact with the Recruiter. You have to rely on the agency person to pass messages between you and the actual recruiter. This broken telephone results in delays and missed messages, and gives a very impersonal feel to the whole process.
Lets speak about the job boards and systems used throughout the process. In Legacy orgs, they just use the module that comes with their ERP/HR system, which if it Oracle E-Business Suite, is pretty bad. Their job boards are hard to navigate, the JD specs are too long and just copy/pasted without considering formatting. It takes too long to register and apply, as they mostly ask for too much information. It’s hard for candidates to setup alerts/reminders for roles they interested in. In general, it’s poorly designed software that makes it hard to find a job that you looking for. And legacy orgs only use that system for the candidate application process - its hardly updated again during interviews or even after. I recall a few times where I've been successful and already started a job, but the software does not reflect that.
On the other hand, Big Tech has really slick job boards, that make it easy to find a role you looking for. And as you will find throughout the recruitment process, their internal hiring system is used to schedule the interviews and send out calendar invites, assign different roles for each interviewer, track the overall hiring process, and capture interview feedback. Interviewers will tell you they are capturing your answers during an interview, and after each phase and when you get your final feedback, the recruiter will give your feedback based on what was written in the system. By documenting and collecting the interview feedback, it allows them to make objective and data-driven hiring decisions.
Hiring principles - how they hire
Microsoft, Google and Amazon now ask mostly behavioural-based questions based on the concept that past behaviour predicts future performance. Google has noted how they have stopped asking brain teasers, as well as Microsoft.
The entire hiring process is designed to determine if the candidate and company are a good fit for each other. Amazon, Google and Microsoft each have distinct principles that they use to measure this ‘fit’ . Amazon uses their Leadership Principles, Google looks for “Googlyness”, based on their vision statement and philosophy, while Microsoft uses their Core Competencies and Cultural Attributes. These values, principles and competencies are core to the interview - they take them very seriously. And even though there are differences between these companies, and different words and terms are used across the three companies, once you've understood them, you will find that that are quite similar.
So thats the ‘what’, i.e. thats what candidates are measured against. ‘How’ they are measured is done mostly using behavioural questions. E.g. if Amazon wants to ask you a question about a particular Leadership Principle, they may ask “Tell me about a time when you were faced with a problem that had a number of possible solutions.”
These behavioural questions require candidates to prepare beforehand - I’ve included some invaluable links in the Resources section below. Amazon looks for responses using the STAR method, while Microsoft has a small addition with the STARL method. For Googles hypothetical-based questions, Jeff H Sipe suggests using this framework:
The Interview Construct
At each of these companies, the interviews are very structured. It has two major parts to it:
1) phone screening calls - shorter in duration, about 30 mins or less
2) multiple on-site interviews - longer in duration, between 45 and 60 mins each
Whats key is that the process is transparent, and is not a surprise. Each of these companies share details about their hiring process. Candidates know exactly what they in for, how long it will take, and therefore will know when it’s completed so they can expect feedback.
You start off with the phone screens, and if you pass/progress those, you get invited for the on-site interviews.
The phone screens can consist of a few. There is the first one with HR (perhaps with Talent Finder or the Recruiter), then maybe one with the hiring manager, and perhaps a technical screening call.
Amazon usually has a recruiter phone screen, and then a technical phone screen. Google has a recruiter phone screen, and then a call with the hiring manager, which they name Champion Calls. Here the Hiring Manager sells the role to you, tells you about the role and the team, and answers any questions you may have. Microsoft also has a recruiter phone screen and a hiring manager call.
If you pass those screening calls, you are invited to the actual on-site interviews - which are now remote/online/virtual due to COVID19. These consist of 3 to 5 interviews, between 45 mins and an hour each. The focus is on structure, that allows them to collect sufficient data. This is a huge time investment - in most cases, candidates will take a days leave to attend the on-site interviews. With the online option, it can be scheduled over a few days.
Amazon has 5 on-site interviews, each 1 hour long. They are mostly behavioural based questions. One or two of the interviews will also contain a technical portion. The recruiter would have specified this before-hand.
Google schedules it over 3 interviews, either 45 mins or an hour long. Their interview types are a bit more specific, with dedicated names: GCA (General Cognitive Ability), G/L (Googleyness & Leadership), and RRK (Role-Related Knowledge). These are mostly behavioural-based, technical, as well as hypothetical questions. Google is unique amongst the three of using hypothetical questions. Microsoft has 3 on-site interviews, also mostly behavioural and technical questions.
Each interviewer will be assigned different principles, competencies and/or technical/functional areas. These are assigned prior to the interviews, based on the requirements of the role.
What you will realise, across all roles: Account Managers, Product Managers, Technical Program Managers, Solutions Architects and Software Development, is that the majority of the interviews are assessed using behavioural questions. So even though you will be assessed for your functional / technical skills, the majority of the interviews are trying to assess your culture fit.
Now compare this to more traditional companies, where the interviews are less structured, more arbitrary, and does not have a structured way to collect and use the data. In most legacy orgs that I interviewed at, it was mostly a single interview, or at maximum two interviews that defined the hiring process.
Legacy orgs, even if they have defined interview structure, hardly share this info beforehand. And they almost never give candidates feedback. Which means at some point the recruiter / agency ghosts you, without letting you know if they have decided to not proceed or not.
The hiring decision-making process
Once each interviewer has inputted their feedback into the hiring system, they now have all the data from all the interviews on which to base the hiring decision. Google talks about how this is done:
Hiring committees are built into the Google hiring process. Research shows that teams with divergent opinions can make better, less-biased decisions, something that's key to selecting a great hire. At Google a hiring manager can say "no" to any candidate, but if they find someone they want to hire, they alone cannot give a final “yes” — they must pass the candidate onto a hiring committee for review. The idea is that a single hiring manager isn’t necessarily motivated to wait or search for the very best candidate. Especially as a search drags on, the hiring manager is eager to fill the position. But making a quick hire to satisfy a short-term need is not a long-term solution for an organization. Hiring committees help select candidates who will be good for Google, who will grow with the company, and perhaps take on future roles that don’t exist today.
Amazon talks about the Bar Raisers role:
A Bar Raiser is an interviewer at Amazon who is brought into the hiring process to be an objective third party. By bringing in somebody who’s not associated with the team, the best long-term hiring decisions are made
Basically, it’s not just the hiring managers decision to hire. A group of people get together to look at the data collected, and they make an objective decision to hire or not. Contrast this to legacy orgs, where it’s mostly the hiring manager, with a little feedback from HR, that makes the hiring decision.
From a candidates perspective, perhaps one of the most memorable aspects of the candidate experience is if, and how, feedback was delivered - and this is where Big Tech differs from legacy orgs. My Big Tech recruiters kept me in the loop throughout the process, and even when they didn’t have feedback, they would send a mail to just say “we’re still busy, hang in there”. And once a decision was made, recruiters called me immediately to let me know the outcome. And even when the outcome was not positive, they still called, and let me know where I was strong, and where they felt I could improve.
Legacy orgs, on the other hand, almost never give feedback of any sort. Even once another candidate has been selected, they will not even inform you of the outcome. And this really leads to a poor candidate experience.
Compensation - not only cash
Big Tech companies offer equity - stocks, options, and others - as part of compensation. Amazon likes to think “big picture”. Employees are considered part-owners of the company and they want you to think about what your total compensation is projected to be at the end of 4 years. Amazon, in its wisdom, seeks to, among other things, align the interests of the company with its employees. To do this, part of every employee’s compensation is partially in RSUs. This form of compensation incentives employees to think like owners and do what is best for the company in the short and long term.
Compared to legacy orgs, I've found that these stocks/shares really form an important part of your compensation, and as the stock price increase, so does your compensation.
Hiring has evolved over time
I’ve previously written a few posts about hiring - which to be fair, where mostly all rants. From when I started off early in my career, to when I was a hiring manager and shared my learnings from hiring. My conclusion is that Hiring across the board is flawed, but I think Big Tech is perhaps better than legacy orgs. I also think that there are a lot more resources to assist candidates now, than there was a few years ago. My first ever interview, while still in University, was with Microsoft, which was for a graduate-level role. I first interviewed with Google in 2011, when they still asked brain teaser questions. My first interview with Amazon was in 2017. I was unsuccessful at all of those initially, but a few years later, with the help of the different resources available and some experience, I’ve managed to have some success.
The biggest learnings I had was from the frequent content that guys like Jeff H Sipe and Dan Croitor produce. I’ve listed below some other very usefull interview resources.
- https://careers.google.com/how-we-hire/ https://careers.google.com/interview-tips/ https://about.google/
- https://careers.microsoft.com/us/en/interviewtips https://careers.microsoft.com/us/en/culture
From a nomenclature point of view: Interviews are one part of the Recruitment or hiring process. I have used the words Hiring and Recruiting interchangeably, but it seems there is a difference:
Hiring happens when you need to fill a role. Recruiting is the process of attracting top talent to your organization.
I think Big Tech understand Recruitment, while legacy orgs only do hiring! Legacy orgs don’t invest in attracting talent, especially passive candidates. They don’t have structured interviews, with a focus on collecting data. They don’t make objective, group-based hiring decisions. Their compensation packages, lacking stock options, are not competitive. And they don’t give necessary feedback to candidates. Overall, these legacy orgs hiring practices have a pretty low Candidate Experience.