diff --git a/01. General Prep/authentication_vs_authorization.md b/01. General Prep/authentication_vs_authorization.md new file mode 100644 index 0000000..37c712f --- /dev/null +++ b/01. General Prep/authentication_vs_authorization.md @@ -0,0 +1,38 @@ +# Authentication vs Authorization + +Authentication and authorization work together to guard access, but they solve different problems: + +- **Authentication** answers *“Who are you?”* by verifying identity through credentials such as passwords, tokens, or biometrics. +- **Authorization** answers *“What are you allowed to do?”* by checking permissions after identity is verified. + +## Cheat Sheet +- AuthN verifies identity; AuthZ checks permissions after identity is known. +- Mention MFA + secure credential storage as baseline hygiene. +- Tie authorization back to least privilege with explicit role or policy examples. + +## Quick Refresh +- Confirm you can explain the flow: login → identity established → permission checks. +- Know common mechanisms: OAuth 2.0, JWTs, sessions, role-based access control (RBAC), attribute-based access control (ABAC). +- Highlight typical pitfalls: credential leakage, improper session management, over-permissive roles. +- Keep a simple sequence diagram in mind: user → identity provider → application → resource service. + +## Scenario Snapshots +- **Public marketing site with admin portal:** Anonymous visitors authenticate only when accessing `/admin`; authorization enforces editor vs reviewer roles with fine-grained permissions on content actions. +- **Multi-tenant SaaS dashboard:** Central identity provider issues tokens containing tenant and role claims. Downstream services authorize requests by validating both tenant ownership and feature entitlements to prevent cross-tenant data leakage. +- **Internal microservice mesh:** mTLS authenticates services, while sidecar policy engines (e.g., OPA) evaluate authorization rules per endpoint, reducing logic duplication and enabling audit trails. + +## Diagram Checklist +- Use a login flow sequence diagram: `Client → Auth Service → Identity Provider → Token` and return path to `Resource Server`. +- Include swimlanes for `User`, `App`, `Auth Provider`, and downstream `API` to highlight trust boundaries. +- Annotate where tokens are issued, stored, refreshed, and validated; call out failure paths (expired token, missing scope). + +## Deep Dive Later +- Compare session-based vs token-based authentication and when to use each. +- Outline secure password storage (hashing, salting, peppering) and MFA strategies. +- Explore least privilege design, privilege escalation prevention, and audit logging patterns. +- Review how cloud providers (AWS IAM, GCP IAM, Azure AD) implement auth/authz flows. + +## Interview Prompts +- Describe an end-to-end login flow for a web app and how you would secure it. +- Discuss how you would add a new microservice to an ecosystem while reusing existing auth. +- Explain debugging steps when a user reports unauthorized access or unexpected denial. diff --git a/01. General Prep/general_questions.md b/01. General Prep/general_questions.md new file mode 100644 index 0000000..383a83c --- /dev/null +++ b/01. General Prep/general_questions.md @@ -0,0 +1,18 @@ +# General Interview Questions + +Use these prompts to warm up your interview mindset and practice concise storytelling across behavioral and cross-functional topics. + +## Cheat Sheet +- Lead with a tight elevator pitch: current role, top impact, why you’re interviewing. +- Stockpile 3–4 STAR stories covering leadership, conflict, failure, and big wins. +- Prepare a closing question bank about team culture, roadmap, and success metrics. + +## Quick Refresh +- Rehearse your introduction, role highlights, and why-now narrative. +- Skim common behavioral categories: leadership, conflict, failure, collaboration, and impact. + +## Deep Dive Later +- Build full STAR responses for roles, successes, and tough lessons; prioritize metrics and business context. + +## Interview Prompts +- [100 Potential Interview Questions](http://career-advice.monster.com/job-interview/interview-questions/100-potential-interview-questions/article.aspx) diff --git a/01. General Prep/git.md b/01. General Prep/git.md new file mode 100644 index 0000000..bfd2a55 --- /dev/null +++ b/01. General Prep/git.md @@ -0,0 +1,62 @@ +# Git Interview Refresh + +Keep these branches, cleanup commands, and conceptual contrasts top of mind so you can speak confidently about Git workflows in interviews. + +## Cheat Sheet +- Use `git branch`, `-a`, and `-r` to show scope; know how to target remotes quickly. +- Explain merge vs rebase with a team workflow example and conflict handling plan. +- Safely clean the working tree: dry-run `git clean -n` before deleting untracked files. + +## Quick Refresh +- List and filter branches locally and across remotes when walking through repo discovery. +- Explain how you identify merged versus unmerged branches before cleanup. +- Know how to delete untracked files safely and when to fall back to selective resets. +- Contrast merge and rebase to show you can choose the right integration strategy. + +## Command Snippets + +### Listing branches +```sh +# Show local branches and highlight the current one +git branch +# Show local and remote branches +git branch -a +# Show remote branches only +git branch -r +``` + +### Checking merge status +```sh +# Branches already merged into master +git branch --merged master +# Branches not yet merged into master +git branch --no-merged master +# Remote branches not merged into origin/master +git branch -r --no-merged origin/master +``` + +### Cleaning untracked files +```sh +# Dry run: preview files to be removed +git clean -n +# Remove untracked files +git clean -f +# Remove untracked directories and ignored files +git clean -d -x -f +``` + +### Resetting working tree changes +```sh +# Discard changes in a single file +git checkout -- path/to/file +# Reset entire working tree to last commit +git reset --hard +``` + +## Interview Prompts +- Walk through when you would choose merge versus rebase in a team workflow. (See [Atlassian](https://www.atlassian.com/git/tutorials/merging-vs-rebasing).) +- Explain how you clean up stale feature branches without losing work. +- Describe your process for recovering from an accidental force push or bad commit. + +## Deep Dive Later +- [Advanced Git Tutorials](https://www.atlassian.com/git/tutorials/advanced-overview) by Atlassian for branching models, hooks, and rebase strategies. diff --git a/01. General Prep/overview.md b/01. General Prep/overview.md new file mode 100644 index 0000000..d732815 --- /dev/null +++ b/01. General Prep/overview.md @@ -0,0 +1,7 @@ +# General Prep Overview + +**Behavioral Warmup:** Frame your pitch in three beats (role → impact → why now) and recall STAR stories for conflict, failure, and big wins. Quick prompts: [General interview questions](general_questions.md). + +**Authentication vs Authorization:** Authentication proves identity (passwords, MFA, SSO); authorization enforces least privilege once identity is confirmed. Visualize login → token → permission check before diving into [Authentication vs Authorization](authentication_vs_authorization.md). + +**Git Essentials:** Surface how you list/prune branches, decide between merge vs rebase, and clean untracked files safely (`git clean -n` before `-f`). Reference commands in [Git Interview Refresh](git.md). diff --git a/02. Web Development/javascript.md b/02. Web Development/javascript.md new file mode 100644 index 0000000..aef8205 --- /dev/null +++ b/02. Web Development/javascript.md @@ -0,0 +1,23 @@ +# JavaScript Interview Refresh + +Focus on browser fundamentals, event handling, and language quirks to keep your JavaScript interviews sharp. + +## Cheat Sheet +- Describe the event loop and microtask queue when explaining async behavior. +- Know when to use `event.preventDefault()` vs returning `false` in handlers. +- Share how `"use strict"` impacts `this`, variable declarations, and silent failures. + +## Quick Refresh +- Explain event propagation (capture, target, bubble) and how `event.preventDefault()` differs from returning `false`. +- Revisit ES modules versus CommonJS and how bundlers/transpilers affect delivery. +- Recall how `"use strict"` changes scoping, `this` binding, and silent errors. + +## Interview Prompts +- **Preventing form submission:** Compare `event.preventDefault()` with `return false`, discuss when each applies, and describe proper separation of concerns for inline handlers vs. addEventListener. +- **Async patterns:** Walk through promises, async/await, microtasks vs macrotasks, and the event loop narrative. +- **State management in the browser:** Outline local/session storage, cookies, and when to leverage IndexedDB. + +## Deep Dive Later +- Read: **event.preventDefault() vs. return false** on [Stack Overflow](http://stackoverflow.com/questions/1357118/). +- Practice with [16 Great JavaScript Interview Questions](http://www.toptal.com/javascript/interview-questions). +- Refresh details in [JavaScript "Use Strict"](http://www.w3schools.com/js/js_strict.asp). diff --git a/02. Web Development/overview.md b/02. Web Development/overview.md new file mode 100644 index 0000000..6180148 --- /dev/null +++ b/02. Web Development/overview.md @@ -0,0 +1,5 @@ +# Web Development Overview + +**HTTP Lifecycle:** Trace DNS → TLS → CDN → app → database to explain latency and scaling decisions. Quick recap: [Web Development Interview Refresh](web_development.md). + +**JavaScript Fundamentals:** Revisit the event loop, microtasks vs macrotasks, and `preventDefault()` vs `return false`, including `"use strict"` implications. Details: [JavaScript Interview Refresh](javascript.md). diff --git a/02. Web Development/web_development.md b/02. Web Development/web_development.md new file mode 100644 index 0000000..1bb946d --- /dev/null +++ b/02. Web Development/web_development.md @@ -0,0 +1,28 @@ +# Web Development Interview Refresh + +Re-center on fundamental web platform concepts so you can confidently explain request flows, security risks, and modern service communication patterns. + +## Cheat Sheet +- Trace the full HTTP request path including DNS, TLS, CDN, app, and database layers. +- Define XSS variants and prevention techniques (encode output, CSP, sanitization). +- Compare REST vs gRPC and note why teams adopt HTTP/2 streaming for microservices. + +## Quick Refresh +- Map the HTTP request lifecycle, including DNS, TLS, proxies, and caching layers. +- Distinguish between transport (TCP) and application (HTTP) responsibilities. +- Recall common web security pitfalls such as XSS and how to mitigate them. +- Summarize service-to-service communication options, including REST and gRPC over HTTP/2. + +## Interview Prompts +- **Explain HTTP vs TCP:** Clarify layering (OSI/Internet stack), reliability, connection management, and how HTTP leverages TCP streams. Be ready to touch on HTTP/2 multiplexing. +- **What is XSS and how do you prevent it?** Describe reflected, stored, and DOM-based variants. Emphasize output encoding, CSP, input validation, and protected templating systems. Reference real-world examples: + - Injected `