Diagram kinds
Each kind of question gets the diagram that fits it. Tap Next or swipe the diagram. Objects: see the DI card.
How does JWT authentication work end to end?
Also for: Login, OAuth, cache-aside, retries, tool calling, sagas
POST /auth/login email + password
1/9The login form posts email and password over HTTPS.
switchMap vs mergeMap: which one for a search box?
Also for: RxJS, async/await, threads, event loop, change detection
operator: switchMap
1/7Four streams, time runs right. Watch which search reaches the screen.
What is middleware and why does order matter?
Also for: Middleware, filters, interceptors, CI/CD, RAG pipeline
1/8Each app.Use…() line in Program.cs adds one middleware, and a request passes them in the order you wrote them. (UseRouting and UseCors sit here too; left out to keep it short.)
Walk me through a request across your Azure system.
Also for: HLD, Azure, microservices, your project walkthrough
1/9The whole system. Follow one loan application through it. On a phone the view moves to each part; on a laptop you see it all.
INNER vs LEFT JOIN: what comes back, and what goes wrong?
Also for: Joins, GROUP BY / HAVING, window functions, duplicates, Nth highest
SELECT c.Name, l.Amount FROM Customers c JOIN Loans l ON l.CustId = c.Id
| Id | Name |
|---|---|
| 1 | Asha |
| 2 | Ravi |
| 3 | Meera |
| Id | CustId | Amount |
|---|---|---|
| 101 | 1 | 500000 |
| 102 | 1 | 200000 |
| 103 | 2 | 800000 |
1/7Two tables. A loan points to its customer through CustId. Which customers come back?
Two Sum: find two numbers that add up to a target.
Also for: Arrays, two pointers, sliding window, linked lists, trees
nums = [3, 8, 11, 4, 6], target = 10
int[] TwoSum(int[] nums, int target) { var seen = new Dictionary<int, int>(); for (int i = 0; i < nums.Length; i++) { int need = target - nums[i]; if (seen.TryGetValue(need, out int j)) return [j, i]; seen[nums[i]] = i; } return [];}
1/7Find two numbers that add up to 10. Checking every pair is O(n²). One pass with a dictionary is O(n).
WHERE vs HAVING with GROUP BY: which rows count, and when?
Also for: GROUP BY / HAVING, aggregates, UPDATE or INSERT between two runs, EF change tracking: the source stays on screen while the result builds
SELECT Contract, SUM(Amount) AS Owed FROM Payments WHERE Paid = 'no' GROUP BY Contract HAVING COUNT(*) >= 2
| Id | Contract | Amount | Paid |
|---|---|---|---|
| 1 | BMW-1001 | 450 | yes |
| 2 | BMW-1002 | 600 | no |
| 3 | BMW-1001 | 450 | yes |
| 4 | BMW-1003 | 300 | yes |
| 5 | BMW-1002 | 600 | no |
1/6One row per monthly payment. Collections asks: which contracts missed two or more?
Clustered index: how does SQL Server find one loan without reading the table?
Also for: Index B-trees and query plans (SQL), BST search and validation, recursion and merge-sort trees (DSA), component and file trees (Angular)
1/5A clustered index on LoanId stores the Loans table itself as this tree, sorted by LoanId.