Full-time Challenges
Full-Stack, Machine Learning, UI/UX Design, and Mobile Development Challenge.
Full-Stack, Machine Learning, UI/UX Design, and Mobile Development Challenge
This challenge is designed for full-time consultant roles. We evaluating your expertise across any of the roles:
- Full-stack development
- Machine Learning
- UI/UX design
- Mobile development
Estimated completion time is 4-6 hours. Utilize any programming languages, libraries, and frameworks you are comfortable with.
Challenge Details
Background
As a software consultant, we are often tasked with developing innovative solutions for our clients. In this challenge, you will be working on a project for a client in the document management industry. The client is looking for a comprehensive solution that includes a web application, machine learning pipeline, user-centric dashboard, and mobile application.
Depending on which role is of interest for you, you’ll can select between the following challenges, whether it be creating a web application, developing a machine learning pipeline, designing a user-centric dashboard, and building a mobile application.
This comprehensive set of challenges is designed to showcase the technical skills, creativity, and problem-solving abilities. Provide write-ups, code, and any other materials that demonstrate the approach and the final product.
Select a challenge that aligns with the interest, showcasing the technical prowess, creative thinking, and problem-solving skills. Your submission should include detailed write-ups, code, and any other materials.
Full-Stack Challenge: PDF Viewer and Text Analyzer
-
Objective: Create a full stack web application enabling PDF uploads and interaction. Key features should include rendering PDFs on the webpage, extracting text and bounding boxes for text sections, and a sidebar for navigating through text sections and boxes that automatically highlights and scrolls to the corresponding section in the PDF.
-
Frontend: Use a modern TypeScript framework such as Next.js. The PDF viewer should be interactive, allowing users to navigate through the document and interact with the text sections and bounding boxes.
-
Backend: Use a serverless architecture such as Vercel, Cloudflare. Use Next.js backend or deploy a Python varient. The backend should handle PDF uploads, text extraction, and bounding box generation. The extracted text and bounding boxes should be stored in a database for easy retrieval.
-
Database: Use a database such as Supabase to store the extracted text and bounding boxes. The database should be easily accessible and scalable. Can also use edge functions here to extract text and bounding boxes on the fly.
-
Hints: Consider using libraries such as PyMuPDF, and React-pdf-highlighter.
Machine Learning & Data Science Challenge: Automated Document Processing Pipeline
-
Objective: Construct a pipeline that processes PDF documents and extracts information into a structured format to be retrieved and analyzed.
-
Workflow Processing: A workflow is a sequence of tasks that processes a document. Each task should be able to extract specific information from the document, such as text, tables, and images. Create ability to define what a workflow is through the use of a yaml or some structured format.
-
Similarity Analysis: Implement a similarity analysis to compare documents and identify similar content. This feature should be able to identify similar documents and highlight the differences between them. E.g. When we’re reviewing a rental contract, we can query a specific clause and see how it compares to similar clauses in our database.
-
Hints: Consider using pre-build models and libraries, such as transformers. Vector embeddings can be used to compare document clauses, or use of knowledge graphs.
UI/UX Designer Challenge: Collaborative Workspace Dashboard
-
Objective: Design a dashboard facilitating file management and team collaboration.
-
Features:
-
File Uploading and Management: Users to upload and manage files within the dashboard, with support for various file types and sizes. Allow user to add metadata to the files, such as tags, categories, and descriptions,
-
View and Edit Permissions: A page to users to view and edit permissions for uploaded files, allowing them to share files with specific team members or workspace members.
-
File Viewing: A file viewer that supports various file types, including PDFs, images, and text files. The viewer should allow users to navigate through the document, view highlighted text, and add comments.
-
Workspace Association: Enable users to associate uploaded files with specific workspaces. These workspaces should be easily shareable among team members.
-
Organizational Workspaces: Design the dashboard to accommodate multiple workspaces under a single organization, allowing users to navigate between. Highlight the capability for users to belong to their own organization by default, join additional organizations as needed.
-
Folder Collections: For organizing files into folder collections within workspaces. This feature should support categorization and quick retrieval of documents for various projects or teams.
-
AI-Driven Chat Functionality: Incorporate an AI-powered chat feature that can intelligently reference documents from the current workspace or selected folder collection, providing contextually relevant information during discussions. This tool should enhance decision-making and streamline communication among team members.
-
-
Hints: Highlight a use case such as a hiring round where candidates’ resumes are managed. Use Figma or Adobe XD to design the dashboard.
Mobile Development Challenge: Integration with Document Management Themes
- Objective: Develop a mobile app that incorporates themes from the above challenges. This could include features for document management, collaboration within organizations, and AI-driven functionalities for enhancing user interaction with documents.
Submission Guidelines
- Source Code: Share the solution via GitHub or as an email attachment.
- Documentation: Include a README with instructions for setup and use.
- Demo: Provide a short video (1-2 minutes) or screenshots showcasing the application.
- Explanation: Describe the approach, including the choice of technologies and libraries.
Evaluation Criteria
We’ll evaluate submissions on functionality, code quality, documentation, and the innovative use of technology. Solutions should be functional, well-documented, and demonstrate both thoughtful design and ease of use.
Your innovative solutions and methodologies are eagerly awaited by our team. We look forward to exploring the submissions and discussing the approach during the interview process.