{"id":30127708,"url":"https://github.com/sourceallies/interviews","last_synced_at":"2025-08-10T17:10:02.705Z","repository":{"id":200574881,"uuid":"704560088","full_name":"sourceallies/interviews","owner":"sourceallies","description":"Repository for hosting interview pairing sessions","archived":false,"fork":false,"pushed_at":"2025-07-01T13:21:22.000Z","size":2279,"stargazers_count":9,"open_issues_count":1,"forks_count":17,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-07-01T13:54:30.671Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourceallies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-13T14:16:42.000Z","updated_at":"2025-07-01T13:20:21.000Z","dependencies_parsed_at":"2024-03-11T14:41:27.213Z","dependency_job_id":"812bfae4-0fbb-4e03-97e9-b29552daf237","html_url":"https://github.com/sourceallies/interviews","commit_stats":null,"previous_names":["sourceallies/interviews"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sourceallies/interviews","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourceallies%2Finterviews","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourceallies%2Finterviews/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourceallies%2Finterviews/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourceallies%2Finterviews/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourceallies","download_url":"https://codeload.github.com/sourceallies/interviews/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourceallies%2Finterviews/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269756394,"owners_count":24470566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-10T17:10:01.666Z","updated_at":"2025-08-10T17:10:02.689Z","avatar_url":"https://github.com/sourceallies.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Source Allies Interviews\n\n## ℹ️ **Getting Ready for Your Pairing Session?** \n\nIf you're preparing for a pairing session with us, you can try out our coding environment right now!\n\nClick the button below to launch a GitHub Codespace and get started in seconds:\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true\u0026ref=main\u0026repo=704560088\u0026skip_quickstart=true)\n\nThis will spin up a fully configured development environment in the cloud with all necessary tools pre-installed.\n\nYou can use this to familiarize yourself with our setup before your interview.\n\n## About This Repository \n\nThis repository contains information about the Source Allies pairing session process.\n\nPlease see our [careers page](https://www.sourceallies.com/careers/) if you are interested in working on our team!\n\n_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._\n\n## Typical Interview Process\n\nOur pairing process typically consists of four steps:\n\n1. Meeting You\n2. Self Evalutation\n3. A custom [HackerRank](https://www.hackerrank.com/) coding exercise\n4. In-person (or virtual) technical pairing session \n\n## Meeting You\n\nYou’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.\n\n## Self Evaluation\n\nThis 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. \n\n## Coding Exercise\n\nThis is an 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?\n\n## Pairing Session\n\nThe 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. \n\nWe 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.\n\nTo create a positive experience for virtual pairing sessions, please have reliable camera and audio ready.\n\n## How to use this repo for the pairing session\n\nThis 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.\n\nIf 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.\n\nTypically, 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.\n\nYou 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.\n\n\n### Using Codespaces\n\nIf using codespaces click this badge.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true\u0026ref=main\u0026repo=704560088\u0026skip_quickstart=true)\n\nHere, you have a few options.\n\n__Option 1__: Use a project specific devcontainer.  This will automatically add extensions related to this project, as well do any prep work like running `mvn`, `npm`, or `poetry install` commands via `make init`.  This is recommended if you are only working in 1 project. You will need to navigate to the desired project folder and you should be able to run `make verify` to see test output.\n\n__Option 2__: Use the `Default` devcontainer.  If you use this option, you will have all the technology you need to run anything in the repo, but you will have no extensions installed by default except Live Share, and will need to navigate to your desired project and run `make init` to perform any setup.\n\n![Launch Codespace](resources/media/LaunchCodespace.png)\n\nAfter you choose either option you should be greeted with a very short building process, followed by VSCode launching in a new broswer tab.\n\n![Codespace Launching](resources/media/CodespaceLaunching.png)\n\nIf you chose Option 1, extensions will now initialize, and an init script will run in the background, preparing your project.\n\nYou are now ready to start the pairing session!\n\n## Optional Tools\n\nBecause 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.\n\nTo 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.\n\n## What is in each project?\n\nEach project is kept extremely simple.  There is usually a README describing the project tech stack, a main class or logic of 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.  In addition, each project contains a `Make` file that will let you run familiar commands, regardless of current language:\n\n- `make init` - Run any setup that this project may need, like installation scripts.  This is already done for you by the baseline init script when the codespace starts, but can be leveraged when you move to other projects if you want.\n- `make verify` -  Run the built in tests for this project.\n- `make run` - OPTIONAL: When present, this is to run the project in interactive mode, like when a server is launched using Spring Boot or React.\n\n# For the Interviewer\n\nTypically, the interviewer will start the codespace, then the interviewee will join via liveshare, which can easily be launched on the web or on their local VSCode. It is recommended to start up the devcontainer prior to the pairing session to let everything load (At most, it can take up to 2 minutes to fully load all extensions).\n\nEvery GitHub user has 120 free core hours of codespaces available per month, which will be hard to go over unless you are using codespaces outside of interviewing. You should not have to worry about being charged for usage unless you [explicitly set a spending limit](https://docs.github.com/en/billing/managing-billing-for-github-codespaces/managing-the-spending-limit-for-github-codespaces). If you would like to avoid using codespaces, you are welcome to get this repo running locally using VSCode, docker, and the remote containers extension.\n\nIf you decide to use codespaces, we would encourage you to delete your running codespace after the interview by visiting [this link](https://github.com/codespaces/). *Note:* deleting the codespace will remove all files so make sure you've finished your review prior to deleting the codespace.\n\nAs always, feel free to reach out if anything in the process is causing problems or concern.\n\n# Troubleshooting\n\nIf something doesn't seem quite right with the codespace once it's up and running you can type `devcontainer-info` in a console to see some information about the current configuration. `devcontainer-info` should tell you the version of the image you're running, source code location, build timestamps, and a link to a [Markdown file](https://github.com/devcontainers/images/blob/main/src/universal/history/2.5.8.md) showing what versions of different tools are installed on the current image.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourceallies%2Finterviews","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourceallies%2Finterviews","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourceallies%2Finterviews/lists"}