Technical Screening Archives - HackerRank Blog https://bloghr.wpengine.com/blog/tag/technical-screening/ Leading the Skills-Based Hiring Revolution Fri, 23 Jun 2023 16:25:11 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 https://www.hackerrank.com/blog/wp-content/uploads/hackerrank_cursor_favicon_480px-150x150.png Technical Screening Archives - HackerRank Blog https://bloghr.wpengine.com/blog/tag/technical-screening/ 32 32 How to Begin Screening Software Developers https://www.hackerrank.com/blog/how-to-begin-screening-software-developers/ https://www.hackerrank.com/blog/how-to-begin-screening-software-developers/#respond Fri, 19 Oct 2018 17:01:22 +0000 http://bloghr.wpengine.com/?p=13106 There are many qualifications to account for when filling technical roles. Attributes like seniority, technical...

The post How to Begin Screening Software Developers appeared first on HackerRank Blog.

]]>

Illustration of two people shaking heads in front of a giant screen with binary digits on it, with two people standing to its side holding a spanner and a laptop

There are many qualifications to account for when filling technical roles. Attributes like seniority, technical skills, and soft skills may not translate well on a candidates resume. As a recruiter, how can you assess technical candidates in a way that fully captures their true abilities?

It all starts with the screening process. We put together a detailed guide on how to screen software engineers, but if you’d like a high-level overview we’ve outlined the key points below:

Don’t Skip the Basics

Everyone knows the best strategy for screening candidates is to assess for whatever’s important for the job, but simple algorithm questions actually play an important role in uncovering what engineers can and can’t do. If you dig deeper, engineers who can’t complete basic algorithmic code challenges in an interview are actually less productive hires in the long run.

Why?

  • They can quickly put together decent code but don’t have a deep understanding of why their programs work
  • Without a fundamental knowledge of architecture, they may not build your products to be easily scalable
  • Having a foundational knowledge of how different components work together is essential when optimizing your codebase

Create Impactful Challenges

So where do you begin when creating your challenges? The following 3 steps will give you a basic framework to get you started, but for a deeper dive, including examples, be sure to download our full guide.

  1. Knowledge vs. Intelligence. Determine which one you need to test for. Both are values of a great engineer, but what most managers don’t realize is it’s better to keep these values mutually exclusive. Testing for both at the same time puts far too many constraints, limiting your pool of talent.
  2. Challenge Type. Select the challenge type that will best capture the skills you are assessing for. These include algorithm code challenges, depth of thinking challenges, knowledge-based code challenges.
  3. Questions. The challenge type you select will then inform the question types to include. Some examples: multiple choice, code completion, open-ended, or multi-step questions.

Bonus guide content: Get the checklist of 5 common mistakes to avoid when creating challenges

Prepare Your Prospective Candidates

Asking your candidates to complete a coding challenge without warning can come off as a way to test their ability to work on the fly, but in fact, you’re actually testing for longevity. Well-designed basic algorithm and data structures challenges are a good way to gauge depth of technical skills needed to build sustainable products. Give your candidates ample time to prepare and let them know what to expect from your coding challenge and hiring process.  

Tip: Learn the art of writing messages to developer candidates

Calibrate Your Process

The screening process doesn’t end once you’ve sent your challenge and received results. You’ve put in all this work to assess your candidates, but what good is a code challenge screening if you’re testing different candidates with different questions? Maintaining consistency can make the data you’re collecting meaningful. All too often, companies change the question after it’s already gone out to some candidates, ruining your data set. After the initial screening, it’s important to mirror your code challenges with the rest of your interviewing rounds.

Interested in learning more?

Banner reading "[Guide] How to screen software engineers"

The post How to Begin Screening Software Developers appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/how-to-begin-screening-software-developers/feed/ 0
[Checklist] Evaluating a Front-End Developer https://www.hackerrank.com/blog/how-to-screen-front-end-developer/ https://www.hackerrank.com/blog/how-to-screen-front-end-developer/#comments Thu, 18 Oct 2018 18:14:49 +0000 http://bloghr.wpengine.com/?p=13072 This is part of our hiring checklist series, where we share insights to help you...

The post [Checklist] Evaluating a Front-End Developer appeared first on HackerRank Blog.

]]>

frontend-vs-backend engineer image

This is part of our hiring checklist series, where we share insights to help you screen developers. You can find our other checklists here: 


Front-end developers play a pivotal role in bridging the gap between the technical and non-technical aspects of any web or app development project. They build on the work of back-end developers to create the user-facing content we interact with on websites and apps.

Given the duality of their role, their work needs to strike a balance between function and form; not only should their work be efficient and well-built, but also beautiful, and easy to use for a diverse set of audiences. A good front-end developer is not only technically savvy, but obsessively focused on the details that make user experience enjoyable.

Front end and back end engineer graphic

If you’re just starting your hunt for a front-end developer to add to your team, make sure to prioritize these qualities:

Expertise:

  • Are they well versed in HTML, CSS, and JavaScript, and in a variety of design patterns? And are they up to date with new web technologies?
  • Do they have a solid understanding of core UX/UI concepts? Do they know how to develop for perceived experience, and can they manage tradeoffs?
  • Do they have a track record of creating work that performs for a wide variety of users (from different devices, browsers, abilities, and more)?
  • Are they knowledgeable in front-end testing, debugging, and security?
  • Do they write maintainable code?
  • Do they have solid framework and architecture knowledge? Can they compare multiple options, and choose the best approach for any given project?
  • Can they understand and execute on the atomic design principle?

Team Compatibility:

  • Are they familiar with your team’s development methodology of choice?
  • Are they experienced in working with both technical and non-technical stakeholders to execute their work (e.g. design and product)?
  • Are they familiar with your team’s front-end framework(s) of choice?
  • Do they proactively discuss potential use cases with the rest of the development team?
  • Can they work in harmony with established style guides and coding patterns?
  • Do they have a basic grasp of their teammates’ processes and technologies, especially when it comes to their back-end analogs?
  • Are they a team player, and an easy person to work with? Can they comfortably work in tandem with others on a regular basis?

Soft Skills:

  • Do they have strong non-technical communication skills? Can they accurately interpret the practical problem their work will solve?
  • Can they empathize with the needs of users from a wide variety of backgrounds (with varying abilities, devices, and more)?
  • Do they have a natural knack for detail? Can they flawlessly translate designs to a final product, down to the smallest elements?
  • Do they make a point to keep up with rapidly changing front-end tech through continued self-education?
  • Are they capable of producing work up to the aesthetic standard of your brand? Do they have a good eye, or at least a good understanding of UX?

An illustration of a checklist next to the words "Front-End Checklist"

Balancing technical and non-technical skills

How do you like to screen for both function and form when you’re searching for front-end developer candidates? Share your advice in the comments.

It’s important to note that the line between UI developers and front-end developers can sometimes be blurry. Some candidates may be more inclined towards UI/UX, whereas others may be focused on the engineering aspects of front-end development (e.g. design patterns, tooling, and architecture). Make sure you understand if your hiring manager is looking for one or another—or even a blend of both—before digging into the candidate pool.

Hiring for other technical roles? Learn the right skills to target for specialized roles in our full guide:An banner with the words "[Guide] Recruiter Cheat sheet: How to Assess Technical Roles"

The post [Checklist] Evaluating a Front-End Developer appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/how-to-screen-front-end-developer/feed/ 3
[Checklist] How to Evaluate a Back-End Developer https://www.hackerrank.com/blog/back-end-developer-checklist/ https://www.hackerrank.com/blog/back-end-developer-checklist/#respond Thu, 11 Oct 2018 18:33:49 +0000 http://bloghr.wpengine.com/?p=12982 This is part of our hiring checklist series, where we share insights to help you...

The post [Checklist] How to Evaluate a Back-End Developer appeared first on HackerRank Blog.

]]>

Illustration of a man holding up a big arrow pointing to a giant screen showing a checklist

This is part of our hiring checklist series, where we share insights to help you screen developers. You can find our other checklists here: 


Typically, when a hiring manager asks for a Back-End Developer, a few things come to mind: lots of development experience, comfort working with APIs, and a solid background in database work.

But the reality is...on some level, it’s up to interpretation. After all, they can cover a potpourri of responsibilities, from application data access, to database administration, to addressing security, and much more; ultimately, it’s dependent on the needs of the company. This makes it not just a complex role to fulfill, but also a challenging role to recruit for.Visualisation of front-end and back-end of an application

Though day-to-day responsibilities may vary, back-end developers are an important component of any technical team, constructing and maintaining the base that front-end developers to build on.

That said, it’s worth noting that the line between front-end and backend developers can sometimes be fluid. Make sure you understand what your technical team needs before you start your search.

If a back-end developer is what your team needs, here’s what to look for:

Expertise

  • Well versed in a variety of software design patterns, security procedures, and frameworks
  • Delivers server-side code that’s scalable, reliable, well tested, and well documented
  • Knowledgeable in standards and best practices for their language(s) of expertise
  • Familiarity with cloud infrastructure and cloud providers
  • Experience using databases, and utilizing data structures at scale
  • Comfortable with web service technologies

Team Compatibility

  • A stack match for your team––comfortable with the technologies they use
  • Knowledgeable in the team’s development methodology of choice, or similar
  • Keeps detailed design docs for team reference and smooth collaboration
  • Motivated to uphold the team’s standard of quality
  • Proactively contributes to knowledge exchange within the team (e.g. wiki contributions, commentary in the design phase)
  • Team player: Leverages collaboration to solve problems, and willingly supports teammates when they’re stuck

Soft Skills

  • Shows flexibility in their problem-solving approach, with no attachment to particular solutions
  • Takes appropriate ownership as errors arise, focuses on solutions vs. blame
  • Gladly tackles problems of all shapes and sizes, no matter how minute
  • Robust technical communication skills: Can effectively communicate project needs with both front and back-end teammates
  • Strong non-technical communication skills: Can accurately interpret and execute on requests from non-technical teams (e.g. product)
  • High emotional intelligence: Self-aware and attuned to their peers’ needs

backend developer checklist

Attracting the developers you want

What’s your team’s strategy for attracting back-end developer candidates?

For high demand roles like this, syncing with your candidate’s needs early on can give you a competitive edge. Focus on showcasing desirable job qualities from the start: interesting challenges, smart teammates, and work-life balance will help you stand out as a potential employer.

Hiring for other technical roles? Learn the right skills to target for specialized roles in our full guide:

The post [Checklist] How to Evaluate a Back-End Developer appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/back-end-developer-checklist/feed/ 0
[Checklist] How to Hire the Right DevOps Talent for Your Company https://www.hackerrank.com/blog/checklist-how-to-hire-the-right-devops-talent-for-your-company/ https://www.hackerrank.com/blog/checklist-how-to-hire-the-right-devops-talent-for-your-company/#comments Thu, 20 Sep 2018 17:33:59 +0000 http://bloghr.wpengine.com/?p=12693 This is part of our hiring checklist series, where we share insights to help you...

The post [Checklist] How to Hire the Right DevOps Talent for Your Company appeared first on HackerRank Blog.

]]>

Illustration of a giant checklist containing Hackerrank's logo, with one person on the left holding up a pencil to itThis is part of our hiring checklist series, where we share insights to help you screen developers. You can find our other checklists here: 


Contrary to popular belief, DevOps is not the same as an operations role. And DevOps engineers are not the same as a software developers or a QA engineers, either. Instead, DevOps specialists are a combination of the three (and then some) that work to solve high-level operational and efficiency challenges within a technical team.

DevOps specialists help to manage and optimize a development team's output, from streamlining collaboration, to performing QA, automating important processes, and more. Otherwise put: they help development teams ship high quality work consistently and quickly.

what-devops-does

DevOps specialists—who can be called DevOps Architects, DevOps Engineers, Infrastructure Engineers, or even Operations Engineers, depending on whom you ask—come from an eclectic group of developers with both software and systems backgrounds. In that sense, finding the right DevOps hire, like many technical roles, depends on the needs of the company, the structure of the team, and the projects they work on.

There’s no such thing as a one-size-fits-all for this position, and not all of the points below may apply to all DevOps positions. Instead, it’s likely that your hiring manager will be focused on a handful of these traits. We recommend syncing with your hiring manager to understand which traits they’re looking for, and which they’re prioritizing.

open-devops-checklist-pdf
If you’re searching for mid-level DevOps talent, here’s what to look for:

Expertise

  • Has experience in a related technical field (e.g. software development, network engineering, or operations)
  • Track record of upholding regular system monitoring and reporting
  • Strong grasp on operational best practices within software development cycle (regarding security, data duplication and redundancy, scaling, disaster recovery, and more)
  • Adaptable, comfortable with learning new technologies on the fly—but not overly focused on new and shiny tech
  • Employs a “work smarter, not harder” attitude within their work—focused on maximizing efficiency
  • Comfortable overseeing maintenance of big data

Team Compatibility

  • Familiar with your team’s preferred development methodology (e.g. agile, scrum, spiral, and so on) and tech stack (popular asks for DevOps include, but are not limited to: Python, Go, JSON/JavaScript, Ruby [Chef/Puppet], Datadog, AWS)
  • Advocates for the long-term needs of the system, even when those needs are unpopular
  • Collaborative and team-oriented: Can work alongside teammates to solve technical challenges without pointing fingers
  • Composed and organized in stressful, ambiguous, and time-sensitive scenarios
  • Strong leadership qualities: Can align and guide various stakeholders together to pursue a common goal

Soft Skills

  • Self-directed: Able to stay organized, timely, and proactive with little to no oversight
  • Willing to work outside the limelight, and focus on the “behind the scenes” side of development
  • Strong interpersonal communication skills: Able to work with teammates across various roles to remove obstacles as they arise
  • Eager sense of curiosity, with strong problem-solving skills and investigative drive
  • Strategically minded: Consistently makes decisions that consider both long and short-term needs

open-devops-checklist-pdfTriple check your team's requirements

What are your best practices for finding DevOps talent to suit your team? DevOps roles can cover a variety of tasks, and can come from an especially eclectic set of professional backgrounds, so getting in sync with your team’s needs is a must. Share your tips for alignment below!

And if you're interested in designing your own assessment for DevOps candidates, you can sign up for a free trial here.

Hiring for other technical roles? Learn the right skills to target for more specialized roles in our full guide:

The post [Checklist] How to Hire the Right DevOps Talent for Your Company appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/checklist-how-to-hire-the-right-devops-talent-for-your-company/feed/ 3
[Checklist] Screening Data Scientists vs. Analysts vs. Engineers https://www.hackerrank.com/blog/checklist-screening-data-scientists-vs-analysts-vs-engineers/ https://www.hackerrank.com/blog/checklist-screening-data-scientists-vs-analysts-vs-engineers/#comments Tue, 07 Aug 2018 17:31:12 +0000 http://bloghr.wpengine.com/?p=12537 This is part of our hiring checklist series, where we share insights to help you...

The post [Checklist] Screening Data Scientists vs. Analysts vs. Engineers appeared first on HackerRank Blog.

]]>

A pair of hands holding a tablet that lists the job titles Data Scientist, Data Analyst and Data Engineer on its screen

This is part of our hiring checklist series, where we share insights to help you screen developers. You can find our other checklists here: 


If you’ve been tasked with recruiting for roles within data teams, you may think to yourself, “What’s the difference between Data Analysts, Data Scientists, and Data Engineers?”

While the titles may sound similar, each role actually focuses on a different aspect of data utilization, all equally necessary in helping organizations use data to make better business decisions.

At their best, data-driven teams’ skill sets complement one another, facilitating the capture, interpretation, and dissemination of huge amounts of relevant data. Together, they help companies become more data-driven with quantitative evidence – and they rely on one another to do it.

The nuances between Data Analysts, Data Scientists, Data Engineers may seem minute at first, but each has a distinct role to play in deriving and conveying meaningful insights from data. Here’s a great overview on what to expect from each respective role.

 

Data Analyst

A Data Analyst is a generalist, tasked with interpreting an eclectic range of data to inform business decisions. They bridge the gap between the technical and non-technical, spending as much time cleaning and analyzing data as they do creating explanatory visuals and descriptive reports.

This role is instrumental in helping dissect the quantitative ramifications of key business decisions. At their core, they play the role of a technical interpreter, relaying technical insights in a way that resonates with the company’s non-technical stakeholders.

Here’s what to search for:

Expertise

  • Do they have a basic understanding of statistics and a firm grounding in basic data analysis principles (e.g. relevant experience through coursework or previous positions and projects in an “Analyst” role of some kind?)  
  • Do they have a track record of helping companies make effective decisions through data, with quantifiable success (whether as a Business Analyst, Operations Analyst, Business Intelligence Analyst, or through similar roles or projects)?   
  • Are they familiar with your analytics stack of choice? Or are they familiar with tools/methods that would help them pick it up quickly?
  • Do they have hands-on experience with exploratory data analysis and data visualization? (e.g. personal projects, school projects, work experience, internships)
  • Do they have a background in the programs most frequently utilized by your data science team (e.g. SQL, Python, R, and so on)?

Team Compatibility

  • Are they an effective verbal, written, and visual communicator, with the ability to interpret and explain complex technical topics to a non-technical audience?
  • Are they an attentive listener, capable of turning ambiguous non-technical requests into actionable technical tasks with little guidance?
  • Do they possess excellent business acumen, allowing them to peacefully mediate the needs of various stakeholders with aplomb?
  • Are they self-motivated, and capable of problem-solving independently, with minimal oversight or guidance? When they get stuck, do they rely on others for help or do they take the initiative to figure things out themselves?

Soft Skills

  • Do they exhibit an innate curiosity and a willingness to dig deep across datasets to provide thoughtful and relevant intel?
  • Do they possess a strong sense of creativity that allows them to analyze and interpret data through numerous business lenses?
  • Do they have natural business savvy and an understanding of the company’s business model? Can they think like a member of your C-Suite?
  • Are they open-minded and willing to follow the story the data exhibits? Can they regularly put aside their opinions on the business to provide truly objective analysis?

Data Scientist

A Data Scientist is an expert in math and statistics who uses data to make intelligent business predictions and continually improves the way the company uses data.

Like Data Analysts, they’re tasked with answering core business questions through the power of data. That said, unlike a Data Analyst, they’re also expected to utilize their expertise in algorithms, machine learning, statistics, and other quantitative fields to anticipate core business questions and needs before they arise. They don’t just interpret data; they help to optimize its usage across the company.

Though they’re generally more specialized than their Analyst counterparts (often possessing a secondary degree in a quantitative field), they span a variety of seniority and experience levels. Be sure you clearly align with your hiring manager on the seniority level they need before starting your search.

These are key characteristics to search for:

Expertise

  • Do they have experience bringing order to large sets of disorganized datasets, both structured and unstructured?
  • Do they have an in-depth understanding of general statistics, applied statistics, and/or machine learning, verified by previous projects, work experience, or coursework?
  • Have they previously worked in a capacity where they were able to maintain and/or train machine learning models, with quantifiable successes for the business?  
  • Do they have an extensive background in the programs most frequently utilized by your data science team (e.g. SQL, Python, R, and so on)?

Team Compatibility

  • Do they have a history of successful collaboration across a data-driven team, including Data Analysts, Data Engineers, and fellow Data Scientists?
  • Do they have an eye for detail that will allow them to catch inconsistencies and inefficiencies in the data, promoting continual improvement of the architecture they work in?
  • Can they advocate for their needs in the context of a team? When they encounter architectural issues, can they convey and insist on the changes they need?
  • Are they effective communicators, with the ability to effectively convey their findings across a variety of channels (written, verbal, and visual)? Can they do this for both technical and more non-technical audiences?

Soft Skills

  • Do they possess basic business savvy that will allow them to train models in a way that produces meaningful, impactful data insights for the company?
  • Are they curious, probing, and even skeptical by nature? Do they depend on their investigative skills to evaluate and design solutions, or do they tend to take assumptions at face value?
  • Are they willing to experiment and iterate on how to use data effectively across the company?
  • Are they objective in the workplace, allowing them to dissect key analytical questions in a pragmatic way?
  • Do they demonstrate strong storytelling skills, with the ability to showcase their findings in a way that’s both meaningful and compelling?
  • Do they prioritize thinking about the deep ethical questions around using data to influence decisions?  

Data Engineer

Data Engineers make both Data Analysts’ and Data Scientists’ jobs possible. With a much heavier focus on software development, Data Engineers build and manage the architectures that capture the data Data Analysts and Data Scientists use. If they’re not building or managing data pipelines, they’re maintaining databases and large-scale processing systems.

Data Engineers are effective generalists with a background in both software development and data science. Since they’re tasked with maintaining the environment that both Data Analysts and Data Scientists work in, it’s important that they’re not only technically effective, but team-oriented; their job has a huge impact on the roles of others, both positively and negatively.

Here’s where to start:   

Expertise

  • Do they come from a “generalist” background in software development, with the ability to comfortably switch between and combine technologies to achieve an overarching goal?
  • Are they familiar with the needs of a data-driven team and the architectural groundwork necessary to allow Data Analysts and Data Scientists to thrive?
  • Do they have an extensive background in one or more of the frameworks utilized by your data engineering team (e.g. Hadoop, NoSQL, Spark, Python, and so on)?
  • Do they have proven experience promoting data accessibility, efficiency, and quality within an organization?

Team Compatibility

  • Are they responsive and empathetic to the needs of their teammates, especially when it comes to requests for optimizations and other architectural changes?
  • Are they receptive to constructive feedback and suggestions from their teammates? Do they implement the feedback they’ve received or are they cemented in their ways?
  • Are they familiar with your team’s development methodology of choice (e.g. agile, scrum, spiral, and so on)? Or are they familiar with a similar framework that would help them to pick it up quickly?
  • Are they collaborative and team-oriented? Are they as focused on the needs of their teammates as they are on their own?

Soft Skills

  • Do they show an interest in continual self-development within their area of expertise, or do they prefer to stick to the methods and concepts they already know? 
  • Are they objective and willing to adjust their methods to promote team-wide success, instead of their own personal preferences?
  • Are they focused and self-motivated? Can they manage their work proactively with little to no oversight?
  • Do they have advanced technical and non-technical communications skills that they can utilize to interpret and implement their teammates’ requests?

Stay aligned with your technical teams

What’s your evaluation process when searching for the roles above? How do you determine which skills your team is most focused on in their next hire? Tell us your best practices in the comments. 

An illustration of a checklist next to the words "Data Scientists vs. Analysts vs. Engineers"

Hiring for other technical roles? Learn the right skills to target for specialized roles in our full guide:

The post [Checklist] Screening Data Scientists vs. Analysts vs. Engineers appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/checklist-screening-data-scientists-vs-analysts-vs-engineers/feed/ 1
How Badoo Strengthened its Senior Developer Screening Framework https://www.hackerrank.com/blog/how-badoo-strengthened-its-senior-developer-screening-framework/ https://www.hackerrank.com/blog/how-badoo-strengthened-its-senior-developer-screening-framework/#comments Wed, 04 Apr 2018 22:49:23 +0000 http://bloghr.wpengine.com/?p=11199 Senior software developers have an unusually high bar when judging a company’s candidate experience. They’re,...

The post How Badoo Strengthened its Senior Developer Screening Framework appeared first on HackerRank Blog.

]]>

Senior software developers have an unusually high bar when judging a company’s candidate experience. They’re, by far, today’s toughest roles to fill with ample job opportunities before them. The technical manager/director role, for instance, is the hardest IT job to fill at 107 days, according to Burning Glass.

Senior developers have little motivation to move forward with companies that are lacking in providing a world-class, positive experience for them in the job application process.

The reality is that many companies struggle with this piece. But Badoo...the social-focused social network....has been wildly successful overall, earning enormous growth in their user base to more than 380 million, with a whopping 400,000 new users added daily. Its senior technical team, of course, is pivotal to sustain this type of growth. 

So, when we came ran into Badoo’s Head of Talent Acquisition, Brad Richards, we were excited to learn more about their problem - achieving a rapid hiring process for senior developers en masse, while retaining the integrity of Badoo’s high technical bar. Brad gave a fascinating talk on how he achieved this world-class senior engineering recruiting process, which centered on improving the screening process.

Here’s an overview of what Brad and his team did:

What was the initial screening process like for senior developers?

Brad: We’ve always relied on take-home coding projects to assess our candidates' technical skills over other samples of work. This started to become an issue because we primarily hire senior engineers.

With families or other commitments, we realized they were limited on time when trying to complete our 3-hour projects. We started thinking if we were going to change our technical screening process we had to take into consideration all the unique problems senior engineers face like... security restrictions at their current jobs that don’t allow them to send samples of code, or being people-managers for so long that their coding skills might be a little rusty. We want our senior engineers to be up-to-date with the latest tools.

So how did you change the framework?

Brad: Initially we were crafting coding tests that were graded manually. We were pretty confident in this method, but it just wasn’t scalable. It created a major bottleneck, requiring multiple email correspondences, difficult time constraints for both developers and candidates, and lack of secure environment.

Plus, we realized on the candidate side, this was a big ask. It might make them feel like they needed to give a response within 24-hours.

We needed to figure out a new, less time-consuming and streamlined process to evaluate high volumes of technical candidates fast. This was a difficult challenge given that our hiring managers were attached to their method of screening.

We researched several different solutions to boost efficiency in technical hiring while creating a strong candidate experience. The ones we came across were HackerRank, DevSkiller, and Codility.

How did you ultimately make the decision?

Brad: We took into account a lot of factors when evaluating each platform, but in the end HackerRank offered a number of key differentiators. One of the big ones was helping us overcome our manual assessment bottleneck. Offering automated grading was critical given we had a finite amount of time in the week of interviewing people, and a high target number of candidates that we wanted to extend offers to by the end of the year.

Reducing time from 3 hours to 1.5 hours for technical assessments created a compounding difference in time savings.

From a recruiting perspective, the seamless experience with Lever ATS integration was the real clincher. Unlike competitors that we researched, the integration allows us to send tests without leaving the ATS, the report scores are returned back to us in an evaluation format so it’s the same as our candidate feedback report. And if we want a more detailed look at how the candidate has approached the challenge we can do that easily via the HackerRank platform as well.

In order to get hiring manager buy-in, we needed a platform that would allow customizable challenges so they would feel comfortable changing their testing methods. This feature has given our hiring managers the confidence to test various aspects from database administration to core computer science competencies; they have the option to compile tests in any way that also allows customizable questions.

Timing also played a key role in choosing the right platform. With the test expiration link feature, candidates would have the ability to complete the task whenever they’d like as opposed to our fixed time before.

Another differentiator was CodePair. Having the live ability to assess remote candidates programming ability in a real-world environment was so valuable. It also eliminated untracked Skype conversations and gave us more ability to review and measure success.

In the end, it also boiled down to what appealed most to developers. The HackerRank brand and its community has a currency with developers. Developers like to test themselves and are familiar with it, not only as a brand but also the interface. When looking at two competing options, this helped us make a final decision.

How successful have you been since optimizing your framework?

Brad: We transformed our recruiting process to be more streamlined for our recruiters,
developers, and candidates. Using HackerRank assessments gives us a more secure environment that candidates cannot plagiarize and we look more professional from their perspective.

We’re now able to screen technical skills at scale. In a recent one-day hiring event where we pre-qualified candidates using HackerRank, out of 40 developers who passed the test, only 1 candidate was a clear mismatch and we extended 9 offers. Our candidate journey went from 8 hours down to 5.5, and this includes the 2-hour coding test.

Hire, hire, hire has been our motto and HackerRank has been an important part of accelerating our ability to do so. HackerRank reduced time from start to hire by removing the bottleneck of finding time to take the three hour test, and grade them manually. This reduced developers’ time and gave us more time to consider a lot more candidates to help us achieve our ambitious hiring plans.

NEXT: Learn Peleton's strategies for winning tech talent here.

The post How Badoo Strengthened its Senior Developer Screening Framework appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/how-badoo-strengthened-its-senior-developer-screening-framework/feed/ 2
Screening | Step 4: Calibrate https://www.hackerrank.com/blog/calibrating-after-the-initial-screening/ https://www.hackerrank.com/blog/calibrating-after-the-initial-screening/#comments Sun, 14 Feb 2016 22:14:43 +0000 http://bloghr.wpengine.com/?p=8049 Welcome to the final part of a 4-part series on screening senior engineers. Step 1. Before You...

The post Screening | Step 4: Calibrate appeared first on HackerRank Blog.

]]>

Welcome to the final part of a 4-part series on screening senior engineers.
Step 1. Before You Do Anything
Step 2. Designing Impactful Challenges
Step 2a. The Challenge Checklist
Step 3. Setting Expectations, Warming Your Candidates 
Step 4. Calibrating After the Screening (This piece)


In steps 1, step 2 and step 3, we strategized on the best types of challenges to tease the engineers you need. But what good is a code challenge screening if you’re testing different candidates with different questions? Consistency can make the data you’re collecting meaningful. HackerRank’s head of challenge curation Dr. Heraldo Memelli finds that all too often, companies change the question after it’s already gone out to some candidates, ruining your data set. Periodically review which questions have been directly correlated with successful candidates.
After the initial screening, it’s crucial to mirror your code challenges with the rest of your interviewing rounds. It’s logical — folks who clear the automated code challenges online are more likely to perform well in-person if the questions are consistent. Automated code challenges are the best tool to predict who will perform well in the in-person interview. So, target your questions to mirror the style of questions asked in the actual interview as much as possible.
Choose questions that you’ve actually asked in on-site interviews so that you can see how candidates might react. This can help you frame and word the question appropriately as well. Of course, this means you’ll have to retire those questions from your in-person interviews. Aim to keep your code challenge banks fresh. Trying out new code challenges on your own time is a great way to not only benchmark your own team against newcomers but also keep your engineering teams’ skills sharp. Investing the time in revamping and optimizing your set of interview code challenges is minuscule compared to the cost of hiring wrong engineers. 
Tieing it All Together
Asking senior engineers to revisit fundamentals in an interview sounds outrageous. And it is if you simply send a cold email without any proper preparation. But automated code challenges are the most objective and successful predictors of hiring we have to filter through candidates at scale.
Gauging not only their intelligence but also how much they value fundamentals through algorithm and data structure questions are strong instruments to find the best engineering talent. If you set expectations and are mindful of senior engineers’ complicated hubris, you’ll have a stronger pool of senior engineers. And you’ll be set up with a replicable system to build and scale your engineering team. A set of well-designed mix of questions that test fundamentals, knowledge and depth of thinking, is a good way to weed out candidates who don’t have the basic skills you need to build revolutionary software.


Please subscribe to our blog to get a quick note when we occasionally write thoughtful, long form posts.


Welcome to the final part of a 4-part series on screening senior engineers.

Step 1. Before You Do Anything
Step 2. Designing Impactful Challenges
Step 2a. The Challenge Checklist
Step 3. Setting Expectations, Warming Your Candidates
Step 4. Calibrating After the Screening  (This piece)

 

The post Screening | Step 4: Calibrate appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/calibrating-after-the-initial-screening/feed/ 4
Screening | Step 3: Set Expectations https://www.hackerrank.com/blog/setting-expectations-warming-your-candidates/ https://www.hackerrank.com/blog/setting-expectations-warming-your-candidates/#comments Sat, 13 Feb 2016 21:56:33 +0000 http://bloghr.wpengine.com/?p=8032 Welcome to the 3rd part of a 4-part series on screening senior engineers. Step 1. Before You Do...

The post Screening | Step 3: Set Expectations appeared first on HackerRank Blog.

]]>

Welcome to the 3rd part of a 4-part series on screening senior engineers.
Step 1. Before You Do Anything
Step 2. Designing Impactful Challenges 
2a. The Challenge Checklist
Step 3. Setting Expectations, Warming Your Candidates (This piece)
Step 4. Calibrating After the Screening


In step 1 and step 2, we figured out what you want and designed the challenges to help surface the right engineers tailored to your needs. Now you can focus on the most important part of executing your new screening process: practicing tactful communication to engage senior engineers.
Senior engineers love a good challenge, but not if it’s time-consuming and futile. The truth is, accomplished engineers will scoff at a cold email prompting them to spend 1-2 hours solving a fundamental code challenge for a company they may never hear from again. It’s understandable why should they? Chances are they’ve already earned their stripes putting in late hours building software that’s reshaping our world one way or another. When designed and delivered haphazardly, automated code challenges will be perceived as insulting.
It’s critical to infuse an element of empathy in the delivery and design of your challenges. Cold emails with no explanation as to what they’ll be asked and why, are a surefire way to lose senior engineers. Those who make an attempt to make their candidates feel valued while scaling their screening systems will be the winners of today’s competitive war for talented engineers.
There are a couple of things you can do to mitigate this:
1. Be very clear about what you intend to ask and what you expect. Give them easy-to-digest prep material.
This is an important step in ensuring that you’re not rejecting great people just because they lack CS fundamental knowledge. Most senior engineers are not going to have CS fundamental knowledge right off the bat. First of all, nearly 60% of working software engineers don’t even have a proper CS background in one study. Second of all, even if they did, it was likely too long ago to remember anything that’s applicable in the real world. Expecting too much with no warning results in this: Screen Shot 2016-01-29 at 11.52.36 AM
Before sending testing engineers on fundamentals, explain that we’re not trying to quiz them on random things they don’t even need to use on the job. Instead, fundamental binary tree questions help gauge problem solving and critical thinking skills, as we explained in Step 0. Although many great candidates get rejected because they failed to adequately prepare, it’s actually not that hard for smart developers to learn or re-learn the fundamentals. It’s part of why companies are fine with requiring them. And, as Kickstart CEO Soham Mehta said, the best senior engineers want to brush up on their fundamentals anyway. 
2. Calculate the amount of time you need to take the challenges (usually between 45 and 90 minutes) and give them more than enough time to actually complete it. Communicate this to your candidates and explain that it shouldn’t take you more than an hour, but you have X hours to take it. It helps to simply articulate that you recognize that they’re extremely busy. Their time is valuable, so there’s no intense time limit to submit.
3. Explain why you’re even asking them to do this. For instance, if the code challenge replaces the resume or initial phone screening, let them know. Explain: “We ask you to do this code challenge so you don’t have to spend more time on the phone with multiple engineers.”  If you’re sending code challenges with no explanation, reasoning or preparation, your screening tool is an arbitrary knowledge test. You’re bound to anger senior engineers.
Bonus Tip: We did a quick analysis of dozens of code challenges and found a consistently lower completion rate when using the word “test.” Avoid this term like the plague. Instead, always use “challenges.”
So after you’ve implemented great code challenges, what can you do to make sure they’re successfully producing the best senior engineering candidates?
Read onto Step 4. Calibrating After the Screening


If you like what you see, please subscribe to our blog to get a quick note when we occasionally write thoughtful, long form posts.


Welcome to the 3rd part of a 4-part series on screening senior engineers.
Step 1. Before You Do Anything
Step 2. Designing Impactful Challenges
Step 2a. The Challenge Checklist
Step 3. Setting Expectations, Warming Your Candidates (This piece)
Step 4. Calibrating After the Screening

The post Screening | Step 3: Set Expectations appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/setting-expectations-warming-your-candidates/feed/ 5
Screening | Step 2: Design Impactful Challenges https://www.hackerrank.com/blog/design-impactful-code-challenges/ https://www.hackerrank.com/blog/design-impactful-code-challenges/#respond Fri, 12 Feb 2016 19:35:19 +0000 http://bloghr.wpengine.com/?p=7992 Welcome to the 2nd part of a 4-part series on screening senior engineers. Step 1. Before You...

The post Screening | Step 2: Design Impactful Challenges appeared first on HackerRank Blog.

]]>


Welcome to the 2nd part of a 4-part series on screening senior engineers.
Step 1. Before You Do Anything
Step 2. Designing Impactful Challenges (This piece)
2a. The Challenge Checklist
Step 3. Setting Expectations, Warming Your Candidates
Step 4. Calibrating After the Screening


In Step 1, we made the argument that you need to think about which you value more: intelligence or knowledge. Now we’ll get to the core of the actual design of these questions.

Broadly speaking, we’ve found that there are three facets of technical skills you should test for:

  • How well does he or she know the fundamentals
  • How deep is his or her technical knowledge
  • How deeply can he or she think about problems

The first two can be tested well before even interacting with the candidate using code challenges. The third facet is best measured in person. This is the longest step of this guide because we offer detailed examples of each category of challenges, as well as a crucial checklist of biggest mistakes that companies make when designing challenges.

I. Designing Algorithm Code Challenges

There’s one thing you need to account for off the bat: Can they code? It sounds obvious. But for years, notable engineers have repeatedly (2007, 2012 and as recent as 2015) pointed out that a major chunk of applicants can't write simple programs. You can weed these folks out by asking them to solve a basic code challenge. Your first challenge should be light and breezy.
Before asking algorithm questions, Soham Mehta, founder of a technical interview preparation site Interview Kickstart, includes quick multiple-choice challenges that test for some very basic CS fundamentals. e.g.:

  1. Given N distinct numbers, how many subsets can you form? [Answer: 2^N]
  2. Given string of length N, how many permutations of that string exist? [Answer: N!, or simply N x (N-1) x (N-2) … x 1]

a. Multiple Choice
Multiple choice code challenges are lightweight and are easier on the candidates. Offer several questions, each with plenty of answer choices. That minimizes the chance of getting correct answers by clicking randomly.


Here’s an algorithm-based multiple choice example:

Screen Shot 2016-01-30 at 10.30.04 AM

b. Code Completion
Code completion is another lightweight style to consider as the first impression with candidates. A code completion challenge is when candidates have to fill-in-the-blank of a given piece of code. Some of the greatest programming minds of all time spend a great deal of time reading source code. If you provide most of the code, and ask candidates to fill in the lines, it’s an interesting way for candidates to solve a challenge while gauging critical thinking and their ability to read other people’s code. Plus, it’s often more fun. We initiated a contest series exclusively for code completion for our community of developers recently and it’s been one of the most engaging contests we’ve ever held. Check out the contest for examples of sentence completion code challenges which will help guide you in creating some of your own.  

II. Designing Knowledge-Based Code Challenges

Unlike fundamental algorithm challenges, knowledge-based code challenges are much more straightforward because they’re dependent on knowledge of a particular domain or technology. For instance, challenges based on Client-Server, Sockets, Multi-threading are good signals of seniority in distributed systems. We asked Dr. Memelli to offer a great example of a knowledge-based code challenge:

Screen Shot 2016-01-30 at 10.53.51 AM
Here’s a knowledge-based multiple choice example:
Screen Shot 2016-01-30 at 10.29.29 AM

III. Designing Challenges that Gauge Depth of Thinking

While intelligence-based challenges are the best predictors of success, there’s one major differentiator between novice and an expert. And it’s not the years of experience. Rather, it’s how deeply can you think about problems? 

Josh Tyler, who runs engineering at Course Hero, defines experts as engineers who have proven ownership or thought leadership of large systems, like services, apps or frameworks. With this experience of ownership and tools, experts are scientifically proven to intuitively look at problems in deeper context than novice programmers.
There are quite a few studies that support this:

Screen Shot 2016-01-30 at 10.54.54 AM

Novice: “Novices operate from an explicit rules and knowledge-based perspective. They are deliberate and analytical, and therefore slower to take action, they decide or choose.”
Expert: Experts operate from a mature, holistic well-tried understanding, intuitively and without conscious deliberation. This is a function of experience. They do not see problems as one thing and solutions as another, they act.

  • A second fascinating study similarly uses fMRI technology to measure blood flow in the brain, comparing a novice artist and an expert artist. Again, the findings were in line with what we’ve seen so far:

Novice = Process information in the area that deals with features (surface-level).
Experts = Process information in the area that deals with deeper meaning.
In a phrase: “The artist ‘thinks’ portraits more than he ‘sees’ them.

So, how do you really test for depth in thinking? How do we know if engineers can think about software rather than just see its code? Unlike the first two types of challenges (algorithm and knowledge-based), which can be clear-cut automated challenges, questions that measure depth of thought are usually best accomplished in person. This way, you can start off simple and proceed to make the problem statement more complex as you proceed to work it out. There are two different types of questions that can help you measure seniority by depth of thought:
a.) Open-ended questions
After you have a vetted stream of candidates who pass the questions for technical aptitude, asking open-ended questions about big picture strategy is a good way to gauge depth of thought. Taylor finds success with questions like:

Tell me something you did that had a big impact in a positive way as a result of time to think and strategize. How about the negative impact?

“I find that mistakes are made when technical people run straight into the how we build something instead of challenging what the right thing to build is and asking the customer facing questions on what success looks like,” he says.   

Other examples of open-ended questions that are critical to test seniority-level and leadership skills:

  • How do you build search for Gmail?
  • Describe to me some bad code you've read or inherited lately.
  • When do you know your code is ready for production?

b.) Infuse multiple parts in your challenges
Tyler says the most effective way to design challenges for senior folks is to create lots of room for depth in the problem statement.
“Most of our interview questions are designed in a way that has many parts. A junior candidate usually only gets through the first part, whereas senior folks get through the second or third parts,’ Tyler says.
For instance, here’s an example of a good optimization question.

You are given many words and you have to find frequencies of each word. Here simple maps, arrays, lists will not work when a huge number of words are given. Instead, you should go for Trie, an efficient data structure here.

Greg Badros, who founded Prepared Mind Innovations, would break up this problem into the following parts:

  • Tell the candidate that you’ll start simple and make it more complex as you work through the problem
  • Ask for word frequencies
  • Make sure they get the simple map solution without coding it
  • Tell them how much RAM they’ve got and how big the dataset its
  • Ask them to estimate how big the process will get for the language they’d write this in
  1. If they get this far, then ask them to propose an alternative data structure that would be more memory efficient because they’re out of RAM
  2. When they’re out of design ideas, have them code as far as they go


    The Code Challenge Checklist

    So far, in step 2, we’ve been focusing on the diverse categories of challenges, based on what you need. Now let’s get down to the practical ways of designing challenges. We looked at the question banks of various companies to pinpoint the patterns of what makes a code challenge successful. Based on these patterns, here’s a checklist of 5 common mistakes to avoid and  ensure each challenge will draw the best candidates:
    [1] Do you have the right answer?
    This sounds like a no-brainer. But you’d be surprised as to how many companies just get their own code challenge wrong. CareerCup CEO Gayle McDowell frequently consults with tech companies of all sizes on their hiring process.
    “When I’ve reviewed companies’ question banks, about 10% of answers are wrong,” McDowell says.
    And it’s not a matter of carelessness or minor bugs in typing up the solutions. The challenge designer genuinely believed their algorithm was right until they were proven wrong. Take the time to ensure that 100% of your answers are correct. Otherwise, you’ll turn away a lot of strong candidates who were actually answering the question right.
    [2] Are your algorithm challenges challenging enough?
    When it comes to algorithm code challenges, McDowell estimates that if 5% of your candidates instantly know the solution to your question, then it’s likely to be too easy. Easy challenges cluster the mediocre and the great, which of course makes identifying great developers very difficult. Your challenge should be hard enough to separate the average from the top.
    In an algorithm code challenge, you should have at least one challenging question where only about 20% of your candidates solve it perfectly. A good algorithm question would have 2 (or more) different solutions, one more optimized than the other. This leads to 3 tiers of performances:
    Tier 1: The best candidates will pass all test cases because they implemented a correct and optimal solution.
    Tier 2: The okay candidates will pass most of the test cases with an algorithm that’s correct but suboptimal. Their code gives the right output, but times out on the large test cases.
    Tier 3: The candidates you don’t want to hire won’t develop a correct algorithm at all.
    If you use a platform like HackerRank, for instance, you can evaluate based on the time to complete a test case, taking into account both asymptotic complexity and the lower constraints. But it doesn't impose a time condition on all problems. It’s up to you as the problem designer to decide if the efficiency is important.
    [3] Are your problem statements detailed and tailored to your company?
    Problem statements can be incredibly daunting, but for senior engineers, this should be a telling challenge. Engineers who can identify the right sub-problems, solve smaller problems and then merge them together are more likely to be successful as leaders in your org.
    These larger principles of being able to break things down, spot patterns and attack problems systematically are crucial for any senior engineer. The more tailored and specific the problem statements are to your industry, the higher the chances of high-quality candidates completing code challenges as part of their  application.
    We did an experiment in which we compared two similar companies’ challengesone with a generic problem statement and another with a more tailored challenge. We saw a nearly 10% higher completion rate with the latter. Even anecdotally, we consistently see this direct correlation time and time again.
    Candidates are more drawn to and interested in challenges themed to your mission versus generic, cold challenges. VMware, for instance, created a host of very detailed, complex problem statements that delved deep into virtualization. You can see the Logical Hub Controller problem is richly tailored to a typical virtualized datacenter problem they grapple with daily. By replacing resumes with tailored code challenges for two years, VMware:

    • Saved VMware engineers 100+ of hours per quarter by only calling candidates who passed the code challenges
    • Increased the success rate for candidates who come onsite (compared to manual resume screenings).

    [4] Did you rule out luck or bias?
    If a candidate gets stuck on some aspect of a problem, were they just unlucky? It’s important to distinguish between these factors, and the best way to do this is by getting multiple data points. That is, ask a question that involves multiple hurdles. This way, if a candidate gets stuck on one aspect, you can help them through it and they still have other logical leaps to overcome (and thus additional data points for your evaluation).
    For example, consider this question:
    Given an array of people, with their birth and death years, find the year with the highest population.
    This problem has a bunch of solutions, each of which presents a new hurdle.

    • The 1st hurdle is coming up with any correct solution. Most candidates should be able to come up with a brute force algorithm (e.g., for each year that a person is alive, walk through all the people to count the number of people alive in that year), but a few won’t. If they don’t, give them some help and see if this was just a brief lapse in reasoning or a consistent issue.
    • The 2nd hurdle might be noticing that you don’t need to check the same year repeatedly. You can use a hash table to cache this data.
    • A 3rd hurdle might be noticing that you only need to check the years between the first birth year and the last death year. So a candidate might first get that information, and then proceed with checking that range of years.
    • A 4th hurdle might be noticing that, actually, you only need to check the first birth year through the last birth year. You don’t need to check years in which people only died; they certainly won’t have the highest population.
    • And so on, until we arrive at an optimal solution. Great candidates might even leap past several hurdles at once, and that’s a great sign. A problem like this has so many hurdles that you can more effectively see if there’s a pattern in the candidate’s performance. For good measure, test out questions on your peers first. Ask at least 2-3 engineers to solve the problem before unleashing onto your candidates. This helps you see what sort of hurdles are in the question and what to expect from candidates.

    [5] Are you sure there aren’t any CS jargon words?
     There’s a common misconception that you need to have a computer science (CS) degree in order to be a good programmer. In reality, only 40% of working software engineers in one survey said they had a CS degree. When we wrote about this in TechCrunch, Wavefront CEO Sam Pullara told us he agreed.
    Screen Shot 2016-01-30 at 11.19.38 AM
    Senior candidates, particularly, are most likely to be unfamiliar with CS textbook words. For instance, avoid dropping terms like “state machine” or “dependency injection.” Likewise, in order to avoid ruling out senior engineers who haven’t taken CS fundamental classes (or don’t remember them), avoid questions that involve more obscure algorithm knowledge.

This brings us to not only the most important step but also the most overlooked component of hiring senior engineers.
Read onto Step 3. Setting Expectations, Warming Your Candidates


Please subscribe to our blog to get a quick note when we occasionally write thoughtful, long form posts.


Welcome to the 2nd part of a 4-part series on screening senior engineers.

Step 1. Before You Do Anything
Step 2. Designing Impactful Challenges (This piece)
2a. The Challenge Checklist
Step 3. Setting Expectations, Warming Your Candidates
Step 4. Calibrating After the Screening

The post Screening | Step 2: Design Impactful Challenges appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/design-impactful-code-challenges/feed/ 0
Screening | Step 1: Before You Do Anything https://www.hackerrank.com/blog/step-0-before-you-do-anything/ https://www.hackerrank.com/blog/step-0-before-you-do-anything/#comments Thu, 11 Feb 2016 17:23:11 +0000 http://bloghr.wpengine.com/?p=8098 Welcome to the first part of a 4-part series on screening senior engineers. Step 1. Before You...

The post Screening | Step 1: Before You Do Anything appeared first on HackerRank Blog.

]]>

Welcome to the first part of a 4-part series on screening senior engineers.
Step 1. Before You Do Anything (This piece)
Step 2. Designing Impactful Challenges
Step 2a. The Challenge Checklist
Step 3. Setting Expectations, Warming Your Candidates 
Step 4. Calibrating After the Screening 


It’s never binary. The nuances of evaluating engineers deepen with their experience. Some seasoned engineers have created a radical new piece of software without ever having balanced a tree in their career. Others have gained valuable leadership experience as their coding skills have begun to rust. A few might be 10X engineers but haven’t figure out how to work in a team. When faced with a flood of candidates for a senior individual contributor position, it’s really difficult to gauge their skills. Seniority itself is hard to define. It’s a multitude of elements, including deep technical skills, leadership qualities and maturity. It’s hard to embody the latter soft skills on a resume. Technical skills, on the other hand, can be assessed using programming interview questions.
Traditionally, companies don’t ask coding interview questions until after they’ve screened their resumes or LinkedIn profiles. And they usually ask them to code manually on whiteboards. By then, you’ve already sunk in countless hours of manpower from recruiters and engineering managers. But there are many famous studies proving that resumes are a poor indicator of success (more on this later). It’s just how people have always screened people. When we want to hire great engineers, we ask candidates to prove their skills first and foremost through online programming interview questions.  For the purpose of this piece, let’s refer to these questions as “code challenges.”
By implementing code challenges as an early step in the evaluation process, you can partially qualify candidates and pinpoint the candidates on whom you should spend more time evaluating emotional intelligence and other characteristics. After analyzing thousands of code submissions, and interviewing several directors of engineering and consultants, we created this guide to design and deliver the most optimal code challenges for your potential senior engineering individual contributors.
But before you do anything, realize: “The questions don’t really matter. What matters first is a clear understanding of what you need,” says Soham Mehta, CEO of Interview Kickstart. Optimize your time by spending 80% to figure out what you need and 20% to craft the challenges.

The Questions Don’t Matter Yet

So, how do you know what you need? The two most common values of great engineers are intelligence and technical knowledge. Algorithm challenges are best used to test the former and knowledge or tool-based challenges are great for the latter.
But what most managers don’t realize is it’s better to keep these values mutually exclusive. Testing for both at the same time puts far too many constraints, limiting your pool of talent. So, how do you know what you need? It largely depends on the size of your company:

  1. Finding Smart Senior Engineers

Large companies, like Google and Facebook, are infamous for their algorithm and data structure challenges. When you have extensive teams, it’s better to hire for intelligence than knowledge. You likely have enough engineers to teach newcomers your tech stack. And smart people will be able to learn specific technologies pretty quickly anyway.
This is supported by an 85-year-long organizational research study that concludes: “cognitive ability (or intelligence) tests are the best predictor of success across fields.” Algorithm challenges, including ones that ask you to balance trees, are the programming equivalent of “cognitive ability tests” because they test for reasoning, problem solving and critical thinking skill.
What’s even more interesting is that the screening credentials commonly found on resumeslike education, age (or experience) and academic achievement — ranked among the worst predictors of success.
Years of hosting code challenges on behalf of high-growth companies reveal similar findings.
“Of the thousands of code challenges that companies like Amazon, VMware and Evernote use, algorithm challenges have produced the most successful candidates,” says Dr. Heraldo Memelli, lead content manager at HackerRank.
Some might argue that fundamental challenges are better geared toward junior engineers since they’re unrelated to experience. I mean, why would a senior engineer need to balance trees at this stage of her career, anyway? But McDowell, Mehta and just about every engineering manager we know stresses that testing senior engineers who value fundamentals is crucial for two reasons.
One, if algorithm challenges are the standard measure for intelligence for junior engineers on your team, your bar has to be consistent for senior engineers as well. Otherwise, you’ll hire a mix of smart junior engineers and, well, not-so-smart senior engineers.
Second, David Taylor, head of Sonos engineering, loves asking senior engineers data structure and algorithm questions because “if candidates shy away from that, you have a large red flag.” It’s a way to filter out folks who feel like they’re too good to roll up their sleeves and revisit the basics. Engineers should be “continually interested in keeping themselves up to speed, in revising the fundamentals and taking on intriguing programming problems,” Mehta says. “Those are the people I want to work with.”
Granted, the burden shouldn’t be entirely on the candidates. The onus is also on companies to properly prepare senior engineering candidates to ace these fundamental challenges. We’ll cover more on this in step 2.
2. Finding Knowledgeable Talent
Smaller companiesones that can’t afford to wait for senior engineers to learn the tech stack they needare most likely to focus on knowledge over intelligence. By crafting challenges that reveal technical knowledge in specific tools, you’ll attract engineers who can start hacking a new application on day one. So, it’s better to focus on knowledge-specific challenges if you’re a stealthy startup.
Welcome to the first part of a 4-part series on screening senior engineers.

Step 1. Before You Do Anything (This piece)
Step 2. Designing Impactful Challenges
2a. The Challenge Checklist
Step 3. Setting Expectations, Warming Your Candidates
Step 4. Calibrating After the Screening


Please subscribe to our blog to get a quick note when we occasionally write thoughtful, long form posts.


 

The post Screening | Step 1: Before You Do Anything appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/step-0-before-you-do-anything/feed/ 6