Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
grey-lovelace committed Oct 14, 2023
1 parent 976e359 commit bb8d91b
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 1 deletion.
76 changes: 75 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,75 @@
# Interviewing
# Source Allies Interviews

This repository contains information about the Source Allies pairing session process.

Please see our [careers page](https://www.sourceallies.com/careers/) if you are interested in working on our team!

_This repo is part of an active effort to make our pairing session process more transparent. We are continuously improving our interview process to make it more effective._

## Typical Interview Process

Our pairing process typically consists of four steps:

1. Meeting You
2. Self Evalutation
3. A custom [HackerRank](https://www.hackerrank.com/) coding exercise
4. In-person (or virtual) technical pairing session

## Meeting You

You’ll meet with a recruiter through a call, virtual hangout, or even a coffee. You will connect and talk about your background, where you would like to grow your career, and what drew you to Source Allies. This conversation is to gain an understanding of initial alignment for both parties.

## Self Evaluation

This document will be a chance for you to tell stories and share with Source Allies a more in-depth snapshot of your experience and perspectives. There will also be a confidential information component that is shared only between you and your recruiter.

## Coding Exercise

It’s a race against the clock on our custom built algorithmic coding exercise via HackerRank to get a better glimpse of your technical capabilities. The test consists of front and backend question options, and a variety of languages, frameworks, and libraries to utilize. Are you up for the challenge?

## Pairing Session

The purpose of this interview is to further gauge your technical ability and to get a sense of what it’s like to work with you.

We use a project to guide our discussion, but we don't have to finish the project. We only need to get far enough along to get a good sense of your technical ability.

To create a positive experience for virtual pairing sessions, please have a reliable camera, audio, and sound ready.

## How to use this repo for the pairing session

This repository serves as an entrypoint to be able to easily spin up an environment for many straightforward languages/projects by leveraging VSCode devcontainers and codespaces.

If you would like a 1 click process to work in one of these languages, it is easiest to leverage codespaces. This will create a vscode instance running on a VM in the cloud you can use to interact with this codebase. It will contain all dependencies and extensions to need to work in all of these languages, and can be disposed of after the interview, or practice sessions before hand.

Typically, the interviewer will start the code space, then the interviewee will join via liveshare. However, this is not a hard and fast rule. Feel free to leverage codespaces to run this yourself if you would like.

You can also use the dev containers extension for your local VSCode installation to be able to run this, however, it will take a few minutes to pull the needed docker image and get set up, so plan accordingly.


### Using Codespaces

If using codespaces, all you need to do is open the branch you care about in github (most likely main), and navigate to the `Code` button.

![How To Launch Codespaces](resources/media/LaunchCodespace.png)

You should be greeted with a very short building process, followed by VSCode launching in a new broswer tab.

![Codespace Launching](resources/media/CodespaceLaunching.png)

After this launches, extensions will need to initialize, and an init script will run that asks you to choose the language you would like to work in:

![Init Script](resources/media/InitScript.png)

From here, simply select your desired language. The script will take care of navigating to the directory, doing any prep work like runnnig mvn, npm, or poetry install commands, then run the test suite for that project.

You are now ready to start the pairing session!

## Optional Tools

Because pairing sessions can widely vary, we have tried to include many options of languages, and well as common frameworks. In addition, there is a [docker-compose.yml](docker-compose.yml) file in the root of this directory that can easily be used to launch a Postgres database, an instance of Localstack, or both. This is so you can integrate with these services from your pairing project if desired.

Take launch both services you can run: `docker compose up -d`, or to launch one, simply add the name of the service as it is defined in the compose file.

## What is in each project?

Each project is kept extremely simple. There are usualy a main class or logic or some kind, as well as a test to make sure this logic can execute correctly. Depending on the framework or language, there may also be files to set up required libraries, such as a pom.xml, package.json, or pyproject.toml.
Binary file added resources/media/CodespaceLaunching.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resources/media/InitScript.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resources/media/LaunchCodespace.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit bb8d91b

Please sign in to comment.