Skip to content

Commit 4de2831

Browse files
authored
feat(devops) Adds the devops assignment (#13)
1 parent 2b01b2a commit 4de2831

File tree

7 files changed

+134
-1
lines changed

7 files changed

+134
-1
lines changed

_includes/online-assignment/intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Hey there :)
44

5-
- Please read the instructions carefully before start writing your code.
5+
- Please read the instructions carefully before starting.
66
- You are free to choose whatever programming language or framework you feel most comfortable in.
77
- The instructions below include the expected time of finishing this assignment. If you spend significantly more time than expected then please check if your implementation does more things than the assignment asks for.
88
- Please keep your solution as simple as possible! We are impressed by simple and elegant solutions.

back-end/bidder-exercise/assignment.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ The assignment consists of one task.
2929
|---|---|
3030
| [Task 1:](#task-1) Implement the basic bidder flow | ~2 hours |
3131

32+
## Timing assumptions
33+
34+
The time estimates for the tasks above assume that you are familiar or jave professional experience with testing techniques and building basic web apps.
35+
3236
## Task 1
3337

3438
### Objective

devops/assignment.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
{% include header.html %}
2+
{% include online-assignment/intro.md %}
3+
4+
# Objective
5+
6+
You are a DevOps engineer working for an ad-tech company called Blue Banana.
7+
8+
The current CI/CD process automates the provision of services on virtual machines running some linux distribution.
9+
10+
Your team is eager to enter the world of containers, and you take the task of exploring Kubernetes as a possible solution.
11+
12+
You decide to make the first step with the deployment of the company's blog site, powered by Lobsters.
13+
14+
# Tasks
15+
16+
The assignments comprises two tasks.
17+
18+
| Task Objective | Expected Completion Time |
19+
|---|---|
20+
| [Task 1:](#task-1) Setup a local Kubernetes environment | ~30 minutes |
21+
| [Task 2:](#task-2) Deploy and expose Lobsters on Kubernetes | ~60 minutes |
22+
23+
## Timing assumptions
24+
25+
The time estimates for the tasks above assume that you are familiar or have professional experience with Kubernetes and Docker.
26+
27+
## Task 1
28+
29+
You will need to deploy a functional Kubernetes cluster on your machine.
30+
31+
You should be able to interact with the cluster via the `kubectl` command from CLI.
32+
33+
## Task 2
34+
35+
You will need to create the necessary definition files to have the Lobsters blog deployed on Kubernetes, including any dependencies it may require to run.
36+
37+
You are provided with Lobsters docker images [here](https://hub.docker.com/r/efthymiosh/lobsters/).
38+
39+
These images are built using the repository [here](https://github.com/jamesbrink/docker-lobsters) at the commit with SHA beginning with `d862967`.
40+
41+
You will find that you may configure the running container by having set some environment variables. A required subset would be:
42+
43+
- MARIADB_HOST
44+
- MARIADB_PORT
45+
- MARIADB_PASSWORD
46+
- MARIADB_USER
47+
- LOBSTER_DATABASE
48+
- LOBSTER_SITE_NAME
49+
- RAILS_ENV
50+
- LOBSTER_HOSTNAME
51+
- VIRTUAL_HOST
52+
- RAILS_MAX_THREADS
53+
54+
You will need to install and expose the service on a kubernetes ingress controller.
55+
56+
After being done, your service should be accessible via `lobsters.local` on your local machine outside of the Kubernetes cluster.
57+
58+
# Deliverables
59+
60+
In your uploaded solution you should include:
61+
1. The definition file(s) that you created for deploying the service and any dependencies on Kubernetes.
62+
2. The definition file(s) that you created for exposing the service on your local machine.
63+
3. Step-by-step instructions for deploying the stack you have defined, given a working Kubernetes cluster.
64+
4. A `README.txt` file describing the rationale behind any interesting decisions you have taken, any work-arounds, and anything else you'd like to add about your solution.
65+
66+
**Note** Upload your solution as a valid `.tar.gz` or `.zip` file containing the deliverables.

devops/index.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{% include header.html %}
2+
3+
# Devops Software Engineer
4+
5+
## What You'll Be Doing
6+
7+
- Work on cutting-edge cloud technologies on an enormous scale
8+
- Automate infrastructure provisioning using industry leading tools like Ansible
9+
- Design and operate Big Data pipelines running on Hadoop, Spark and Druid
10+
- Develop a state-of-the-art monitoring and alerting solution designed to keep our systems highly available
11+
- Develop continusly integrated development workflows
12+
- Work in a team of talented hackers learning as much as you can and having fun while doing it
13+
14+
[Read the full job description](https://glispaconnect.workable.com/j/B08675EBCF){:target="_blank"}
15+
16+
## Recruitment Process
17+
18+
| Step | Description |
19+
|---|---|
20+
| CV review | We review candidates' CV applications looking mainly at past projects and areas of expertise. |
21+
| [Assignment](assignment.md) | Candidates receive an assignment based on real-life work we do at {{site.companyName}}. |
22+
| On-site interview | This part extends the work the candidate has done in the assignment. The candidate works with our team on designing and implementing a software system. |
23+
| Offer | An offer is made to the candidate. |

devops/on-site.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{% include header.html %}
2+
{% include on-site/intro.md %}
3+
4+
# Objective
5+
6+
For this assignment we'll be extending the implementation of the bidder you developed previously.
7+
8+
# Tasks
9+
10+
The assignment is split into seperate tasks. Each task builds on the work done for the previous ones.
11+
12+
| Task Objective | Expected Completion Time |
13+
|---|---|
14+
| [Task 1:](#task-1) Discuss the requirements of a new proposed bidder extension and think about its system architecture and specifications | ~1.5 hours |
15+
| [Task 2:](#task-2) Implement a small component of the proposed architecture. | ~1.5 hours |
16+
17+
## Task 1
18+
19+
### Objective
20+
21+
We will work on a real-life scenario where there is the business need for an extension to our bidder. We will discuss the requirements of this new feature and think about its system architecture and specifications.
22+
23+
## Task 2
24+
25+
### Objective
26+
27+
After discussing the architecture and design decisions we will implement a small component of the proposed architecture.
28+
29+
{% include on-site/assessment-criteria.md %}

front-end/bidder-management-exercise/assignment.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ The assignment is split into seperate tasks. Each task builds on the work done f
2828
| [Task 2:](#task-2) Implement a route which allows the user to view a list of their bidders | ~1 hour |
2929
| [Task 3:](#task-3) Implement a route which allows users to edit their bidders | ~2 hours |
3030

31+
## Timing assumptions
32+
33+
The time estimates for the tasks above assume that you are familiar or jave professional experience with testing techniques and building basic web apps.
34+
3135
## Task 1
3236

3337
### Objective

index.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ We are growing at a fast pace and looking for exceptional software engineers to
3737
<a href="/hiring/ui-ux" class="button-link"> Read More</a>
3838
</div>
3939
</div>
40+
<div class="columns text-center">
41+
<div class="card-block">
42+
<i class="icon design_code"></i>
43+
<p>DevOps Software Engineer</p>
44+
<a href="/hiring/devops" class="button-link"> Read More</a>
45+
</div>
46+
</div>
4047
</div>
4148
</div>
4249
</div>

0 commit comments

Comments
 (0)