-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the Briskk team! This assignment is designed to assess your technical expertise and problem-solving abilities in a real-world context directly relevant to our omnichannel marketplace. You will be working on developing a Data Ingestion Module, a key component of our platform. The module will read product data from a provided sample sheet and handle various operations like image uploads, error handling, and logging.
This assignment should take approximately 15-20 hours to complete. Please ensure your code is clean, maintainable, and well-documented.
Task:
Develop a service that reads product data from a sample sheet named BrandName_Briskk_SKU_Template.
Refer to this template:
Sample Sheet
Details:
- Implement logic to process the data in the sheet and map it to the relevant entities (e.g., products, SKUs, categories).
- Ensure the service can handle different data types and formats within the sheet.
- Develop an API endpoint to trigger the data ingestion process.
Task:
Implement robust error handling and logging mechanisms.
Details:
- The service should capture and log any errors encountered during data ingestion.
- Implement retry logic for transient errors (e.g., network issues during image upload).
- Store logs in a way that they can be easily accessed for debugging.
Task:
Handle image uploads associated with the products.
Details:
- If the image is provided via a file in the sheet, upload it to S3 and store the URL in the database.
- If an image URL is provided, verify its validity and upload it to S3 via streaming.
Task:
Design the service to be extensible.
Details:
- The module should be easily adaptable to support future integrations with external data sources like Browntape and Unicommerce.
- Consider how additional data manipulation functions could be added without significant refactoring.
- System Design: Include a high-level system architecture diagram that shows how the Data Ingestion Module fits into the larger system.
- Language: Any language of your choice should work.
- Cloud Services: AWS S3 for image storage or any service of your choice.
- Database: PostgreSQL (you can use a local or cloud-based instance) or any SQL DB.
- API: RESTful API design with a focus on best practices.
- Code Repository: A GitHub repository with the complete implementation.
- README: Include setup instructions, a description of the service, and details on how to run and test the module
- API Documentation: Document the API endpoint(s) using OpenAPI (Swagger) or a similar tool.
- Unit Tests (Optional): Provide unit tests for key components of the service.
- Demo : An MVP demonstrating the functionality of the module
- Technical Competence: Ability to design and implement a scalable and maintainable data ingestion service.
- Error Handling: Robustness in handling various edge cases, errors, and logging.
- Code Quality: Clean, readable code with proper documentation and testing.
- Extensibility: The ease with which the module can be extended to support new features or data sources.
- Innovation: Creative approaches to solving challenges in data ingestion and processing.
Submit your GitHub repository link along with any additional documentation or notes.
Please complete the assignment within the estimated timeframe of 15-20 hours.
Please feel free to use any resources that can help you, including ChatGPT, Stack Overflow, or any other tools or references that help you solve the problem efficiently. We'd like to encourage you to explore all options to enhance your solution.
We look forward to seeing your work and potentially welcoming you to the Briskk team!
Please don't hesitate to let us know if you want more details about the API sequence to get started or if you have any other questions. We're here to help and ensure you have everything you need to complete the assignment successfully.
Next round: We will discuss the approach you have taken to solve above problem and your thought process while doing so.
