Skip to content
 
 

Repository files navigation

Introduction

Mimir Candidate,

Welcome to the technical interview for our project. The following ten open-ended questions are designed to evaluate your technical proficiency, critical thinking, reasoning, analytical abilities, and communication skills. We expect you to provide thorough and thoughtful responses that reflect your unique approach and expertise.

Hands-On Coding Exercises: GitHub Project Upgrade

Instructions:

  1. Clone the Repository:

    Begin by cloning the project repository from GitHub. This will be your working codebase for these exercises.

  2. Create a New Readme.md

    Describe your proficiency with the technologies used and/or referenced within this repository and these exercises.

  3. Make Your Changes:

    Select a minimum of four exercises from the below list for this interview process. For each of the exercises that you select, make the necessary modifications directly in the code. As you work, document your changes by including clear explanations (within your new readme.md file) that describe how you implemented your solution and why you chose that particular approach.

  4. Submit Your Solution:

    After completing all the exercises, upload the updated private repository to your personal GitHub account. Then, email us the private repository link along with your explanations. Your submission will be reviewed for coding efficiency, technical proficiency, and the clarity of your documentation.

Good luck!


1. Solution Architect Experience

Clone the project and review its overall architecture. Implement changes to enhance scalability—such as integrating a caching layer or restructuring into a multi-tier architecture. Document your approach, explaining your design decisions and how these changes improve scalability and maintainability.


2. Database Implementation

Examine the current database implementation and upgrade the data-access layer. Consider refactoring it to better utilize an ORM or improve the existing schema design. Modify the code accordingly and include a detailed explanation of your changes and the reasoning behind them.


3. Database Performance for Postgres

Identify one or more queries interacting with the Postgres database that could be optimized. Enhance their performance by refactoring the query logic, adding indexes, or implementing partitioning strategies. Update the project, and provide documentation on the performance improvements and your approach.


4. Design Patterns

Select a section of the code (such as controllers, services, or repositories) that could benefit from a specific design pattern (e.g., Repository, Factory, or Strategy). Refactor the code to incorporate this design pattern. Explain your choice, how you implemented it, and the benefits it brings to the project.


5. C#.NET Core Enhancements

Review the backend C#.NET Core code and implement enhancements to improve performance and maintainability. This might include leveraging asynchronous programming, custom middleware, or newer language features. Modify the code and document your implementation process and the rationale behind your decisions.


6. MVC Dependency Injection

Analyze the current usage of dependency injection within the MVC framework in this project. Identify areas where DI can be better applied, refactor the code to enforce proper DI practices, and provide a summary of your modifications and the benefits achieved through better decoupling and testability.


7. HTML/CSS Mixed UX Experience

Evaluate the user interface built with HTML/CSS and implement enhancements to improve responsiveness and overall user experience. Update the UI for better accessibility and visual consistency across devices. Document your changes and explain your design choices.


8. OOP C# Advanced Reasoning Skills

Identify one or more classes where object-oriented principles (like encapsulation, polymorphism, or adherence to SOLID principles) could be improved. Refactor these classes to enhance their design and functionality. Include an explanation of the refactoring process and the benefits of your approach.


9. JavaScript Enhancements

Review the client-side JavaScript code and add an interactive feature or refactor existing functionality to improve modularity and maintainability. Make the necessary code changes and provide documentation on how and why your enhancements improve the overall project.


10. RESTful APIs and JSON

Examine the current RESTful API endpoints and implement improvements to enhance efficiency, security, or functionality. For example, update an endpoint to return JSON data with improved validation and error handling. Modify the project accordingly and document your approach and rationale.


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages