Repository files navigation

Data Test: Round 1

Thank you for taking the time to complete our initial set of challenges. These are designed to help gauge your abilities on some of the core capabilities of the kind of work we do in our team - and help us to tailor the recruitment experience best to your current skill level. There are no "correct" answers to aim for, all of the problems are open to interpretation, and so feel free to take any approach you see fit to any of them.

Feel free to spend as much or as little time as you'd like, however bear in mind that the purpose of this is just to get a handle on your skill level and start a conversation so be pragmatic in how much time you spend. As a guidline, 20 minutes should be the most time it would be sensible to spend, and you may find you can answer some questions very quickly.

Challenge 1: Om Nom Nom

Recently we surveyed some of the dogs in our office (25 Labradors and 25 Spaniels) for how tasty they thought two of our ingredients were (Chicken and Fish). The taste score is a highly scientific measure developed by our nutrition team. We looked at the average scores, both overall and by breed and the results were confusing...

Challenge Picture

What should we conclude from these results?

Challenge 2: Super secret treat

Our food team has developed a new kind of super secret treat which we think all of our dogs are going to love. What we don't know is whether it should be square or round. We sent some samples to a selection of our loyal subscribers and then offered them the opportunity to buy more. The results of that test are below.

Month# Dogs offered Square Treat# Dogs who bought Square Treat# Dogs offered Round Treat# Dogs who bought Round Treat
March1002015037
April200381500
May3005515039
June4007515041

Construct a visual (table, graphic or chart) of your choosing to interpret these results and suggest what we should conclude from the results. Think about:

  • Do we have enough data to make a decision about which treat works best?*
  • What do you recommend we do in July and why?
  • What assumptions have you made and how would you confirm those assumptions if you needed to?
  • How would you go about working out what happened in April?
  • Waht feedback would you give the team about how they carried out this test?

*(If you're feeling rusty on how to work out whether we've seen enough data yet then check out this excellent article on A/B testing statistics, or this very visual calculator)

Challenge 3: Rover the Labrador

One of the database technologies we use is MySQL, and we quite often use SQL to get at the data we need to inform decisions across the business. Below is a query that we've been using but one of the dogs has been editing the code and now we're getting an error.

(If you're feeling rusty, then check out sections 2, 3, 4, 5 & 6 of this tutorial)

Rover the Labrador has been in touch about his food and said he prefers chicken to beef, and would like a chicken-based blend rather than his current beef-based one. We've been looking for all of our Labradors that are called Rover, to find out what blends they're on right now, but we're getting a syntax error. Can you correct the query so that it works and then sort the answers by their most_recent_blend_date so that dogs who've had a blend more recently appear at the top?

SELECTdog.dog_name,
dog.breed,
dog.signup_date,
blend.flavour,
MAX(blend.order_date) as most_recent_blend_date
FROM dog
INNER JOIN blend
ON (blend.dog_id=dog.dog_id)
WHEREdog.dog_name='Rover'WHEREdog.breed='Labrador'GROUP BY dog_name, breed, signup_date, flavour

(If you'd like something to help you work with this, you might want to use a tool like DB Fiddle to test out your SQL. You can paste the content of this file into the left hand pane of that tool and the query above into the right hand pane to create yourself an environment which you can test in. You'll know if you've set it up right, if you run the query above before correcting it (by clicking the Run button in the top left of DB fiddle) and you get an error saying something like You have an error in your SQL syntax)

Extension questions - these are if you want to show off your skills and are not required, so only do these if it took you less than 5 minutes to do the first part, and don't spend more than 20 minutes on them.

  • We're interested in when customers change their favourite flavour. Write a query which will find the flavour and order_date for any blends which had a different flavour to the previous blend for that pet. Restrict your answer to pets with a dog_id less than 100.
  • Take the query you've just written and adapt it to display which flavour changes (i.e. combination of the flavour before the change and the flavour after the change) are most common.

About

Short set of small challenges for data team interviews

Topics

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Data Test: Round 1

Thank you for taking the time to complete our initial set of challenges. These are designed to help gauge your abilities on some of the core capabilities of the kind of work we do in our team - and help us to tailor the recruitment experience best to your current skill level. There are no "correct" answers to aim for, all of the problems are open to interpretation, and so feel free to take any approach you see fit to any of them.

Feel free to spend as much or as little time as you'd like, however bear in mind that the purpose of this is just to get a handle on your skill level and start a conversation so be pragmatic in how much time you spend. As a guidline, 20 minutes should be the most time it would be sensible to spend, and you may find you can answer some questions very quickly.

Challenge 1: Om Nom Nom

Recently we surveyed some of the dogs in our office (25 Labradors and 25 Spaniels) for how tasty they thought two of our ingredients were (Chicken and Fish). The taste score is a highly scientific measure developed by our nutrition team. We looked at the average scores, both overall and by breed and the results were confusing...

Challenge Picture

What should we conclude from these results?

Challenge 2: Super secret treat

Our food team has developed a new kind of super secret treat which we think all of our dogs are going to love. What we don't know is whether it should be square or round. We sent some samples to a selection of our loyal subscribers and then offered them the opportunity to buy more. The results of that test are below.

Month# Dogs offered Square Treat# Dogs who bought Square Treat# Dogs offered Round Treat# Dogs who bought Round Treat
March1002015037
April200381500
May3005515039
June4007515041

Construct a visual (table, graphic or chart) of your choosing to interpret these results and suggest what we should conclude from the results. Think about:

  • Do we have enough data to make a decision about which treat works best?*
  • What do you recommend we do in July and why?
  • What assumptions have you made and how would you confirm those assumptions if you needed to?
  • How would you go about working out what happened in April?
  • Waht feedback would you give the team about how they carried out this test?

*(If you're feeling rusty on how to work out whether we've seen enough data yet then check out this excellent article on A/B testing statistics, or this very visual calculator)

Challenge 3: Rover the Labrador

One of the database technologies we use is MySQL, and we quite often use SQL to get at the data we need to inform decisions across the business. Below is a query that we've been using but one of the dogs has been editing the code and now we're getting an error.

(If you're feeling rusty, then check out sections 2, 3, 4, 5 & 6 of this tutorial)

Rover the Labrador has been in touch about his food and said he prefers chicken to beef, and would like a chicken-based blend rather than his current beef-based one. We've been looking for all of our Labradors that are called Rover, to find out what blends they're on right now, but we're getting a syntax error. Can you correct the query so that it works and then sort the answers by their most_recent_blend_date so that dogs who've had a blend more recently appear at the top?

SELECTdog.dog_name,
dog.breed,
dog.signup_date,
blend.flavour,
MAX(blend.order_date) as most_recent_blend_date
FROM dog
INNER JOIN blend
ON (blend.dog_id=dog.dog_id)
WHEREdog.dog_name='Rover'WHEREdog.breed='Labrador'GROUP BY dog_name, breed, signup_date, flavour

(If you'd like something to help you work with this, you might want to use a tool like DB Fiddle to test out your SQL. You can paste the content of this file into the left hand pane of that tool and the query above into the right hand pane to create yourself an environment which you can test in. You'll know if you've set it up right, if you run the query above before correcting it (by clicking the Run button in the top left of DB fiddle) and you get an error saying something like You have an error in your SQL syntax)

Extension questions - these are if you want to show off your skills and are not required, so only do these if it took you less than 5 minutes to do the first part, and don't spend more than 20 minutes on them.

  • We're interested in when customers change their favourite flavour. Write a query which will find the flavour and order_date for any blends which had a different flavour to the previous blend for that pet. Restrict your answer to pets with a dog_id less than 100.
  • Take the query you've just written and adapt it to display which flavour changes (i.e. combination of the flavour before the change and the flavour after the change) are most common.

About

Short set of small challenges for data team interviews

Topics

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Data Test: Round 1

Thank you for taking the time to complete our initial set of challenges. These are designed to help gauge your abilities on some of the core capabilities of the kind of work we do in our team - and help us to tailor the recruitment experience best to your current skill level. There are no "correct" answers to aim for, all of the problems are open to interpretation, and so feel free to take any approach you see fit to any of them.

Feel free to spend as much or as little time as you'd like, however bear in mind that the purpose of this is just to get a handle on your skill level and start a conversation so be pragmatic in how much time you spend. As a guidline, 20 minutes should be the most time it would be sensible to spend, and you may find you can answer some questions very quickly.

Challenge 1: Om Nom Nom

Recently we surveyed some of the dogs in our office (25 Labradors and 25 Spaniels) for how tasty they thought two of our ingredients were (Chicken and Fish). The taste score is a highly scientific measure developed by our nutrition team. We looked at the average scores, both overall and by breed and the results were confusing...

Challenge Picture

What should we conclude from these results?

Challenge 2: Super secret treat

Our food team has developed a new kind of super secret treat which we think all of our dogs are going to love. What we don't know is whether it should be square or round. We sent some samples to a selection of our loyal subscribers and then offered them the opportunity to buy more. The results of that test are below.

Month# Dogs offered Square Treat# Dogs who bought Square Treat# Dogs offered Round Treat# Dogs who bought Round Treat
March1002015037
April200381500
May3005515039
June4007515041

Construct a visual (table, graphic or chart) of your choosing to interpret these results and suggest what we should conclude from the results. Think about:

  • Do we have enough data to make a decision about which treat works best?*
  • What do you recommend we do in July and why?
  • What assumptions have you made and how would you confirm those assumptions if you needed to?
  • How would you go about working out what happened in April?
  • Waht feedback would you give the team about how they carried out this test?

*(If you're feeling rusty on how to work out whether we've seen enough data yet then check out this excellent article on A/B testing statistics, or this very visual calculator)

Challenge 3: Rover the Labrador

One of the database technologies we use is MySQL, and we quite often use SQL to get at the data we need to inform decisions across the business. Below is a query that we've been using but one of the dogs has been editing the code and now we're getting an error.

(If you're feeling rusty, then check out sections 2, 3, 4, 5 & 6 of this tutorial)

Rover the Labrador has been in touch about his food and said he prefers chicken to beef, and would like a chicken-based blend rather than his current beef-based one. We've been looking for all of our Labradors that are called Rover, to find out what blends they're on right now, but we're getting a syntax error. Can you correct the query so that it works and then sort the answers by their most_recent_blend_date so that dogs who've had a blend more recently appear at the top?

SELECTdog.dog_name,
dog.breed,
dog.signup_date,
blend.flavour,
MAX(blend.order_date) as most_recent_blend_date
FROM dog
INNER JOIN blend
ON (blend.dog_id=dog.dog_id)
WHEREdog.dog_name='Rover'WHEREdog.breed='Labrador'GROUP BY dog_name, breed, signup_date, flavour

(If you'd like something to help you work with this, you might want to use a tool like DB Fiddle to test out your SQL. You can paste the content of this file into the left hand pane of that tool and the query above into the right hand pane to create yourself an environment which you can test in. You'll know if you've set it up right, if you run the query above before correcting it (by clicking the Run button in the top left of DB fiddle) and you get an error saying something like You have an error in your SQL syntax)

Extension questions - these are if you want to show off your skills and are not required, so only do these if it took you less than 5 minutes to do the first part, and don't spend more than 20 minutes on them.

  • We're interested in when customers change their favourite flavour. Write a query which will find the flavour and order_date for any blends which had a different flavour to the previous blend for that pet. Restrict your answer to pets with a dog_id less than 100.
  • Take the query you've just written and adapt it to display which flavour changes (i.e. combination of the flavour before the change and the flavour after the change) are most common.

About

Short set of small challenges for data team interviews

Topics

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Data Test: Round 1

Thank you for taking the time to complete our initial set of challenges. These are designed to help gauge your abilities on some of the core capabilities of the kind of work we do in our team - and help us to tailor the recruitment experience best to your current skill level. There are no "correct" answers to aim for, all of the problems are open to interpretation, and so feel free to take any approach you see fit to any of them.

Feel free to spend as much or as little time as you'd like, however bear in mind that the purpose of this is just to get a handle on your skill level and start a conversation so be pragmatic in how much time you spend. As a guidline, 20 minutes should be the most time it would be sensible to spend, and you may find you can answer some questions very quickly.

Challenge 1: Om Nom Nom

Recently we surveyed some of the dogs in our office (25 Labradors and 25 Spaniels) for how tasty they thought two of our ingredients were (Chicken and Fish). The taste score is a highly scientific measure developed by our nutrition team. We looked at the average scores, both overall and by breed and the results were confusing...

Challenge Picture

What should we conclude from these results?

Challenge 2: Super secret treat

Our food team has developed a new kind of super secret treat which we think all of our dogs are going to love. What we don't know is whether it should be square or round. We sent some samples to a selection of our loyal subscribers and then offered them the opportunity to buy more. The results of that test are below.

Month# Dogs offered Square Treat# Dogs who bought Square Treat# Dogs offered Round Treat# Dogs who bought Round Treat
March1002015037
April200381500
May3005515039
June4007515041

Construct a visual (table, graphic or chart) of your choosing to interpret these results and suggest what we should conclude from the results. Think about:

  • Do we have enough data to make a decision about which treat works best?*
  • What do you recommend we do in July and why?
  • What assumptions have you made and how would you confirm those assumptions if you needed to?
  • How would you go about working out what happened in April?
  • Waht feedback would you give the team about how they carried out this test?

*(If you're feeling rusty on how to work out whether we've seen enough data yet then check out this excellent article on A/B testing statistics, or this very visual calculator)

Challenge 3: Rover the Labrador

One of the database technologies we use is MySQL, and we quite often use SQL to get at the data we need to inform decisions across the business. Below is a query that we've been using but one of the dogs has been editing the code and now we're getting an error.

(If you're feeling rusty, then check out sections 2, 3, 4, 5 & 6 of this tutorial)

Rover the Labrador has been in touch about his food and said he prefers chicken to beef, and would like a chicken-based blend rather than his current beef-based one. We've been looking for all of our Labradors that are called Rover, to find out what blends they're on right now, but we're getting a syntax error. Can you correct the query so that it works and then sort the answers by their most_recent_blend_date so that dogs who've had a blend more recently appear at the top?

SELECTdog.dog_name,
dog.breed,
dog.signup_date,
blend.flavour,
MAX(blend.order_date) as most_recent_blend_date
FROM dog
INNER JOIN blend
ON (blend.dog_id=dog.dog_id)
WHEREdog.dog_name='Rover'WHEREdog.breed='Labrador'GROUP BY dog_name, breed, signup_date, flavour

(If you'd like something to help you work with this, you might want to use a tool like DB Fiddle to test out your SQL. You can paste the content of this file into the left hand pane of that tool and the query above into the right hand pane to create yourself an environment which you can test in. You'll know if you've set it up right, if you run the query above before correcting it (by clicking the Run button in the top left of DB fiddle) and you get an error saying something like You have an error in your SQL syntax)

Extension questions - these are if you want to show off your skills and are not required, so only do these if it took you less than 5 minutes to do the first part, and don't spend more than 20 minutes on them.

  • We're interested in when customers change their favourite flavour. Write a query which will find the flavour and order_date for any blends which had a different flavour to the previous blend for that pet. Restrict your answer to pets with a dog_id less than 100.
  • Take the query you've just written and adapt it to display which flavour changes (i.e. combination of the flavour before the change and the flavour after the change) are most common.

About

Short set of small challenges for data team interviews

Topics

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Data Test: Round 1

Thank you for taking the time to complete our initial set of challenges. These are designed to help gauge your abilities on some of the core capabilities of the kind of work we do in our team - and help us to tailor the recruitment experience best to your current skill level. There are no "correct" answers to aim for, all of the problems are open to interpretation, and so feel free to take any approach you see fit to any of them.

Feel free to spend as much or as little time as you'd like, however bear in mind that the purpose of this is just to get a handle on your skill level and start a conversation so be pragmatic in how much time you spend. As a guidline, 20 minutes should be the most time it would be sensible to spend, and you may find you can answer some questions very quickly.

Challenge 1: Om Nom Nom

Recently we surveyed some of the dogs in our office (25 Labradors and 25 Spaniels) for how tasty they thought two of our ingredients were (Chicken and Fish). The taste score is a highly scientific measure developed by our nutrition team. We looked at the average scores, both overall and by breed and the results were confusing...

Challenge Picture

What should we conclude from these results?

Challenge 2: Super secret treat

Our food team has developed a new kind of super secret treat which we think all of our dogs are going to love. What we don't know is whether it should be square or round. We sent some samples to a selection of our loyal subscribers and then offered them the opportunity to buy more. The results of that test are below.

Month# Dogs offered Square Treat# Dogs who bought Square Treat# Dogs offered Round Treat# Dogs who bought Round Treat
March1002015037
April200381500
May3005515039
June4007515041

Construct a visual (table, graphic or chart) of your choosing to interpret these results and suggest what we should conclude from the results. Think about:

  • Do we have enough data to make a decision about which treat works best?*
  • What do you recommend we do in July and why?
  • What assumptions have you made and how would you confirm those assumptions if you needed to?
  • How would you go about working out what happened in April?
  • Waht feedback would you give the team about how they carried out this test?

*(If you're feeling rusty on how to work out whether we've seen enough data yet then check out this excellent article on A/B testing statistics, or this very visual calculator)

Challenge 3: Rover the Labrador

One of the database technologies we use is MySQL, and we quite often use SQL to get at the data we need to inform decisions across the business. Below is a query that we've been using but one of the dogs has been editing the code and now we're getting an error.

(If you're feeling rusty, then check out sections 2, 3, 4, 5 & 6 of this tutorial)

Rover the Labrador has been in touch about his food and said he prefers chicken to beef, and would like a chicken-based blend rather than his current beef-based one. We've been looking for all of our Labradors that are called Rover, to find out what blends they're on right now, but we're getting a syntax error. Can you correct the query so that it works and then sort the answers by their most_recent_blend_date so that dogs who've had a blend more recently appear at the top?

SELECTdog.dog_name,
dog.breed,
dog.signup_date,
blend.flavour,
MAX(blend.order_date) as most_recent_blend_date
FROM dog
INNER JOIN blend
ON (blend.dog_id=dog.dog_id)
WHEREdog.dog_name='Rover'WHEREdog.breed='Labrador'GROUP BY dog_name, breed, signup_date, flavour

(If you'd like something to help you work with this, you might want to use a tool like DB Fiddle to test out your SQL. You can paste the content of this file into the left hand pane of that tool and the query above into the right hand pane to create yourself an environment which you can test in. You'll know if you've set it up right, if you run the query above before correcting it (by clicking the Run button in the top left of DB fiddle) and you get an error saying something like You have an error in your SQL syntax)

Extension questions - these are if you want to show off your skills and are not required, so only do these if it took you less than 5 minutes to do the first part, and don't spend more than 20 minutes on them.

  • We're interested in when customers change their favourite flavour. Write a query which will find the flavour and order_date for any blends which had a different flavour to the previous blend for that pet. Restrict your answer to pets with a dog_id less than 100.
  • Take the query you've just written and adapt it to display which flavour changes (i.e. combination of the flavour before the change and the flavour after the change) are most common.

About

Short set of small challenges for data team interviews

Topics

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Data Test: Round 1

Thank you for taking the time to complete our initial set of challenges. These are designed to help gauge your abilities on some of the core capabilities of the kind of work we do in our team - and help us to tailor the recruitment experience best to your current skill level. There are no "correct" answers to aim for, all of the problems are open to interpretation, and so feel free to take any approach you see fit to any of them.

Feel free to spend as much or as little time as you'd like, however bear in mind that the purpose of this is just to get a handle on your skill level and start a conversation so be pragmatic in how much time you spend. As a guidline, 20 minutes should be the most time it would be sensible to spend, and you may find you can answer some questions very quickly.

Challenge 1: Om Nom Nom

Recently we surveyed some of the dogs in our office (25 Labradors and 25 Spaniels) for how tasty they thought two of our ingredients were (Chicken and Fish). The taste score is a highly scientific measure developed by our nutrition team. We looked at the average scores, both overall and by breed and the results were confusing...

Challenge Picture

What should we conclude from these results?

Challenge 2: Super secret treat

Our food team has developed a new kind of super secret treat which we think all of our dogs are going to love. What we don't know is whether it should be square or round. We sent some samples to a selection of our loyal subscribers and then offered them the opportunity to buy more. The results of that test are below.

Month# Dogs offered Square Treat# Dogs who bought Square Treat# Dogs offered Round Treat# Dogs who bought Round Treat
March1002015037
April200381500
May3005515039
June4007515041

Construct a visual (table, graphic or chart) of your choosing to interpret these results and suggest what we should conclude from the results. Think about:

  • Do we have enough data to make a decision about which treat works best?*
  • What do you recommend we do in July and why?
  • What assumptions have you made and how would you confirm those assumptions if you needed to?
  • How would you go about working out what happened in April?
  • Waht feedback would you give the team about how they carried out this test?

*(If you're feeling rusty on how to work out whether we've seen enough data yet then check out this excellent article on A/B testing statistics, or this very visual calculator)

Challenge 3: Rover the Labrador

One of the database technologies we use is MySQL, and we quite often use SQL to get at the data we need to inform decisions across the business. Below is a query that we've been using but one of the dogs has been editing the code and now we're getting an error.

(If you're feeling rusty, then check out sections 2, 3, 4, 5 & 6 of this tutorial)

Rover the Labrador has been in touch about his food and said he prefers chicken to beef, and would like a chicken-based blend rather than his current beef-based one. We've been looking for all of our Labradors that are called Rover, to find out what blends they're on right now, but we're getting a syntax error. Can you correct the query so that it works and then sort the answers by their most_recent_blend_date so that dogs who've had a blend more recently appear at the top?

SELECTdog.dog_name,
dog.breed,
dog.signup_date,
blend.flavour,
MAX(blend.order_date) as most_recent_blend_date
FROM dog
INNER JOIN blend
ON (blend.dog_id=dog.dog_id)
WHEREdog.dog_name='Rover'WHEREdog.breed='Labrador'GROUP BY dog_name, breed, signup_date, flavour

(If you'd like something to help you work with this, you might want to use a tool like DB Fiddle to test out your SQL. You can paste the content of this file into the left hand pane of that tool and the query above into the right hand pane to create yourself an environment which you can test in. You'll know if you've set it up right, if you run the query above before correcting it (by clicking the Run button in the top left of DB fiddle) and you get an error saying something like You have an error in your SQL syntax)

Extension questions - these are if you want to show off your skills and are not required, so only do these if it took you less than 5 minutes to do the first part, and don't spend more than 20 minutes on them.

  • We're interested in when customers change their favourite flavour. Write a query which will find the flavour and order_date for any blends which had a different flavour to the previous blend for that pet. Restrict your answer to pets with a dog_id less than 100.
  • Take the query you've just written and adapt it to display which flavour changes (i.e. combination of the flavour before the change and the flavour after the change) are most common.

About

Short set of small challenges for data team interviews

Topics

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Data Test: Round 1

Thank you for taking the time to complete our initial set of challenges. These are designed to help gauge your abilities on some of the core capabilities of the kind of work we do in our team - and help us to tailor the recruitment experience best to your current skill level. There are no "correct" answers to aim for, all of the problems are open to interpretation, and so feel free to take any approach you see fit to any of them.

Feel free to spend as much or as little time as you'd like, however bear in mind that the purpose of this is just to get a handle on your skill level and start a conversation so be pragmatic in how much time you spend. As a guidline, 20 minutes should be the most time it would be sensible to spend, and you may find you can answer some questions very quickly.

Challenge 1: Om Nom Nom

Recently we surveyed some of the dogs in our office (25 Labradors and 25 Spaniels) for how tasty they thought two of our ingredients were (Chicken and Fish). The taste score is a highly scientific measure developed by our nutrition team. We looked at the average scores, both overall and by breed and the results were confusing...

Challenge Picture

What should we conclude from these results?

Challenge 2: Super secret treat

Our food team has developed a new kind of super secret treat which we think all of our dogs are going to love. What we don't know is whether it should be square or round. We sent some samples to a selection of our loyal subscribers and then offered them the opportunity to buy more. The results of that test are below.

Month# Dogs offered Square Treat# Dogs who bought Square Treat# Dogs offered Round Treat# Dogs who bought Round Treat
March1002015037
April200381500
May3005515039
June4007515041

Construct a visual (table, graphic or chart) of your choosing to interpret these results and suggest what we should conclude from the results. Think about:

  • Do we have enough data to make a decision about which treat works best?*
  • What do you recommend we do in July and why?
  • What assumptions have you made and how would you confirm those assumptions if you needed to?
  • How would you go about working out what happened in April?
  • Waht feedback would you give the team about how they carried out this test?

*(If you're feeling rusty on how to work out whether we've seen enough data yet then check out this excellent article on A/B testing statistics, or this very visual calculator)

Challenge 3: Rover the Labrador

One of the database technologies we use is MySQL, and we quite often use SQL to get at the data we need to inform decisions across the business. Below is a query that we've been using but one of the dogs has been editing the code and now we're getting an error.

(If you're feeling rusty, then check out sections 2, 3, 4, 5 & 6 of this tutorial)

Rover the Labrador has been in touch about his food and said he prefers chicken to beef, and would like a chicken-based blend rather than his current beef-based one. We've been looking for all of our Labradors that are called Rover, to find out what blends they're on right now, but we're getting a syntax error. Can you correct the query so that it works and then sort the answers by their most_recent_blend_date so that dogs who've had a blend more recently appear at the top?

SELECTdog.dog_name,
dog.breed,
dog.signup_date,
blend.flavour,
MAX(blend.order_date) as most_recent_blend_date
FROM dog
INNER JOIN blend
ON (blend.dog_id=dog.dog_id)
WHEREdog.dog_name='Rover'WHEREdog.breed='Labrador'GROUP BY dog_name, breed, signup_date, flavour

(If you'd like something to help you work with this, you might want to use a tool like DB Fiddle to test out your SQL. You can paste the content of this file into the left hand pane of that tool and the query above into the right hand pane to create yourself an environment which you can test in. You'll know if you've set it up right, if you run the query above before correcting it (by clicking the Run button in the top left of DB fiddle) and you get an error saying something like You have an error in your SQL syntax)

Extension questions - these are if you want to show off your skills and are not required, so only do these if it took you less than 5 minutes to do the first part, and don't spend more than 20 minutes on them.

  • We're interested in when customers change their favourite flavour. Write a query which will find the flavour and order_date for any blends which had a different flavour to the previous blend for that pet. Restrict your answer to pets with a dog_id less than 100.
  • Take the query you've just written and adapt it to display which flavour changes (i.e. combination of the flavour before the change and the flavour after the change) are most common.

About

Short set of small challenges for data team interviews

Topics

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Data Test: Round 1

Thank you for taking the time to complete our initial set of challenges. These are designed to help gauge your abilities on some of the core capabilities of the kind of work we do in our team - and help us to tailor the recruitment experience best to your current skill level. There are no "correct" answers to aim for, all of the problems are open to interpretation, and so feel free to take any approach you see fit to any of them.

Feel free to spend as much or as little time as you'd like, however bear in mind that the purpose of this is just to get a handle on your skill level and start a conversation so be pragmatic in how much time you spend. As a guidline, 20 minutes should be the most time it would be sensible to spend, and you may find you can answer some questions very quickly.

Challenge 1: Om Nom Nom

Recently we surveyed some of the dogs in our office (25 Labradors and 25 Spaniels) for how tasty they thought two of our ingredients were (Chicken and Fish). The taste score is a highly scientific measure developed by our nutrition team. We looked at the average scores, both overall and by breed and the results were confusing...

Challenge Picture

What should we conclude from these results?

Challenge 2: Super secret treat

Our food team has developed a new kind of super secret treat which we think all of our dogs are going to love. What we don't know is whether it should be square or round. We sent some samples to a selection of our loyal subscribers and then offered them the opportunity to buy more. The results of that test are below.

Month# Dogs offered Square Treat# Dogs who bought Square Treat# Dogs offered Round Treat# Dogs who bought Round Treat
March1002015037
April200381500
May3005515039
June4007515041

Construct a visual (table, graphic or chart) of your choosing to interpret these results and suggest what we should conclude from the results. Think about:

  • Do we have enough data to make a decision about which treat works best?*
  • What do you recommend we do in July and why?
  • What assumptions have you made and how would you confirm those assumptions if you needed to?
  • How would you go about working out what happened in April?
  • Waht feedback would you give the team about how they carried out this test?

*(If you're feeling rusty on how to work out whether we've seen enough data yet then check out this excellent article on A/B testing statistics, or this very visual calculator)

Challenge 3: Rover the Labrador

One of the database technologies we use is MySQL, and we quite often use SQL to get at the data we need to inform decisions across the business. Below is a query that we've been using but one of the dogs has been editing the code and now we're getting an error.

(If you're feeling rusty, then check out sections 2, 3, 4, 5 & 6 of this tutorial)

Rover the Labrador has been in touch about his food and said he prefers chicken to beef, and would like a chicken-based blend rather than his current beef-based one. We've been looking for all of our Labradors that are called Rover, to find out what blends they're on right now, but we're getting a syntax error. Can you correct the query so that it works and then sort the answers by their most_recent_blend_date so that dogs who've had a blend more recently appear at the top?

SELECTdog.dog_name,
dog.breed,
dog.signup_date,
blend.flavour,
MAX(blend.order_date) as most_recent_blend_date
FROM dog
INNER JOIN blend
ON (blend.dog_id=dog.dog_id)
WHEREdog.dog_name='Rover'WHEREdog.breed='Labrador'GROUP BY dog_name, breed, signup_date, flavour

(If you'd like something to help you work with this, you might want to use a tool like DB Fiddle to test out your SQL. You can paste the content of this file into the left hand pane of that tool and the query above into the right hand pane to create yourself an environment which you can test in. You'll know if you've set it up right, if you run the query above before correcting it (by clicking the Run button in the top left of DB fiddle) and you get an error saying something like You have an error in your SQL syntax)

Extension questions - these are if you want to show off your skills and are not required, so only do these if it took you less than 5 minutes to do the first part, and don't spend more than 20 minutes on them.

  • We're interested in when customers change their favourite flavour. Write a query which will find the flavour and order_date for any blends which had a different flavour to the previous blend for that pet. Restrict your answer to pets with a dog_id less than 100.
  • Take the query you've just written and adapt it to display which flavour changes (i.e. combination of the flavour before the change and the flavour after the change) are most common.

About

Short set of small challenges for data team interviews

Topics

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors