A last-minute interview preparation hub for backend and full-stack engineers — every topic with a real answer, code you can quote, and diagrams for the concepts that are easier to draw than to say.
Live: https://vivekkumarq.github.io/InterviewPrepBeforeMinutes
Every topic ships a Beginner and an Advanced track, so you can start from fundamentals or jump straight to the questions senior interviews actually open with.
| Group | Topics |
|---|---|
| Java Core | Java Fundamentals · OOP & Design · Collections · Multithreading & Concurrency · Java 8+ & Streams · Java Versions & Features · JVM & Garbage Collection |
| Spring Ecosystem | Spring Framework · Spring Boot · Spring Security & Auth · JPA & Hibernate |
| APIs & Messaging | REST API Design · GraphQL · Apache Kafka |
| Architecture & Design | Microservices · System Design (HLD) · Design Patterns & LLD |
| Databases | SQL & Query Tuning · PostgreSQL |
| DevOps & Cloud | Docker · Kubernetes · CI/CD & Git |
| Testing & Quality | JUnit 5, Mockito & Testing |
| Frontend | Angular · React · TypeScript & JS |
| Coding & Algorithms | Coding Round Basics · Arrays & Strings · Linked Lists · Stacks & Queues · Trees & BST · Graphs & Grids · Dynamic Programming · Greedy, Intervals & Heaps · Must-Know Algorithms |
| CS Fundamentals | DSA & Problem Solving · HR & Behavioural |
- Cheatsheets — a condensed recall screen for every topic: the tables, syntax, commands and rules worth glancing at in the last fifteen minutes. Reachable from the sidebar, the home page, or a button on any topic.
- Per-technology theming — each stack has its own accent colour and an inline SVG motif drawn from the technology itself, shown in a solid banner on its topic and cheatsheet pages.
- Beginner / Advanced toggle on every topic
- Coding & Algorithms corner — the problems that actually come up, from warm-up rounds to hard graph and DP questions, each with the pattern, the complexity and the edge cases named
- Prepare by company — pick the company you are interviewing at and get every question recorded as asked there, pulled together from all topics, grouped in reading order with a most asked only filter. Also reachable by typing a company name into search, or by clicking any Asked at chip on an answer.
- Most asked badges on the questions that come up in nearly every interview
- Instant global search across every question and answer (press /, arrow keys to move, Enter to open)
- Typography switcher — sans, serif, monospace, display and handwriting typefaces, plus four text sizes
- Dark and light mode, following your system preference by default
- Inline SVG diagrams — JVM memory layout, HashMap internals, Kafka partitions, the Spring Security filter chain, saga compensation, the event loop and more
- Runnable code examples in Java, SQL, YAML, TypeScript and Bash
- Copy button on every code block
- Progress tracking — mark questions as revised; progress is saved in your browser, and revised cards recede so what is left stands out
- Version-by-version Java coverage — what Java 8, 11, 17, 21 and 25 each added, and what an upgrade from 8 actually breaks
- Fully responsive — a bottom-sheet type picker and horizontally scrollable diagrams on phones, a drawer sidebar on tablets, the full layout on desktop
- 100% client-side — no build step, no backend, no dependencies
Plain HTML, CSS and vanilla JavaScript. No framework, no bundler, no npm install. Content is lazy-loaded per topic so the initial page load stays small, and the whole site is a set of static files served by GitHub Pages.
index.html # app shell
css/styles.css # theming, layout, animations
js/topics.js # topic registry, groups, part counts, cheatsheet bundles
js/motifs.js # per-topic accent colours and inline SVG motifs
js/app.js # router, search, company index, cheatsheets, typography, theme
js/data/*.js # questions, split into parts per topic
js/data/cheatsheets-*.js # cheatsheet content, bundled and lazily loaded
tools/check-data.js # content checks that `node --check` cannot make
Run node tools/check-data.js before committing content. It catches an
unescaped ${...} in an answer, a stray backtick in a code comment, markdown
in a plain-text field, and stray non-Latin characters — each of which is valid
JavaScript that breaks at runtime or renders wrongly. --fix escapes the
interpolations.
Routes are hash-based: #/ home, #/topic/<id>, #/cheatsheets,
#/cheatsheet/<id>, #/companies, #/company/<slug>.
The company pages are derived at runtime from the companies array on each
question — there is no second copy of that data to keep in sync.
No build required — open index.html directly, or serve the folder:
python -m http.server 8000
# then open http://localhost:8000Content for each topic is split across part files (kafka.js, kafka-2.js, kafka-3.js, …) so new questions go into a new file rather than an edit to an existing one.
To extend an existing topic:
- Create the next part, e.g.
js/data/kafka-4.js:
appendTopic("kafka", [
{
q: "Your question",
level: "beginner", // or "advanced"
hot: true, // shows the "Most asked" badge
tags: ["consumers"], // drives the per-question icon
companies: ["Amazon"], // renders the "Asked at" chips and the company filter
a: `<p>The answer as HTML — <code>code</code>, tables, lists and inline SVG all work.</p>`
}
]);- Bump
partsfor that topic injs/topics.js:
{ id: "kafka", parts: 4, name: "Apache Kafka", ... }Parts load in order, so question numbering stays stable. To add a whole new topic, add an entry to a group in js/topics.js and create js/data/<id>.js calling registerTopic(...).
Built by Vivek Kumar — Java · Spring Boot · Microservices