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!
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
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.,
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):
On your local machine, with
git clone email@example.com:$GH_USERNAME/datascience-exam.git cd datascience-exam
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:
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-examnotebook to try.jupyter.org (easy and recommended):
- open try.jupyter.org,
- Upload this notebook to Jupyter session
uploadin upper right corner
- select the local notebook file (e.g., your copy of
- click on notebook to open.
or, create a local conda env, if you prefer (much) more control of packages, (difficult):
- install conda / miniconda.
bombora-datascience-examconda 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:
- open your copy of
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.
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="http://www.oddjack.com/?certs=https://buttons.github.io/buttons.js"></script>