{"id":19029467,"url":"https://github.com/guardian/coding-exercises","last_synced_at":"2026-01-28T10:31:46.329Z","repository":{"id":3551810,"uuid":"37726724","full_name":"guardian/coding-exercises","owner":"guardian","description":"Coding exercises","archived":false,"fork":false,"pushed_at":"2025-01-23T08:18:50.000Z","size":702,"stargazers_count":478,"open_issues_count":5,"forks_count":181,"subscribers_count":65,"default_branch":"main","last_synced_at":"2026-01-12T03:31:43.269Z","etag":null,"topics":["documentation"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guardian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-19T14:36:57.000Z","updated_at":"2025-12-30T23:01:04.000Z","dependencies_parsed_at":"2024-04-05T15:48:43.924Z","dependency_job_id":"24875a4e-af6f-41fc-b385-19c09eaab929","html_url":"https://github.com/guardian/coding-exercises","commit_stats":{"total_commits":86,"total_committers":26,"mean_commits":"3.3076923076923075","dds":0.813953488372093,"last_synced_commit":"f8414f65daccff634e5ffc9b3909ee0a1cd95f44"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/guardian/coding-exercises","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Fcoding-exercises","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Fcoding-exercises/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Fcoding-exercises/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Fcoding-exercises/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guardian","download_url":"https://codeload.github.com/guardian/coding-exercises/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guardian%2Fcoding-exercises/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28844014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T07:39:25.367Z","status":"ssl_error","status_checked_at":"2026-01-28T07:39:24.487Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation"],"created_at":"2024-11-08T21:14:17.748Z","updated_at":"2026-01-28T10:31:46.302Z","avatar_url":"https://github.com/guardian.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Guardian Coding Exercises\n\nThank you for your interest in the Guardian Product \u0026 Engineering Department's coding exercises. This repo contains exercises used in the Guardian's recruitment process. These exercises are used for all engineering roles, at all levels. \n\n[Why have we published our exercises?](https://www.theguardian.com/info/developer-blog/2016/jan/20/the-guardians-new-pairing-exercises)\n\nInspired to work for us? [**Apply now**](https://workforus.theguardian.com/index.php/careers/product-engineering/)\n\n## What is it?\nThe coding exercise is one of the stages in our [interview process](https://www.theguardian.com/info/2022/feb/25/how-we-have-changed-our-application-and-hiring-processes).\n\nIt is a 45-60 minute exercise where you and a Guardian engineer work as a pair writing code to solve a problem.\n\nSimilar to when you pair with a colleague, there will be a driver and a navigator. The driver will be the one at the keyboard, whilst the navigator will be making suggestions and asking questions.\n\nYou will typically play the role of driver and the Guardian engineer will be the navigator.\n\n## Why do we perform it?\n[From: How does the Guardian recruit developers?](https://www.theguardian.com/info/developer-blog/2015/jan/20/how-does-the-guardian-recruit-developers)\n\u003e I think pairing tests are the fairest form of interviewing you can offer. I know they can be stressful but they represent a big commitment in terms of effort and time. They create a situation that approximates the kind of work the organisation does rather than artificial trivia or whiteboard tests. They also give the candidate a chance to meet some of the people who already work at the Guardian and see if the environment suits them.\n\nThe coding exercise allows us to assess your approach to solving a problem, what you prioritise, how you communicate your thinking and how you respond to any suggestions or advice. \nUltimately, it's a chance for us to understand what it would be like to work with you and also a chance for you to assess if the Guardian is a good fit for you.\n\nThis isn't a whiteboard coding exercise; searching online is perfectly fine and encouraged.\n\n## What language?\n[From: Changing the Guardian's pairing test](https://www.theguardian.com/info/developer-blog/2014/may/28/changing-the-guardians-pairing-test)\n\u003e ...allow candidates to do the pairing interview in the language of their choice. We would still prefer if candidates used our core languages of Scala, Python and JavaScript but if Haskell, Clojure, Ruby or Go are more your bag, then feel free.\n\nWhilst we prefer that you pick Scala or TypeScript for Full-stack or Server-side roles, JavaScript or TypeScript for Client-side roles, Swift/Objective C for iOS roles, Kotlin or Java for Android roles, you can still elect to use any other language (e.g. PHP/Go/Ruby), providing we can find somebody to pair with you.\n\n## Which exercise?\n[From: The Guardian's new pairing exercises](https://www.theguardian.com/info/developer-blog/2016/jan/20/the-guardians-new-pairing-exercises)\n\u003e ...we have decided to increase the number of pairing exercises, any of which can be picked by a Guardian developer prior to the pairing test.\n\nWe use the exercises in this repository and they are used for every Engineering role.\n\nWe also have [this repository](https://github.com/guardian/pairing-test-project) on GitHub with skeleton projects that can be used.\n\n## More information\nMore information for candidates can be found [here](./CANDIDATE_INFORMATION.md).\n\nMore information for interviewers can be found:\n- [here](./PROCESS_IN_PERSON.md) for in-person interviews\n- [here](./PROCESS_REMOTE.md) for remote interviews\n\n## Licence\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\u003cimg alt=\"Creative Commons Licence\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003eCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License\u003c/a\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguardian%2Fcoding-exercises","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguardian%2Fcoding-exercises","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguardian%2Fcoding-exercises/lists"}