Python Engineer problem statements
Python Engineer problem statements
Feel free to select any one of the problem statements that aligns best with your
skills, comfort level, and background.
Problem Statements
Requirements:
1. Core Features:
o Users can upload and download documents.
o Support basic metadata for documents (e.g., title, author, tags, uploaded date).
o Enable document sharing with other users with different permissions:
§ Read-only
§ Edit
§ Admin
o Implement document versioning (track changes made to documents).
2. Scalability and Performance:
o Design the system to handle millions of documents and thousands of
simultaneous users.
o Ensure fast retrieval of documents and metadata.
3. Search and Filters:
o Allow searching documents by title, tags, or author.
o Provide filters for upload date and file size.
4. Advanced Collaboration (Open-ended):
o Suggest additional features to enhance collaboration (e.g., commenting, real-
time editing).
o Justify the trade-offs and technical decisions involved in implementing them.
5. Deployment:
o Provide a deployment-ready solution (Docker, CI/CD pipelines, etc.).
Deliverables:
1. Codebase:
o Implement the core backend functionality.
o Include tests to validate the correctness of your implementation.
2. Design Document:
o Describe your architecture, design decisions, and trade-offs in a separate file
(Markdown or PDF).
3. Future Enhancements:
o Propose at least two additional features and explain how they could be
implemented.
Requirements:
Deliverables:
1. Codebase:
o A complete pipeline for preprocessing, model training, and deployment.
o Include scripts for unit testing and performance benchmarking.
2. Documentation:
o A detailed report explaining your pipeline, model selection, and trade-offs.
3. API Endpoint:
o Host your model on a cloud platform or provide a Dockerized setup for running
the API locally.
4. Future Plan:
o Propose enhancements for handling multilingual feedback or incorporating
customer demographic data.
Evaluation Criteria
1. Thought Process and Approach
• Understanding the Problem: Have you clearly identified the requirements and
constraints of the chosen problem statement?
• Solution Design: Does your approach demonstrate a thoughtful design, considering real-
world challenges?
• Reasoning: Are your decisions for architecture, tools, and algorithms supported by
logical explanations?
• Creativity: Have you introduced unique or innovative elements in your solution?
• Practicality: Does your solution address the problem in a realistic, applicable manner?
• Scalability and Robustness:
o Is the backend/system designed to handle large-scale or dynamic workloads?
o How well does the solution handle errors, edge cases, or data variations?
• Performance: Have you demonstrated or explained how your solution optimizes
performance (e.g., response times, model accuracy)?
4. Communication and Presentation
• Documentation: Have you provided clear documentation for your solution, explaining
its components, usage, and setup?
• Clarity: Is your submission organized and easy to understand?
General Guidelines
• Use of AI Tools: Using AI tools is encouraged. However, the focus is on how you
integrate and leverage AI to enhance your solution, not merely on AI-generated
outputs. Submissions that rely solely on AI-generated solutions without demonstrating
your own thought process or understanding will not be considered for further
evaluation.
• Optionality: Remember, these assignments are optional. If you have previous projects
or experience that already showcase your skills, you can choose to highlight those
instead.
Note
This evaluation is designed to assess both technical skills and problem-solving abilities. Whether
your expertise lies in backend development or machine learning, the goal is to demonstrate
your understanding, creativity, and ability to apply skills effectively.
Best of luck!