You want to hire SQL developer and start your IT recruitment campaign. You receive many resumes and cover letters – now it’s time to begin screening process. Looking through applications and talking over the phone with candidates you start wondering whether a certain SQL programmer is good enough to become a part of your IT team and are they worth inviting for an on-site technical interview. On the one hand you don’t want to turn down SQL developer with potential that could be valuable for your company. On the other hand you don’t want to invite weak candidate for interview with your IT team and hear them complaining that the candidate programming skills are poor and they knew it after 5 minute talk.
That’s why it is so important to plan your screening process of SQL programming skills and choose such methods that will support IT recruiters in doing it as accurate as possible. So we thought we will give you a hand. Below you will find all the crucial information on how to screen candidates fast and effective. Let’s start.
1. What is SQL?
SQL is the most popular 4GL (Fourth Generation programming Language), which means that programmers only declare what the result looks like, rather than how the result should be calculated by the database. Historically, this declarative programming paradigm has been a key feature for ad-hoc queries run for data introspection executed by human users directly with SQL (rather than with a UI). In modern days, SQL is also embedded in other, more general purpose programming languages like Java in order to access data from central databases.
2. What is important for IT Recruiter to know about SQL?
There are certain tips which can be valuable for IT recruiters when it comes to SQL.
The declarative programming paradigm is very different from object orientation, procedural programming, or even functional programming. It takes a special mindset and experience for a developer to become a SQL expert. While basic tasks can be implemented very easily by everyone (including non-programmers, such as business analysts, requirements engineers, project managers, etc), complex SQL is rather hard to get right.
These are the things about SQL that you should bear in mind:
- A thorough background on (or at least some intuition about) set theory is very important for developers working with SQL frequently. If such background is absent, developers tend to fetch individual data items one-by-one, processing them in the client using a general-purpose language like Java, rather than performing bulk operations on entire data sets directly in the database. This has drastic performance impacts.
- Most universities, unfortunately, do not go far beyond relational algebra and some basic SQL-92 features. SQL has evolved a lot during the past decades, both in the SQL standard form, as well as in vendor-specific dialects. There are a variety of features like window functions, common table expressions (CTE), and much more, which help developers run complex reports relatively easily. Typically, knowledge about window functions and CTE help distinguish between SQL beginners and advanced SQL developers. This is important in ETL, reporting, BI, analytics use-cases.
- Perhaps 90% of all SQL performance related issues can be solved with proper indexing. Being able to identify situations where an index will be beneficial (or in rare cases: detrimental) is thus essential. The other 10% are usually work for DBA and operations teams, and are often out of scope for developers, unless working in specialised setups.
- In theory, a declarative SQL statement will be optimised as much as possible by the database. In practice, many databases still need help from the SQL developer. Many SQL statements are formally equivalent, but some will produce better execution plans than others. These things differ from database to database. In everyday SQL jobs, it is usually sufficient if developers know about execution plans and the fact that SQL needs to be tuned. The necessary skills for the particular database can still be obtained on the job. In more specific situations (Big Data, high scalability), the developer should bring tuning knowledge about the particular database in use.
- SQL feels “arcane” for “modern” developers. This is mostly due to the language syntax, which stems from times when COBOL and FORTRAN were still widely used. Apart from syntax, there is nothing arcane about the technology. This subjective topic helps separating developers who are curious about finding the right tool for the job from those who follow dogma (and will thus probably make wrong choices later on). In particular, technical recruiters should be able to distinguish between developers who want to hide SQL behind an ORM (that’s bad) and those who understand that ORMs only solve a subset of data storage problems, while SQL is still an important technology. All ORM vendors agree on this distinction, while unfortunately, many developers prefer not to touch SQL.
3. How to verify SQL programming skills in screening phase?
IT recruiters reach out to various screening methods from assessing SQL programming skills based on resume through video or phone interviews to online coding tests.
Below you find some useful and practical recruiting tips how to verify SQL skills using each method.
3.1. Technical screening of SQL programming skills based on CV
How should you read SQL developer resume? As an IT recruiter you can find some really valuable information in resume you get from SQL developer, but you have to know how to read it and what to look for. This will enable you to speak the same language with your candidates (or at least understand basics the candidate is talking about).
That’s why we prepared this basic SQL glossary, just have a look.
SQL glossary for technical recruiters
|Declarative programming, 4GL||SQL is a fundamentally different programming language (see also intro). The fact that it follows the declarative programming paradigm is important for a recruiter.|
|DDL||Data Definition Language, the subset of the SQL language that is used for defining the database|
|DML||Data Manipulation Language, the subset of the SQL language that is used for manipulating the data in the database. Most queries are DML|
|Execution Plan||The algorithm chosen by the optimiser for a given SQL statement.|
|Optimiser||The engine that translates a SQL statement into an execution plan. Even simple statements have dozens of possible valid execution plans. A database may maintain several plans per statement.|
|Cost based optimiser (CBO)||Most modern databases ship with a CBO, which makes decisions based on statistics, histograms, and heuristics about production data. It is pretty hard to beat the decision made by a CBO in a modern, commercial database.|
|Rule based optimiser||Older databases implement simple rule engines in order to make execution plan decisions. These rules are often wrong in real world situations, which is why queries in these situations need much more tuning, e.g. by using hints.|
|Join||One of the most fundamental operations in relational algebra that helps “joining” / “connecting” two database tables, for instance books and authors to produce results.|
|PL/SQL, T-SQL, pgplsql, etc.||These are procedural extensions to the SQL language, i.e. general-purpose languages that integrate SQL. While these skills are very useful in some projects, they are not necessarily an important indicator for SQL skills.|
|Normalisation||The practice of reducing redundancy in a relational database by separating conceptually distinct data (e.g. books, authors) into different relations (tables). There are several different levels of normalisation.|
|Relational Database (relational model, relational algebra, etc.)||While SQL mostly works with relational databases, it can also work on other data storage systems. Relational databases implement the relational model|
|E.F. Codd||Optional background knowledge: Codd was the biggest contributor to relational algebra and much more.|
Now that you are familiar with SQL basics, we can go into further details. If you’re not a technical person then it’s easy to get confused by all the different technology names and abbreviations. If the candidate says “sequel” does it mean “ess-queue-el”? Or is SQL something similar to MySQL? Just keep on reading and you will get an answer.
Most common SQL terms that are used interchangeably:
- Statement, command, query
- MSSQL, SQL Server (not to be confused with MySQL)
- Oracle (the company), Oracle Database
- The pronunciation is either “ess-queue-el” or “sequel”. Over the past decades, the community could never settle on either pronunciation.
- Common table expressions, subquery factoring, WITH clause
Relations between respective versions of SQL technology:
- SQL-92 is the first, widely adopted standard (although there had been standards before)
- SQL-1999 made SQL “turing complete”, which means that any program can be implemented with common table expressions. In simpler words: It made SQL really powerful
- SQL-2003 added window functions, which are extremely useful for analytics
- In general SQL evolves a bit more slowly, and more backwards-compatible than other ecosystems. Also, usually, vendor-specific features can be very important for specific projects that integrate tightly with SQL, but are out of scope for this listing.
So far experience: what is important for IT recruiter
If you see from SQL developer resume that they’ve had a couple of years of experience, dig a little bit deeper and look for following things in CV:
- One of the most valuable SQL skills is SQL performance tuning both from a developer perspective (reading execution plans, maintaining indexes, etc.) as well as from a DBA / operations perspective (resolving contention issues, tuning storage, etc.). The latter is a bit more specific to operations, but it can still be a plus if a SQL developer has to work closely with operations.
- SQL design skills, and a profound knowledge of relational theory is important when new projects are started. It is very important to get database design right in early stages, as it is very hard to migrate badly designed databases later on. In legacy systems, most developers can simply follow the established rules, where design skills are less crucial (although still helpful).
- SQL refactoring skills can prove quite useful in larger teams where the SQL starts getting rather complex. Unlike Java refactoring which is rather easy nowadays (thanks to IDE tooling), SQL refactoring is still very hard because the SQL code is difficult to test.
What else in CV can be valuable to assess SQL programming skills?
As an IT recruiter you can also draw following conclusions from SQL developer resume:
- SQL is an excellent technology for stateless, streaming data processing. A developer experienced with any of these technologies will also be good with SQL:
- Functional programming (Lisp, Clojure, Ocaml, Haskell, Scala)
- Various NoSQL technologies, including MongoDB, CouchBase, Neo4j and many more, which all ship with query languages inspired by SQL
- Most SQL jobs are not SQL-only jobs, i.e. the developer will need to be able to work both with general purpose languages (like Java, C#, etc.), and SQL. A good sign that a developer is able to do this is to look for interest and experience in a lot of different programming languages.
3.2. Technical screening of SQL skills during a phone/video interview
Resume itself is not enough to draw draw reliable conclusions about candidate’s SQL programming skills. Therefore, IT recruiters often conduct a phone or video interview. Such an interview gives an opportunity to dig deeper into candidate’s skills and experience. Often such a technical phone or video interview serves as a basis for making a decision whether to invite candidate for on-site technical interview with IT team or not, so it’s worth to choose and ask the right questions.
Of course, questions vary greatly due to position you are recruiting for and specific skills you want to verify. Below you will find some general questions to find out more about candidate’s SQL skills.
1. SQL interview question concerning developer’s experience
- Q1: With which technologies listed in your CV, did you have commercial experience in the past 2 years? What were your responsibilities? What was your biggest achievement?
- Why to ask Q1: By asking this question, you can find out more about candidate’s SQL up-to-date experience, responsibilities and achievements. Thus you get to know your candidate better.
2. SQL interview question concerning developer’s decision making regarding SQL technology
- Q2: On what stage did you join recent projects? Were you involved in the choice of technology or project setup? If yes, which technology/ relational database management system did you choose or recommend for the project and why?
- Why to ask Q2: Such a questions shows not only how a candidate makes choices regarding technology but also whether they were included into making decisions. Especially important if you are looking for someone with experience.
3. Behavioral question for SQL developer
- Q3: Think about programming project decision you made that was a failure. Why do you think it was a mistake? Why did it happen? Could there be anything done differently in order to turn it into success? What steps did you take to improve the situation? What did you learn from this experience?
- Why to ask Q3: That type of question will help you find out how the candidate perceives their decisions, draws conclusions and how much they learn from their previous experience.
3.3. Technical screening of SQL skills with online coding test
Online coding tests can be a great way to screen SQL skills. Below you will find information how you can use programming tests and which ones to choose.
Online SQL coding tests – the primary or additional method for screening
Coding tests can be used in two ways. Some companies invite candidates for programming test if they pass screening process e.g. once IT recruiter looks through their CV or interviews them over the phone or video. However, it is more common to invite all candidates that apply for certain SQL programming position to take a test.This gives them a couple of benefits. IT recruiters don’t have to spend time on all applications, but only on candidates that have potential to fit a job as far as their programming skills are concerned. Moreover, candidate that takes a coding assessment shows some engagement and willingness to participate in your IT recruitment process. It can be a sign that they are more likely to want to find a job.
SQL online coding test – which one to choose?
In order to screen accurate, coding tests have to be the right ones.
There are some SQL online tests on the market but often they verify candidate’s academic knowledge rather than programming skills and abilities to solve real life problems. This is what really annoys experienced programmers and that’s why they don’t like that kind of coding assessments. If coding test verifies book knowledge they cannot show their skills in action and prove that they are capable of solving real life programming challenges.
That’s why you should choose coding tests carefully in your IT recruitment process. Below you will find my top 5 features of SQL tests you should be looking for:
- SQL coding tests should consist of a couple of tasks, not only multiple-choice tests, but above all, programming tasks which difficulty should match the responsibilities the candidates will have if they get the job (tests shouldn’t be based on algorithmic tasks as thus you cannot verify whether a candidate can solve real life coding challenges).
- There is no point in forbidding the programmer to use external sources, the best way is to create them such an environment like they have at work, so open book exam is much more appropriate. Moreover, the candidate should be able to use their preferred IDE, just as he does on a daily basis.
- SQL programming tests should verify not only SQL skills as far as technology in general is concerned but also knowledge specific for particular database engines
- Coding test can also include task with code review challenges to test SQL skills. It gives very accurate information about the experience of the candidate, their approach to code quality and efficiency of debugging and finding traps. Such an assessment should be obligatory when recruiting senior SQL developers.
4. DevSKiller ready to use online SQL coding assessment tests
DevSKiller helps companies in IT recruitment process by providing them with an infrastructure which lets them test programming skills of candidates in the environment which imitates 1st day at work experience. We allow companies to use their own code base, whole IT projects using frameworks and libraries, to test programmers online. However, we also have some ready-to-use SQL coding tests which you can use in your technical recruitment campaign.
Contains following tasks:
1) Programming task - Complete a movie collection application that includes SQL queries and is built using Django