Skip to content

joesdevil/Hiring-software-engineer-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 

Repository files navigation

Backend software engineer test

The principal objective of this project is to evaluate the applicant's ability to learn new skills on the fly, build reliable backend in adherence to best practices in different languages and colaborate with peer programers.

The test consists of implementing a reliable communication stream protocol based on UDP (User Datagram Protocol).

The implementation should follow a protocol standard like RUDP.

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

1. Package development:

  • The repository should be a package that could be used by application.
  • The package language is not fixed (yet), but you should either use Python (asyncio compatible preferably) or GoLang (built-in net package).

2. RUDP implementation:

  • The package should provide an API to create and use RUDP connections.
  • The protocol should implement reliability and flow control (prefferably configurable for different kinds of applications)

3. Tests:

  • Add unit tests for different components of the package.

4. Examples:

  • Include example codes for differents kinds of applications: peer-to-peer, server-client etc...

Setup

Clone the repository

git clone git@github.com:BIGmama-technology/Hiring-software-engineer-backend.git 

Contribution guidelines

  • Write useful comments to help others understand what you do.
  • 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

You can find some useful resources at:

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

About

Become a backend engineer/intern at BIGmama by contributing to this project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •