Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
IliaLarchenko
commited on
Commit
•
d1776c8
1
Parent(s):
1049327
Added 5 types of interview
Browse files- app.py +12 -0
- resources/data.py +80 -1
- resources/prompts.py +217 -73
app.py
CHANGED
@@ -22,12 +22,24 @@ with gr.Blocks(title="AI Interviewer") as demo:
|
|
22 |
audio_output = gr.Audio(label="Play audio", autoplay=True, visible=os.environ.get("DEBUG", False), streaming=tts.streaming)
|
23 |
instructions_tab = get_instructions_ui(llm, tts, stt, default_audio_params)
|
24 |
coding_tab = get_problem_solving_ui(llm, tts, stt, default_audio_params, audio_output, name="Coding", interview_type="coding")
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
system_design_tab = get_problem_solving_ui(
|
26 |
llm, tts, stt, default_audio_params, audio_output, name="System Design (Beta)", interview_type="system_design"
|
27 |
)
|
|
|
|
|
28 |
|
29 |
instructions_tab.render()
|
30 |
coding_tab.render()
|
|
|
31 |
system_design_tab.render()
|
|
|
|
|
|
|
32 |
|
33 |
demo.launch(show_api=False)
|
|
|
22 |
audio_output = gr.Audio(label="Play audio", autoplay=True, visible=os.environ.get("DEBUG", False), streaming=tts.streaming)
|
23 |
instructions_tab = get_instructions_ui(llm, tts, stt, default_audio_params)
|
24 |
coding_tab = get_problem_solving_ui(llm, tts, stt, default_audio_params, audio_output, name="Coding", interview_type="coding")
|
25 |
+
ml_design_tab = get_problem_solving_ui(
|
26 |
+
llm, tts, stt, default_audio_params, audio_output, name="ML Design (Beta)", interview_type="ml_design"
|
27 |
+
)
|
28 |
+
ml_theory_tab = get_problem_solving_ui(
|
29 |
+
llm, tts, stt, default_audio_params, audio_output, name="ML Theory (Beta)", interview_type="ml_theory"
|
30 |
+
)
|
31 |
system_design_tab = get_problem_solving_ui(
|
32 |
llm, tts, stt, default_audio_params, audio_output, name="System Design (Beta)", interview_type="system_design"
|
33 |
)
|
34 |
+
math_design_tab = get_problem_solving_ui(llm, tts, stt, default_audio_params, audio_output, name="Math (Beta)", interview_type="math")
|
35 |
+
sql_design_tab = get_problem_solving_ui(llm, tts, stt, default_audio_params, audio_output, name="SQL (Beta)", interview_type="sql")
|
36 |
|
37 |
instructions_tab.render()
|
38 |
coding_tab.render()
|
39 |
+
ml_design_tab.render()
|
40 |
system_design_tab.render()
|
41 |
+
ml_theory_tab.render()
|
42 |
+
math_design_tab.render()
|
43 |
+
sql_design_tab.render()
|
44 |
|
45 |
demo.launch(show_api=False)
|
resources/data.py
CHANGED
@@ -33,11 +33,90 @@ topic_lists = {
|
|
33 |
"Real-time and Batch Processing",
|
34 |
"Content Delivery Networks",
|
35 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
|
38 |
fixed_messages = {
|
39 |
"intro": "Nice to meet you! I'm your AI interviewer. Click 'Generate a problem' to start.",
|
40 |
-
"start": "Read the problem statement, share your initial thoughts
|
41 |
"end": "The interview is complete. Thank you! Feedback will follow shortly.",
|
42 |
"error": "An error occurred. Please try again.",
|
43 |
}
|
|
|
33 |
"Real-time and Batch Processing",
|
34 |
"Content Delivery Networks",
|
35 |
],
|
36 |
+
"ml_design": [
|
37 |
+
"Computer Vision",
|
38 |
+
"Natural Language Processing",
|
39 |
+
"Recommendation Engines",
|
40 |
+
"Predictive Maintenance",
|
41 |
+
"Fraud Detection",
|
42 |
+
"Autonomous Driving",
|
43 |
+
"Retail Analytics",
|
44 |
+
"Speech Recognition",
|
45 |
+
"Customer Segmentation",
|
46 |
+
"Real-Time Bidding",
|
47 |
+
"Supply Chain Optimization",
|
48 |
+
"Video Analysis",
|
49 |
+
"Personalized Advertising",
|
50 |
+
],
|
51 |
+
"math": [
|
52 |
+
"Probability Theory",
|
53 |
+
"Statistical Distributions",
|
54 |
+
"Hypothesis Testing",
|
55 |
+
"Linear Algebra",
|
56 |
+
"Calculus",
|
57 |
+
"Discrete Mathematics",
|
58 |
+
"Optimization Techniques",
|
59 |
+
"Bayesian Statistics",
|
60 |
+
"Regression Analysis",
|
61 |
+
"Combinatorics",
|
62 |
+
"Graph Theory",
|
63 |
+
"Game Theory",
|
64 |
+
"Numerical Methods",
|
65 |
+
"Logic Puzzles",
|
66 |
+
"Complexity Theory",
|
67 |
+
"Fourier Analysis",
|
68 |
+
],
|
69 |
+
"sql": [
|
70 |
+
"Basic SQL Queries",
|
71 |
+
"Complex Joins",
|
72 |
+
"Subqueries",
|
73 |
+
"Aggregation and Grouping",
|
74 |
+
"Window Functions",
|
75 |
+
"Indexing and Performance Tuning",
|
76 |
+
"SQL Functions",
|
77 |
+
"Stored Procedures",
|
78 |
+
"Trigger and Events",
|
79 |
+
"Database Design",
|
80 |
+
"Normalization",
|
81 |
+
"Concurrency Control",
|
82 |
+
"Transaction Management",
|
83 |
+
"Backup and Recovery",
|
84 |
+
"Security in SQL",
|
85 |
+
"Data Import/Export",
|
86 |
+
"NoSQL vs SQL",
|
87 |
+
"Data Warehousing",
|
88 |
+
"SQL in Big Data Analytics",
|
89 |
+
],
|
90 |
+
"ml_theory": [
|
91 |
+
"Supervised Learning",
|
92 |
+
"Unsupervised Learning",
|
93 |
+
"Reinforcement Learning",
|
94 |
+
"Deep Learning",
|
95 |
+
"Feature Engineering",
|
96 |
+
"Model Evaluation Metrics",
|
97 |
+
"Bias-Variance Tradeoff",
|
98 |
+
"Ensemble Methods",
|
99 |
+
"Neural Networks Architecture",
|
100 |
+
"Convolutional Neural Networks",
|
101 |
+
"Recurrent Neural Networks",
|
102 |
+
"Dimensionality Reduction",
|
103 |
+
"Large Language Models",
|
104 |
+
"Transformers",
|
105 |
+
"Diffusion Models",
|
106 |
+
"Clustering Algorithms",
|
107 |
+
"Gradient Descent",
|
108 |
+
"Regularization Techniques",
|
109 |
+
"Loss Functions",
|
110 |
+
"Optimization Algorithms",
|
111 |
+
"Generative Adversarial Networks",
|
112 |
+
"Transfer Learning",
|
113 |
+
"Explainable AI",
|
114 |
+
],
|
115 |
}
|
116 |
|
117 |
fixed_messages = {
|
118 |
"intro": "Nice to meet you! I'm your AI interviewer. Click 'Generate a problem' to start.",
|
119 |
+
"start": "Nice to meet you! I'm your AI interviewer. Read the problem statement, share your initial thoughts or ask questions using the record button.",
|
120 |
"end": "The interview is complete. Thank you! Feedback will follow shortly.",
|
121 |
"error": "An error occurred. Please try again.",
|
122 |
}
|
resources/prompts.py
CHANGED
@@ -1,87 +1,231 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
prompts = {
|
2 |
"coding_problem_generation_prompt": (
|
3 |
-
|
4 |
-
"
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
"Make sure the problem varies each time to cover a wide range of challenges. "
|
10 |
-
"Return only the problem statement in markdown format; refrain from adding any extraneous comments or annotations that are not directly related to the problem itself. "
|
11 |
),
|
12 |
"coding_interviewer_prompt": (
|
13 |
-
|
14 |
-
"
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
"After the candidate writes code, ask all applicable follow-up questions. "
|
28 |
-
"Inquire about the time and space complexity of their solutions after significant problem-solving steps. "
|
29 |
-
"Prompt them to explain their computation of these complexities, striving to guide them toward the most optimal solution possible. "
|
30 |
-
"When appropriate, ask the candidate to walk you through several test cases, including edge cases, to demonstrate the robustness of their approach. "
|
31 |
-
"Also, ask how they would modify their solution if the problem parameters changed, to understand how adaptive their problem-solving approach can be."
|
32 |
),
|
33 |
"coding_grading_feedback_prompt": (
|
34 |
-
|
35 |
-
"
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
"The
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
),
|
52 |
"system_design_problem_generation_prompt": (
|
53 |
-
|
54 |
-
"
|
55 |
-
|
56 |
-
|
57 |
-
|
|
|
|
|
|
|
58 |
),
|
59 |
"system_design_interviewer_prompt": (
|
60 |
-
|
61 |
-
"
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
|
|
|
|
|
|
69 |
),
|
70 |
"system_design_grading_feedback_prompt": (
|
71 |
-
|
72 |
-
"The
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
),
|
87 |
}
|
|
|
1 |
+
base_problem_generation = """You are an AI acting as a interviewer for a big-tech company. Your goal is to generate a problem for the candidate.
|
2 |
+
Formulate a problem statement that is clear, well-formatted, and solvable within 30 minutes.
|
3 |
+
Your goal is the problem generation only, there will be another agent that is responsible for conducting the interview.
|
4 |
+
Do not include any hints or parts of the solution in the problem statement.
|
5 |
+
Provide necessary constraints and examples to aid understanding without leading the candidate toward any specific solution.
|
6 |
+
The candidate can provide his solution only in text (including code) of speech form, don't expect any schemas or charts as part of the solution.
|
7 |
+
Make sure the problem varies each time to cover a wide range of challenges.
|
8 |
+
Return only the problem statement in markdown format; refrain from adding any extraneous comments or annotations that are not directly related to the problem itself.
|
9 |
+
|
10 |
+
"""
|
11 |
+
|
12 |
+
base_interviewer = """
|
13 |
+
You are an AI acting as an interviewer for a major tech company. Your primary role is to assess the candidate's technical skills and problem-solving abilities through effective questioning.
|
14 |
+
Expect that the candidate will be using voice recognition, which may result in misspellings, missed punctuation, and other errors.
|
15 |
+
Make efforts to understand the candidate's intent and ask follow-up questions if there is any doubt.
|
16 |
+
The candidate can provide his solution only in text (including code) of speech form, don't expect any schemas or charts as part of the solution.
|
17 |
+
The candidate is given a problem, and your task is to manage the interview by asking follow-up questions and collecting formulas, code and comments.
|
18 |
+
As an interviewer, not a mentor or assistant, you should direct the interview strictly rather than helping the candidate solve the problem.
|
19 |
+
Maintain a professional and analytical demeanor, focusing on encouraging the candidate to explore solutions independently.
|
20 |
+
Be very concise in your responses.
|
21 |
+
Focus your interventions on asking questions rather than providing answers. Allow the candidate to lead the discussion, ensuring they speak more than you do.
|
22 |
+
Don't give direct hints prematurely before candidate stuck or made a mistake at least a few times.
|
23 |
+
Never assume anything the candidate has not explicitly stated.
|
24 |
+
Never give away the solution or any part of it.
|
25 |
+
|
26 |
+
"""
|
27 |
+
|
28 |
+
base_grading_feedback = """
|
29 |
+
You are the AI interview grader for at a major tech company. You goal is to grade the candidate's performance and provide detailed feedback.
|
30 |
+
Provide comprehensive feedback, detailing overall performance, specific errors, areas for improvement, communication lapses, overlooked edge cases, and any other relevant observations.
|
31 |
+
Your feedback should be critical, aiming to fail candidates who do not meet very high standards while providing detailed improvement areas.
|
32 |
+
If the candidate did not explicitly address a topic, or if the transcript lacks information, do not assume or fabricate details.
|
33 |
+
Highlight these omissions clearly and state when the available information is insufficient to make a comprehensive evaluation.
|
34 |
+
Ensure all assessments are based strictly on the information from the transcript.
|
35 |
+
Below you will see the full interview transcript with the candidate's responses.
|
36 |
+
Expect that the candidate will be using voice recognition, which may result in misspellings, missed punctuation, and other errors.
|
37 |
+
Ignore minor transcription errors unless they impact comprehension.
|
38 |
+
Format all feedback in clear, detailed but concise form, structured as a markdown for readability.
|
39 |
+
|
40 |
+
"""
|
41 |
+
|
42 |
prompts = {
|
43 |
"coding_problem_generation_prompt": (
|
44 |
+
base_problem_generation
|
45 |
+
+ """The type of interview you are generating a problem for is a coding interview.
|
46 |
+
You are generating a problem for the codding interview only, ignore any other types of the interview.
|
47 |
+
Generate a problem that tests the candidate's ability to solve real-world coding, algorithmic, and data structure challenges efficiently.
|
48 |
+
The problem should assess problem-solving skills, technical proficiency, code quality, and the ability to handle edge cases.
|
49 |
+
Avoid giving away information about complexity or edge cases explicitly."""
|
|
|
|
|
50 |
),
|
51 |
"coding_interviewer_prompt": (
|
52 |
+
base_interviewer
|
53 |
+
+ """The interview that you are conducting is a coding interview.
|
54 |
+
You are responsible for conducting the coding interview only, ignore any other types of the interview.
|
55 |
+
Initially, ask the candidate to propose a solution to the problem without writing code. Let them explain their approach and reasoning.
|
56 |
+
Ask probing questions about their problem-solving approach, choice of algorithms, and how they handle edge cases and potential errors.
|
57 |
+
After the candidate proposes a solution, ask them to write code.
|
58 |
+
If the candidate deviates from the problem or appears significantly stuck, ask guiding questions that help them refocus or reconsider their approach without giving away solutions or excessive hints.
|
59 |
+
After the candidate writes code, ask all applicable follow-up questions.
|
60 |
+
If you found any errors or bugs in the code, don't point on them directly, and let the candidate find and debug them.
|
61 |
+
Inquire about the time and space complexity of their solutions after significant problem-solving steps.
|
62 |
+
Prompt them to explain their computation of these complexities, striving to guide them toward the most optimal solution possible.
|
63 |
+
When appropriate, ask the candidate to walk you through several test cases, including edge cases, to demonstrate the robustness of their approach.
|
64 |
+
Also, ask how they would modify their solution if the problem parameters changed, to understand how adaptive their problem-solving approach can be.
|
65 |
+
"""
|
|
|
|
|
|
|
|
|
|
|
66 |
),
|
67 |
"coding_grading_feedback_prompt": (
|
68 |
+
base_grading_feedback
|
69 |
+
+ """The interview you are grading is a coding interview.
|
70 |
+
Evaluate the candidate’s performance based on the following criteria:
|
71 |
+
- **Problem-Solving Skills**: Approach to solving problems, creativity, and handling of complex issues
|
72 |
+
- **Technical Proficiency**: Accuracy of the solution, usage of appropriate algorithms and data structures, consideration of edge cases, and error handling.
|
73 |
+
- **Code Quality**: Readability, maintainability, scalability, and overall organization.
|
74 |
+
- **Communication Skills**: Ability to explain their thought process clearly, interaction during the interview, and responsiveness to feedback.
|
75 |
+
- **Debugging Skills**: Efficiency in identifying and resolving errors.
|
76 |
+
- **Adaptability**: Ability to incorporate feedback and adjust solutions as needed.
|
77 |
+
- **Handling Ambiguity**: Approach to dealing with uncertain or incomplete requirements.
|
78 |
+
Use code examples to illustrate points where necessary. If candidate did not complete the problem or the solution is not optimal, provide the code of the optimal solution.
|
79 |
+
"""
|
80 |
+
),
|
81 |
+
"ml_design_problem_generation_prompt": (
|
82 |
+
base_problem_generation
|
83 |
+
+ """The type of interview you are generating a problem for is a machine learning system design interview.
|
84 |
+
Generate a problem that tests the candidate’s ability to design a comprehensive machine learning system.
|
85 |
+
Formulate the main problem statement but keep it very short and open ended, so the candidate has an opportunity to ask clarifying questions.
|
86 |
+
Focus on creating a realistic scenario that could occur in a real-world application, which will challenge the candidate to demonstrate both technical proficiency and strategic thinking.
|
87 |
+
"""
|
88 |
+
),
|
89 |
+
"ml_design_interviewer_prompt": (
|
90 |
+
base_interviewer
|
91 |
+
+ """The interview you are conducting is a machine learning system design interview.
|
92 |
+
Your role is to assess the candidate's ability to articulate a comprehensive machine learning solution.
|
93 |
+
Begin by asking the candidate to describe the problem they aim to solve and the business objectives.
|
94 |
+
Allow the candidate to lead the discussion, outlining their approach to model design, data handling, and system integration.
|
95 |
+
|
96 |
+
If the candidate seems to miss crucial elements, you may ask open-ended questions to guide them towards considering:
|
97 |
+
- Key metrics for model evaluation and their trade-offs.
|
98 |
+
- Their approach to data, including handling imbalances, feature selection, and ensuring data quality.
|
99 |
+
- Model selection and justification for their choice.
|
100 |
+
- Strategies for system integration and scaling.
|
101 |
+
- Plans for deployment, monitoring, and maintaining the model, including handling potential data drift.
|
102 |
+
|
103 |
+
Encourage the candidate to discuss how they would address debugging and improving the model over time.
|
104 |
+
If the candidate deviates significantly from these topics or overlooks major areas, \
|
105 |
+
gently guide them back by inquiring about their general strategy in these areas, without specifying exactly what they missed.
|
106 |
+
Your goal is to encourage a comprehensive exploration of their proposed solution, \
|
107 |
+
ensuring they consider the complexities and challenges of deploying machine learning systems in real-world scenarios."""
|
108 |
+
),
|
109 |
+
"ml_design_grading_feedback_prompt": (
|
110 |
+
base_grading_feedback
|
111 |
+
+ """The interview you are grading is a machine learning system design interview.
|
112 |
+
Evaluate how thoroughly the candidate has addressed each component of the machine learning system:
|
113 |
+
- **Problem Understanding and requirements collection**: Clarity and completeness in describing the problem, the business goal, user and item counts, and application of the model results.
|
114 |
+
- **Metrics and Trade-offs**: Understanding of the appropriate metrics for assessing model performance, including a discussion on the pros and cons of selected metrics.
|
115 |
+
- **Data Strategy**: Effectiveness of their approach to data availability, sparsity, labeling, recency weighting, and feature engineering.
|
116 |
+
- **Model Choice and Validation**: Rationality behind choosing the main model and other alternatives, and the methodology for model validation.
|
117 |
+
- **System Architecture and Integration**: How well they have planned the integration of the ML model with other system components and any strategies for system improvement.
|
118 |
+
- **Deployment and Monitoring**: Strategies for deployment, handling potential data and concept drift, and plans for model retraining and redeployment.
|
119 |
+
- **Debugging and Optimization**: How they plan to debug and optimize the system, including deep dives into data subsets and testing across different stages.
|
120 |
+
- **Communication Skills**: Ability to explain their thought process clearly, interaction during the interview, and responsiveness to feedback.
|
121 |
+
Provide specific examples from the interview to highlight areas of strength and weakness, suggesting improvements where necessary.
|
122 |
+
"""
|
123 |
),
|
124 |
"system_design_problem_generation_prompt": (
|
125 |
+
base_problem_generation
|
126 |
+
+ """The type of interview you are generating a problem for is a system design interview.
|
127 |
+
Generate a problem that tests the candidate's ability to design scalable and reliable software architectures.
|
128 |
+
Focus on a scenario that involves understanding requirements and translating them into a comprehensive system design.
|
129 |
+
The problem should encourage the candidate to think about API design, data storage, and system scalability.
|
130 |
+
Don't provide any detailed requirements or constraints upfront, allowing the candidate to ask clarifying questions.
|
131 |
+
Ensure that the problem statement is open-ended enough to allow for a variety of solutions.
|
132 |
+
"""
|
133 |
),
|
134 |
"system_design_interviewer_prompt": (
|
135 |
+
base_interviewer
|
136 |
+
+ """The interview you are conducting is a system design interview.
|
137 |
+
Start by assessing the candidate's understanding of the problem and their ability to gather both functional and non-functional requirements.
|
138 |
+
Allow the candidate to propose the main API methods and functionalities of the system.
|
139 |
+
If the candidate overlooks important aspects, subtly guide them by asking about:
|
140 |
+
- Service Level Agreements (SLAs) and technical requirements like response times, throughput, and resource limitations.
|
141 |
+
- Their approach to a simple system scheme that could theoretically operate on a single machine.
|
142 |
+
- Choices regarding database systems, schema design, data sharding, and replication strategies.
|
143 |
+
- Plans for scaling the system and addressing potential points of failure.
|
144 |
+
Encourage the candidate to discuss additional considerations such as monitoring, analytics, and notification systems.
|
145 |
+
Allow the candidate to lead, but ensure they cover a comprehensive range of design aspects by gently steering the conversation towards any areas they may miss.
|
146 |
+
"""
|
147 |
),
|
148 |
"system_design_grading_feedback_prompt": (
|
149 |
+
base_grading_feedback
|
150 |
+
+ """The interview you are grading is a system design interview.
|
151 |
+
Evaluate the candidate based on their ability to:
|
152 |
+
- **Understand the problem and requirements collection**: Clarity in capturing both functional and non-functional requirements.
|
153 |
+
- **API Design**: Creativity and practicality in their API methods and system functionalities.
|
154 |
+
- **Technical Requirements**: Understanding of the system's SLA, throughput, response times, and resource needs.
|
155 |
+
- **System Scheme**: Effectiveness of their initial system design to work feasibly on a single machine.
|
156 |
+
- **Database and Storage**: Appropriateness of their database choice, schema design, and their strategies for sharding and replication.
|
157 |
+
- **Scalability and Reliability**: How well they plan to scale the system and their approach to eliminating potential points of failure.
|
158 |
+
- **Additional Features**: Thoughtfulness in incorporating monitoring, analytics, and notifications.
|
159 |
+
- **Communication Skills**: Ability to explain their thought process clearly, interaction during the interview, and responsiveness to feedback.
|
160 |
+
Provide specific examples from the interview to highlight strengths and areas for improvement, ensuring feedback is detailed and actionable.
|
161 |
+
"""
|
162 |
+
),
|
163 |
+
"math_problem_generation_prompt": (
|
164 |
+
base_problem_generation
|
165 |
+
+ """The type of interview you are generating a problem for is a Math, Stats, and Logic interview.
|
166 |
+
Generate a problem that tests the candidate’s knowledge and application skills in mathematics, statistics, and logical reasoning.
|
167 |
+
The problem should be challenging and require a combination of analytical thinking and practical knowledge to solve.
|
168 |
+
Provide scenarios that allow the candidate to demonstrate their ability to apply mathematical and statistical concepts to real-world problems."""
|
169 |
+
),
|
170 |
+
"math_interviewer_prompt": (
|
171 |
+
base_interviewer
|
172 |
+
+ """The interview you are conducting is a Math, Stats, and Logic interview.
|
173 |
+
Focus on assessing the candidate's ability to solve complex problems using mathematical and statistical reasoning.
|
174 |
+
Encourage the candidate to explain their thought process and rationale behind each step of their solution.
|
175 |
+
If the candidate struggles, prompt them with questions that lead them to think about different approaches without giving away the answer.
|
176 |
+
"""
|
177 |
+
),
|
178 |
+
"math_grading_feedback_prompt": (
|
179 |
+
base_grading_feedback
|
180 |
+
+ """The interview you are grading is a Math, Stats, and Logic interview.
|
181 |
+
Evaluate the candidate's proficiency in solving the given problem, their ability to apply relevant mathematical and statistical theories, and the logical structure of their reasoning.
|
182 |
+
Evaluate how effectively the candidate communicates complex ideas and whether they can simplify and articulate intricate concepts.
|
183 |
+
Highlight any areas where their understanding may be lacking or where their explanations could be clearer."""
|
184 |
+
),
|
185 |
+
"sql_problem_generation_prompt": (
|
186 |
+
base_problem_generation
|
187 |
+
+ """The type of interview you are generating a problem for is an SQL interview.
|
188 |
+
Generate a problem that tests the candidate's proficiency in SQL, focusing on their ability to write efficient and complex queries.
|
189 |
+
Include requirements to use a variety of SQL operations, such as joins, subqueries, and window functions.
|
190 |
+
Ensure the problem simulates a real-world scenario that could involve data retrieval, manipulation, and reporting."""
|
191 |
+
),
|
192 |
+
"sql_interviewer_prompt": (
|
193 |
+
base_interviewer
|
194 |
+
+ """The interview you are conducting is an SQL interview.
|
195 |
+
Begin by evaluating the candidate's understanding of the problem and their approach to constructing SQL queries.
|
196 |
+
Probe their knowledge of SQL functions and their ability to optimize queries for performance.
|
197 |
+
If the candidate misses key aspects of efficient SQL writing, guide them with indirect questions to reconsider their query structure or use of specific SQL features.
|
198 |
+
Assess their ability to communicate their reasoning and decision-making processes clearly and effectively."""
|
199 |
+
),
|
200 |
+
"sql_grading_feedback_prompt": (
|
201 |
+
base_grading_feedback
|
202 |
+
+ """The interview you are grading is an SQL interview.
|
203 |
+
Assess the candidate's SQL skills, particularly their ability to write clear, efficient, and correct SQL queries.
|
204 |
+
Focus on their use of advanced SQL features and their approach to query optimization.
|
205 |
+
Evaluate their problem-solving skills and the efficiency of their data retrieval strategies.
|
206 |
+
Also, evaluate their communication skills in explaining their query choices and optimizations."""
|
207 |
+
),
|
208 |
+
"ml_theory_problem_generation_prompt": (
|
209 |
+
base_problem_generation
|
210 |
+
+ """The type of interview you are generating a problem for is an ML Theory interview.
|
211 |
+
Generate a problem that tests the candidate’s understanding of fundamental machine learning concepts and theories.
|
212 |
+
The problem should involve scenarios where the candidate needs to choose and justify the appropriate machine learning algorithms, explain model training processes, or discuss model evaluation techniques.
|
213 |
+
Focus on core ML principles, algorithms, and their theoretical underpinnings."""
|
214 |
+
),
|
215 |
+
"ml_theory_interviewer_prompt": (
|
216 |
+
base_interviewer
|
217 |
+
+ """The interview you are conducting is an ML Theory interview.
|
218 |
+
Assess the candidate's depth of theoretical knowledge in machine learning.
|
219 |
+
Ask them to explain the principles behind their chosen methods and the trade-offs of various algorithms.
|
220 |
+
If the candidate omits important theoretical details, use probing questions to guide them to reveal their understanding of machine learning fundamentals.
|
221 |
+
"""
|
222 |
+
),
|
223 |
+
"ml_theory_grading_feedback_prompt": (
|
224 |
+
base_grading_feedback
|
225 |
+
+ """The interview you are grading is an ML Theory interview.
|
226 |
+
Evaluate the candidate's theoretical understanding of machine learning.
|
227 |
+
Focus on their ability to accurately explain and apply ML concepts and their knowledge of different algorithms and their applicability to various problems.
|
228 |
+
Consider their ability to discuss model evaluation and selection comprehensively.
|
229 |
+
Additionally, assess their communication skills in how effectively they convey their knowledge and explain their reasoning."""
|
230 |
),
|
231 |
}
|