Welcome!
From all of us at Bombora Data Science, we're excited to get to know you! To do so, we'd like to begin by engaging in a few exercises exploring concepts we're interested in (and hope you are as well).
NOTE: We'll be leveraging open tools and public repositories. Ethics and professional aspirations should drive you to work creatively, enthusiastically, and independently. Clearly, you should leverage all resources you can, but please, do not share this exam or your solutions with any other entity, man or machine. :)
Thank you so much! Now, get comfortable and let's go!
Instructions
Overview
We're going to leverage typical analysis and development workflows used by our team to conduct an interview exam. In short, you'll:
- clone this repo and setup a working directory
- open the exam Jupyter notebook in an POSIX environment of your choice (web or local), using a language (kernel) of your choice (you can choose between Scala, R, Haskell, Ruby, Python 2/3, Julia or even Bash)
- answer two questions of your choice
- add, commit, and push your solution + resume (and other docs, if you wish) to your remote repo
- send us completed exam submittal via a pull request PR
Details
0. Configure exam params:
Define a few parameters used throughout the exam:
your-gh-username
: your GitHub username.ds-position
: the title of the position you're applying to, specified in the email you recieved (e.g.,data-engineer-2017-q2
,data-scientist-intern-2017-q3
)mylastname-myfirstname
: your name, backwards of course!
If you're a POSIX shell user (e.g., linux or osx), you can set these params via environment variables so future commands won't have to be manually modified!
export GH_USERNAME='carlsagan'
export DS_POSITION='data-science-director'
export DS_EXAM_NAME='sagan-carl'
1. Make your own copy of repo
Fork repo to your GitHub account
It's the button above that looks like the one below (you can click either):
Local Clone
On your local machine, with git
installed:
git clone git@github.com:$GH_USERNAME/datascience-exam.git
cd datascience-exam
$DS_POSITION
branch
Checkout Develop against a branch titled for the position you're applying to:
git checkout $DS_POSITION
2. Setup your exam working directory
-
Create your exam directory:
mkdir ./submittals/$DS_POSITION/$DS_EXAM_NAME
-
Copy exam notebook (
ds-interview-exam.ipynb
) to your exam directory:cp ds-interview-exam.ipynb ./submittals/$DS_POSITION/$DS_EXAM_NAME/
3. Setup Jupyter Notebook Environment
3.1 Launch Jupyter
You have two options:
-
Upload the included
ds-interview-exam
notebook to try.jupyter.org (easy and recommended):- open try.jupyter.org,
- Upload this notebook to Jupyter session
- click
upload
in upper right corner - select the local notebook file (e.g., your copy of
data-science-exam.ipynb
)
- click
- click on notebook to open.
-
or, create a local conda env, if you prefer (much) more control of packages, (difficult):
- install conda / miniconda.
- create
bombora-datascience-exam
conda environment, via (from repo root):conda env create -f bombora-datascience-exam.yml
- activate conda environment, via:
source activate bombora-datascience-exam
- launch Jupyter, via:
jupyter notebook
- open your copy of
ds-interview-exam.ipynb
notebook
3.2 Setup Jupyter
Note: for those not familiar with Jupyter notebook, please view the Welcome to ... intro notebooks included in file listing. Also, you can review the Notebook Basics tutorial.
After opening your notebook, you'll need to select a language kernel of your choice, (you can choose between Scala, R, Haskell, Python 2 or 3, Julia or even Bash).
- from menubar of the opened notebook, select * Kernel > Change Kernel > *
4. Solve TWO problems, one from each section.
-
Take note that there are two sections, they are:
- 1. Algo + Data Structures
- 2. Prob + Stats
-
Take 10 minutes to review questions across each section.
-
Select and answer ONE question from EACH section, or to be totally explicit:
- select and answer a question from section 1 (e.g., either Q1.1 or Q1.2).
- select and answer a question from section 2 (e.g., either Q2.1, Q2.2, Q2.3, Q2.4, or Q2.5).
This is you, shining
5. Commit results and push to your remote repo.
- copy your resume (and additional docs) to your exam directory:
cp path/to/my-resume.pdf ./submittals/$DS_POSITION/$DS_EXAM_NAME/ # (optional) cp path/to/my-other-docs.pdf ./submittals/$DS_POSITION/$DS_EXAM_NAME/
- add your exam directory and commit
git add ./submittals/$DS_POSITION/$DS_EXAM_NAME git commit -m "Exam submittal for $DS_POSITION"
- push to remote repo
git push origin $DS_POSITION
6. Open Pull Request to submit exam
To submit, please open a PR to the $DS_POSITION-submittals
branch (note: this is a different branch name) of the repo.
Questions?
Open an issue in the GH repo, we provide a button right here, for your convenience.
Finished, what's next?
Go enjoy your day—you deserve it!
<script async defer src="https://buttons.github.io/buttons.js"></script>