Skip to content

Instantly share code, notes, and snippets.

@RofieSagara
Created March 4, 2024 10:39
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save RofieSagara/64e797a707fc7ac5a24c2f3bd4e930ca to your computer and use it in GitHub Desktop.
Save RofieSagara/64e797a707fc7ac5a24c2f3bd4e930ca to your computer and use it in GitHub Desktop.
Middle Backend Programmer - Job Test

Task Description: Your task is to create a Golang backend service with HTTP routes for image processing. The service should provide the following functionalities:

  1. Convert image files from PNG to JPEG.
  2. Resize images according to specified dimensions.
  3. Compress images to reduce file size while maintaining reasonable quality.

Instructions:

  1. Create a Golang project with necessary dependencies to implement the image processing functionalities.
  2. Implement HTTP routes for the three functionalities mentioned above.
  3. Write test cases to ensure the correctness and robustness of the implemented functionalities.
  4. Ensure that the code is well-structured, follows best practices, and includes appropriate error handling.
  5. Use the OpenCV/FFMPEG library for image processing tasks.
  6. Provide clear documentation and instructions on how to run the service and execute the tests.

Submission Guidelines:

  • Please submit your solution by uploading the project to GitHub.
  • Send an email to boonchin@ubersnap.com and cc to rofie@ubersnap.com with the subject header "Middle Backend Programmer".
  • Include a README.md file in your GitHub repository with detailed instructions on how to set up and run the service, execute the tests, and any other relevant information.

Instructions for Submission:

  1. Create a new GitHub repository for your project.
  2. Push your Golang project to the repository, ensuring that the structure is well-organized and includes all necessary files.
  3. Write clear and concise documentation in the README.md file, including:
    • Instructions on how to install any dependencies.
    • Steps to set up and run the service locally.
    • Guidelines for executing unit tests and ensuring test coverage.
    • Any additional information required to understand and use your solution effectively.
  4. Once your project is on GitHub and the README.md file is updated, send an email to boonchin@ubersnap.com and cc to rofie@ubersnap.com with the GitHub repository link.

Evaluation Criteria:

  • Correctness and completeness of the implemented functionalities.
  • Code quality, readability, and adherence to best practices.
  • Effectiveness of unit tests and test coverage.
  • Compliance with the provided instructions and requirements.
  • Overall approach and problem-solving skills demonstrated in the solution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment