Skip to content

ivelum/job

Repository files navigation

This repo hosts everything related to working at ivelum, including our public wiki, the code challenges that we use in our job interviews, and the job.ivelum.com source code.

Wiki

The wiki covers a wide range of topics, including our work processes, our technologies used, preferred communication style, employee benefits, etc. Available in two languages:

Contact us at job@ivelum.com

Code challenges

If you'd like to complete one of the code challenges and send us your solution, please apply for the corresponding position first at job.ivelum.com.

job.ivelum.com source code

The instructions below describe how to work with the jobs site source code. Key technologies used:

  • Frontend: Gatsby.js, React, CSS modules, SCSS;
  • Production: AWS, S3, CloudFront, Lambda;
  • Deploy automation: CloudFormation, GitHub Actions, Python scripts;
  • Linters: ESLint, Stylelint, Flake8, isort.

Start your development environment

  1. Clone the repository:

    $ git clone git@github.com:ivelum/job.git
  2. Make sure that you have Node v15 or later and Yarn v1.x installed on your machine. Check the versions as:

    $ node -v
    v15.14.0
    
    $ yarn --version
    1.22.10
  3. Install the JS dependencies with Yarn:

    $ yarn
  4. Start the development server. If you're using a JetBrains IDE, such as WebStorm or PyCharm, you can use the shared Run/Debug configuration that is included in the repo. Alternatively, start it from the command line:

    $ yarn start

    The command above starts the development server in the "watch" mode, automatically updating the build as you change the source code. The source code is located in the src folder and is based on Gatsby.

Codestyle checks

Before pushing your work to the repo, please make sure that your changes pass the code style checks. We use ESLint for JavaScript/React code and Stylelint for SCSS. How to run the checks locally:

$ yarn eslint

$ yarn stylelint

Pre-commit hooks for codestyle

We strongly encourage you to add the code style checks in your local Git pre-commit hook. Here's how to do this:

  1. create a file .git/hooks/pre-commit if it doesn't exist yet;

  2. open this file for editing and add the following line:

    yarn eslint && yarn stylelint
  3. make the file executable:

    $ chmod +x .git/hooks/pre-commit

Voila, now codestyle checks will run automatically before every commit on your machine.

Deploy to production

Any push to the master branch in this repo triggers an automated deployment to production on AWS, which typically takes ~2 minutes plus a minute or two for the CloudFront cache to clear. You can watch the progress and build status on the Actions tab.

Please note that we run linters before the build, so the build will fail if the code doesn't pass Codestyle checks.

Working with Python sources

Python is used for deploy scripts and the lambda function, which is responsible for the job applications form processing. If you need to modify these parts:

  1. Make sure that you have Python v3.9+ installed:

    $ python --version
    Python 3.9.7
  2. Install the Python dependencies:

    $ pip install -r requirements.txt
  3. Breathe normally and work with the source code. When you're ready to push your changes to the repo, please check the Python code style and fix any problems reported:

    $ flake8 . && isort . 

License

The job.ivelum.com source code is licensed under the MIT license. All materials in Wiki, code challenges, and public website texts are licensed under CC BY 4.0.