Skip to content

Instantly share code, notes, and snippets.

View goodits's full-sized avatar

Steve C-S goodits

View GitHub Profile

Security Operations Exercise

During your interview, we’d like you to present on the following two topics:

  1. Snowplow operates a private SaaS deployment model for its Behavioural Data Platform (BDP) in which data pipelines are deployed and operated on behalf of a customer in their AWS or GCP (or, in the future, Azure) cloud environment. What do you see as the additional security challenges of such a product and deployment model, and what steps would you recommend to enable Snowplow to protect the data collected by the pipelines and to present a strong security posture to its customers?
  2. What actions did you take, or would have taken, to maintain your security posture in response to the recent Log4j vulnerability?

You can choose how you’d like to present your responses to these topics, you will be able to share your screen during the interview if required. We’d expect this to take around 30 minutes, followed by some questions on these topics.

The interview will also consist of some additional questions

Engineering Manager Exercise

During your interview, we’d like you to present on the following two topics:

  1. You have a team whose delivery is not quite up to the teams around them - how do you start to solve that problem?
  2. Talk us through an example of where a team you were working with has had to solve an unusual or difficult technical problem?

You can choose how you’d like to present your responses to these topics, you will be able to share your screen during the interview if required. We’d expect this to take around 20 to 30 minutes, followed by some questions on these topics.

The interview will also consist of some additional questions outside of these and we’ll be sure to give you plenty of time to ask us questions too.

Snowplow engineering technical test instructions - JSON validation service

Using this specification you will need to build a REST-service for validating JSON documents against JSON Schemas. This REST-service should allow users to upload JSON Schemas and store them at unique URI and then validate JSON documents against these URIs. Additionally, this service will "clean" every JSON document before validation: remove keys for which the value is null. Client-side software as well as GUI is out of scope of this specification - user can choose any tool able to communicate via HTTP like curl or write their own.

Required knowledge

This test requires some knowledge of JSON Schemas. You can find the full specification and examples on the official web site. However, a quick look at the tutorial should be enough to familarize yourself with this tool. You will also need a very basic understanding of the [RESTful](http://stac

@goodits
goodits / snowplow-tech-test-go.md
Last active February 17, 2022 10:33
Snowplow engineering technical test instructions

Snowplow engineering technical test instructions - JSON validation service in Go

Using this specification you will need to build a REST-service for validating JSON documents against JSON Schemas. This REST-service should allow users to upload JSON Schemas and store them at unique URI and then validate JSON documents against these URIs. Additionally, this service will "clean" every JSON document before validation: remove keys for which the value is null. Client-side software as well as GUI is out of scope of this specification - user can choose any tool able to communicate via HTTP like curl or write their own.

Required knowledge

This test requires some knowledge of JSON Schemas. You can find the full specification and examples on the official web site. However, a quick look at the tutorial should be enough to familarize yourself with this tool. You will also need a very basic understanding of the [RESTful](http://

@goodits
goodits / snowplow-wordpress-exercise.md
Last active June 16, 2021 10:52
Snowplow Wordpress technical exercise instructions

Snowplow Wordpress technical exercise instructions

Hello! Our exercise is intentionally high level. We'd like you to demonstrate your knowledge of displaying different types of content in an efficient, effective and secure manner. It also creates a basis on which to discuss these approaches at interview. You don't need to worry too much about what the page itself would be used for.

The exercise

Create a Custom Post Type called Snowplow Exercise (slug: snowplow-exercise) that displays the following elements:

  • the page title
  • the page content
@goodits
goodits / snowplow-tracking-tech-assignment.md
Last active February 2, 2022 11:44
Snowplow tracking technical assignment instructions

Snowplow tracking technical assignment instructions - Your first tracked app with Snowplow Micro

We would like you to build an example app that embeds a Snowplow tracker to send behavioral data to Snowplow Micro. There are set up instructions for Micro in the readme. If you get stuck at all running Micro, reach out on the Discourse forums - wrangling with it isn't part of the assignment!

Micro is the smallest version of a Snowplow pipeline, used for testing purposes. It has only the collection and validation steps, holding events in memory rather than a data store. You can see what events it has received by calling the api. Once you have it running, we'd like you to start sending some events.

Snowplow has an extensive tracker library. Our most adopted include the JavaScript, iOS, Android, Java and Python trackers. You can pic

@goodits
goodits / bpm.json
Created January 27, 2020 09:37
bpm.json
[
["Bohemian Rhapsody", "Queen", 72],
["Rap God", "Eminem", 72],
["The Scientist", "Coldplay", 74],
["Sultans of Swing", "Dire Straits", 74],
["High Hopes", "Panic! at the Disco", 82],
["Take Me Home, Country Roads", "John Denver", 82],
["Zombie", "The Cranberries", 84],
["Till I Collapse", "Eminem", 84],
["Orion", "Metallica", 128],
@goodits
goodits / snowplow-tech-test-js.md
Last active January 27, 2020 09:38
Snowplow engineering technical test instructions - JS Metronome

Snowplow engineering technical test instructions - JS Metronome

This is our take on the old favourite make a metronome in js.

We are however looking for something a little more visually exciting than a slider and a button. We want to see how you express yourself in code but we also care deeply about how well you can implement a design.

To that end please take a look at this mock up. Combined with this video you should be able to get an idea of expected interactions, colours and layouts.

One final addition is the 'Song that use this BPM' list. The supplied data file bpm.json contains a handful of lookups to populate this with.

Notes on implementation

@goodits
goodits / snowplow-tech-test.md
Last active June 14, 2019 19:51
Snowplow engineering technical test instructions

Snowplow engineering technical test instructions - JSON validation service

Using this specification you will need to build a REST-service for validating JSON documents against JSON Schemas.

This REST-service should allow users to upload JSON Schemas and store them at unique URI and then validate JSON documents against these URIs.

Additionally, this service will "clean" every JSON document before validation: remove keys for which the value is null.

Client-side software as well as GUI is out of scope of this specification - user can choose any tool able to communicate via HTTP like curl or write their own.