GithubHelp home page GithubHelp logo

maria-djadi01 / hiring-ai-engineer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bigmama-technology/hiring-ai-engineer

0.0 0.0 0.0 952 KB

Contribute to this project and seize the opportunity to interview for a role as an AI engineer with our team.

Shell 5.23% Python 94.77%

hiring-ai-engineer's Introduction

AI engineer test

The principal objective of this project is to evaluate the applicant's ability to learn new skills on the fly, build machine learning models in adherence to best practices and colaborate with others.

The applicant is also expected to write a modular code following good coding practices.

How does this work ?

Below is a list of tasks that candidates concurently work on. If you deem your contribution to be complete, you can create a pull request. The team will review your contribution and provide feedback. If its good your branch will be merged with the main branch. Tasks that are done will be ommited and new tasks will apear for others. Candidates with merged changes will be invited to pass an interview with the team.

Who can apply ?

Both students looking for an internship at BIGmama and professionals looking for a full-time position can apply.

Tasks

  • GaussianProcess.py: Write a GaussianProcess class that embodies the Gaussian process regression model's functionality.
  • kernels.py: Implement a selection of three kernel functions.
  • Kernel Operations: Enable your kernels to perform addition (+) and multiplication (*) operations.
  • Fit the guassian process: Fit your Gaussian process to the datasets provided and plot the results.
  • Optimize gaussian process fit fucntion: for loops are slow, try to optimize the fit function to be faster.
  • Add 2 periodic kernels: Add 2 periodic kernels to kernels.py.
  • Generalize: so we can run gaussian process on any dataset, not just the ones provided.
  • REST API via FastAPI: Design a REST API using FastAPI to make your Gaussian process regression accessible over HTTP.
  • Build a user interface: Build a user interface to interact with the gaussian process model.
  • Dockerization: Containerize your application with Docker, ensuring all dependencies are included for seamless setup and deployment.
  • Refactor: Refactor code following good practices and a design pattern of your choice.
  • Documentation: Document the prject thoroughly with docstrings, inline comments and using a documentation generator of your choice.

Setup

Clone the repository

git clone [email protected]:BIGmama-technology/Hiring-AI-engineer.git

Run setup.sh, this will create a virtual environment and install some dependencies

./scripts/setup.sh

Activate the virtual environment

source .venv/bin/activate

Contribution guidelines

  • design the structure of your repo in a modular way, example :
.
├── data
│   ├── international-airline-passengers.csv
│   └── mauna_loa_atmospheric_co2.csv
├── docs
│   └── report.pdf
├── LICENSE
├── output
│   └── figure_1.png
├── src
│   ├── __init__.py
│   ├── main.py
│   ├── data
│   │   └── data_loader.py
│   ├── models
│   │   ├── GaussianProcess.py
│   │   └── kernels.py
│   └── utils
│       └── utils.py
├── pyproject.toml
├── README.md
└── setup.cfg
  • always use the virtual environment
# activate the virtual environment created by setup.sh
source .venv/bin/activate
  • Make sure you include any requirements and dependencies in your pyproject.toml or requirements.txt.
  • Type your code, document it and format it.
# untyped, undocumented and unformatted code
import numpy as np
class gaussiankernel:
 def __init__(self,sigma=1.0):
  self.sigma=sigma
 def compute(self,x1,x2):
  return np.exp(-0.5 * np.linalg.norm(x1-x2)**2 / self.sigma**2)
# typed, documented and formatted code
import numpy as np
from typing import Any, Union

class GaussianKernel:
    def __init__(self, sigma: float = 1.0) -> None:
        """
        Initialize the Gaussian kernel with a specified standard deviation (sigma).

        Parameters:
        sigma (float): The standard deviation of the Gaussian kernel.
        """
        self.sigma: float = sigma

    def compute(self, x1: Union[float, np.ndarray], x2: Union[float, np.ndarray]) -> Any:
        """
        Compute the Gaussian kernel between two points.

        Parameters:
        x1 (Union[float, np.ndarray]): The first point or vector.
        x2 (Union[float, np.ndarray]): The second point or vector.

        Returns:
        The computed Gaussian kernel value.
        """
        return np.exp(-0.5 * np.linalg.norm(x1 - x2) ** 2 / self.sigma ** 2)
  • Commit often and write meaningful commit messages.
  • Create a new branch with your name, push your code to it and create a pull request once you finish your contribution.

Resources

Candidates should leverage the following resources for guidance:

FAQ

how many features should I work on ?

doesn't matter, what important is the value of your contribution and it's quality, impress us !

what if the task I am working on gets completed by someone else ?

pick another task, and hurry up !

what if I have a question ?

open an issue and we will answer it as soon as possible !

btawfiq inchalah

hiring-ai-engineer's People

Contributors

1hachem avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.