• Stars
    star
    402
  • Rank 103,372 (Top 3 %)
  • Language
  • Created almost 9 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Coding exercises

Guardian Coding Exercises

Thank you for your interest in the Guardian Product & 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.

Why have we published our exercises?

Inspired to work for us? Apply now

What is it?

The coding exercise is one of the stages in our interview process.

It is a 45-60 minute exercise where you and a Guardian engineer work as a pair writing code to solve a problem.

Similar 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.

You will typically play the role of driver and the Guardian engineer will be the navigator.

Why do we perform it?

From: How does the Guardian recruit developers?

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.

The 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. Ultimately, 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.

This isn't a whiteboard coding exercise; searching online is perfectly fine and encouraged.

What language?

From: Changing the Guardian's pairing test

...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.

Whilst we prefer that you pick Scala or JavaScript for Full-stack 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.

Which exercise?

From: The Guardian's new pairing exercises

...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.

We use the exercises in this repository and they are used for every Engineering role.

We also have this repository on GitHub with skeleton projects that can be used.

More information

More information for candidates can be found here.

More information for interviewers can be found:

  • here for in-person interviews
  • here for remote interviews

Licence

Creative Commons Licence
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

More Repositories

1

frontend

The Guardian DotCom.
Scala
5,740
star
2

scribe

DEPRECATED: A rich text editor framework for the web platform
JavaScript
3,521
star
3

grid

The Guardianโ€™s image management system
Scala
1,431
star
4

toolargetool

A tool to help you debug TransactionTooLargeExceptions on Android 7+
Kotlin
932
star
5

guardian.github.com

Guardian github pages
HTML
317
star
6

riff-raff

The Guardian's deployment platform
Scala
263
star
7

gu-who

answering: who are all these users in my GitHub org?
Scala
221
star
8

dotcom-rendering

The Guardian web rendering service
TypeScript
212
star
9

typerighter

Even if youโ€™re the right typer, couldnโ€™t hurt to use Typerighter!
Scala
207
star
10

swarmize

the data journalism platform
Ruby
155
star
11

elk-stack

ELK Stack ... based on Elastic Stack 5.x
JavaScript
147
star
12

prout

Looks after your pull requests, tells you when they're live
Scala
144
star
13

riemann-config

Configuration for alerting and event processing in Riemann
Clojure
141
star
14

prosemirror-typerighter

The client-side companion to Typerighter. Match ranges with spellchecker-like semantics in Prosemirror documents.
TypeScript
110
star
15

guss

Guss is a collection of Sass bower components, re-usable across multiple Guardian web products
107
star
16

source

Source: a component library for the Guardian's Design System
TypeScript
98
star
17

athena-cli

Presto-like CLI tool for AWS Athena
Python
86
star
18

recommendations

Recommendations for how to develop software at the Guardian
JavaScript
64
star
19

cf-notify

Get notified in Slack when changes to your Cloud Formation stack are made.
Python
59
star
20

iframe-messenger

postMessage interface
JavaScript
57
star
21

vagrants

Vagrant configurations
Ruby
55
star
22

ganglia-api

API layer that exposes ganglia data in a RESTful JSON manner
Python
50
star
23

amigo

AMIgo: An AMI bakery
Scala
49
star
24

prism

Tool for collecting live data about infrastructure so it can be easily queried by users and automated tooling
Scala
48
star
25

prosemirror-noting

Prosemirror plugin that adds the ability to have ranges added to the document that expand and contract around dependent on the input.
JavaScript
48
star
26

html-janitor

Scribe module - DO NOT DELETE
JavaScript
46
star
27

guss-rem

Use rem units in your CSS with a pixel fallback for older browsers
CSS
44
star
28

online-abuse-analysis

Scala
42
star
29

editions

๐Ÿ“†๐Ÿ†• Daily Edition app
TypeScript
42
star
30

kinesis-logback-appender

LOGBack Appender for writing data into a Kinesis Stream
Java
39
star
31

content-api-scala-client

A Scala client library for the Guardian's Content API
Scala
39
star
32

dev-nginx

Tools to configure a local development nginx to proxy our applications and services
Shell
39
star
33

sbt-grunt-plugin

For kicking off grunt tasks from inside sbt
Scala
38
star
34

giant

Platform for journalists to search, analyse, categorise and share unstructured data
Scala
38
star
35

teamcity-s3-plugin

Teamcity plugin for uploading artifacts to S3
Scala
36
star
36

pasteup

This project is now deprecated. Future development on the Guardian's design language can be found in dotcom-rendering
JavaScript
36
star
37

mobile-apps-article-templates

Templates for articles on The Guardian iOS and Android apps
SCSS
34
star
38

machine-images

DEPRECATED: Scripts for building machine images (principally AMIs)
Ruby
34
star
39

membership-frontend

Guardian events and masterclasses
Scala
34
star
40

status-app

Guardian AWS Applications Status App
Scala
33
star
41

play-googleauth

Simple play module for authenticating against Google
Scala
32
star
42

wraith-donk

Wraps wraith in a web server
Ruby
31
star
43

prosemirror-elements

A ProseMirror plugin for adding user-defined 'elements' containing arbitrary fields to a document.
TypeScript
29
star
44

sbt-play-assethash

SBT plugin for Play 2 to add MD5 sums to asset file names
Scala
28
star
45

consent-management-platform

Guardian consent management
CSS
26
star
46

engineering-performance-framework

The Guardian Engineering performance framework
25
star
47

facia-tool

Guardian front pages editor (AKA Fronts tool)
JavaScript
24
star
48

support-frontend

๐Ÿ’โ€โ™€๏ธโค๏ธ๐Ÿ“ฐ Frontend for the Supporter platform
Scala
24
star
49

guardian-engineering-site

Code for theguardian.engineering site
TypeScript
23
star
50

mobile-n10n

n10n for nOTIFICATIOn
Scala
23
star
51

sbt-jasmine-plugin

An SBT plugin for running jasmine tests in your build.
JavaScript
23
star
52

guss-webfonts

Guss' Webfonts component
HTML
21
star
53

csnx

Monorepo for Guardian UIs
TypeScript
20
star
54

play-brotli-filter

Brotli filter for the playframework
Scala
19
star
55

react-native-with-kotlin

Placeholder description: @maxspencer created this with repo-genesis
Objective-C
19
star
56

ssm-scala

ssh replacement: CLI program that wraps SSM's EC2 Run Command
Scala
19
star
57

aws-pen-test-form

Tool to generate info for the AWS penetration testing request form
Scala
19
star
58

guss-grid-system

Sass mixins and default values for the Next Gen grid system.
CSS
18
star
59

our-engineering-culture

How we as engineers define our culture
18
star
60

sbt-teamcity-test-reporting-plugin

Sbt plugin that enables TeamCity to report test details
Scala
18
star
61

language-system

The Multi-Language Automatic Translation, Subtitling, and Voice Rendering System uses third party software to automatically convert audio to text, translate text, render text to video, and render text to audio.
PHP
17
star
62

music-api-scala-client

Scala
17
star
63

lambda-elasticsearch

Helper to send elasticsearch request from a lambda
JavaScript
16
star
64

awesome-lambda

A collection of Lambda related implementations, libraries, resources an useful stuff.
15
star
65

cdk

Generic Guardian flavoured AWS CDK components
TypeScript
15
star
66

subscriptions-frontend

Scala
15
star
67

world-map

Rough-and-ready geometry files for quickly rendering an SVG map of the world
15
star
68

techtime

General repository for everything techtime.
Ruby
14
star
69

prosemirror-invisibles

A simple implementation of invisible characters in ProseMirror.
TypeScript
14
star
70

httpie-hmac-auth

HMAC auth plugin for HTTPie
Python
13
star
71

videojs-embed

A plugin for Video.js that adds a control bar button to toggle an embed code overlay.
JavaScript
13
star
72

tagmanager

Tag Manager: "Like a Beautiful Mind, but with tags" - Unknown
JavaScript
13
star
73

coding-exercise-project

Skeletion project structures for various languages
Shell
13
star
74

security-hq

Centralised security information for AWS accounts
Scala
13
star
75

manage-frontend

TypeScript
12
star
76

ts-failure

Promise error handling in typescript.
TypeScript
12
star
77

grunt-asset-monitor

Grunt task to analyse and log simple metrics of static assets to Amazon CloudWatch.
JavaScript
12
star
78

simple-configuration

A configuration library without any magic
Scala
12
star
79

element-radiator

Helper Polymer elements for building information radiators and monitoring dashboards
HTML
12
star
80

elk6

Elasticsearch, Logstash, Kibana stack for version 6
Ruby
11
star
81

play-secret-rotation

Rotate your Application Secret on an active cluster of Play app servers
Scala
11
star
82

janus-app

Google-backed AWS account access
Scala
11
star
83

zapush

drop-in war to submit jmx stats to zabbix
Scala
11
star
84

libs

A collection of JavaScript libraries and TypeScript types for Guardian projects
TypeScript
11
star
85

scribe-angular-example

JavaScript
11
star
86

quiz-builder

NO LONGER USED - Tool for building quiz JSON
JavaScript
11
star
87

fastly-api-client

An asynchronous Scala client for Fastly's API used to deploy and update configs, decache objects and query the stats API
Scala
11
star
88

tip

Scala library for testing in production
Scala
10
star
89

grid-inspector

Web UI to inspect rights of Grid images
JavaScript
10
star
90

support-service-lambdas

Lambdas covering supporter operations, mostly in life operations
Scala
10
star
91

solr-field-update

Basic support for merging documents in Solr.
Java
10
star
92

pan-domain-authentication

Helper to provide a common federated authentication for all services within a domain (AKA Panda)
Scala
10
star
93

fezziwig

Fezziwig is a library for compile time generation of Circe encoders/decoders for Scrooge-generated classes representing Thrift objects.
Scala
10
star
94

flags

Collection of SVG flags indexed by world bank code (e.g. GBR.svg = Union Jack), plus scripts to get bitmap thumbnails
JavaScript
10
star
95

raspberry-pi-dashboards

How to setup Raspberry Pi dashboards in the Guardian Digital department
Shell
10
star
96

scribe-plugin-noting

JavaScript
9
star
97

content-api-haskell-client

A simple Haskell client library for the Guardian's Content API
Haskell
9
star
98

dupin

Search Git repositories for secrets
Python
9
star
99

guss-layout

Low-level responsive layout patterns
CSS
9
star
100

csrf-example

Practice exploiting Cross-Site Request Forgery vulnerabilities
JavaScript
9
star