Parihar07 /
system_design
📚 Comprehensive C++ OOP interview preparation guide covering Constructors, Destructors, Access Modifiers, and System Design concepts with detailed examples and explanations.
Loading repository data…
pysojic / repository
📚 Comprehensive C++ interview prep repository featuring clean implementations of commonly asked data structures, template metaprogramming exercises, and algorithmic patterns. Designed to strengthen core C++ skills and deepen understanding of language internals.
This repository is a modern C++ interview preparation toolkit, designed to deepen the understanding of core C++ concepts through clean, from-scratch implementations of data structures, concurrency primitives, smart pointers, metaprogramming techniques and more. It is organized to mirror the themes commonly explored in interviews, while encouraging a deeper grasp of language internals and performance considerations. In addition to the code, it includes a curated “References & Further Reading” section that maps out books, blogs, and documentation for going deeper into modern C++, systems programming, performance, networking, concurrency, and algorithms.
include/Header-only library code, organized by topic.
include/Containers/Custom STL-like containers that exercise memory management, iterators, and algorithmic behavior:
Array, Vector, StringList, ForwardListHashMap (chaining) and OpenAddressingHashMapSPSCQueue for single-producer/single-consumer scenariosinclude/Concurrency/Basic synchronization primitives implemented manually to understand low-level threading:
Mutex (POSIX-based)SpinLock (busy-wait locking)include/SmartPointers/Custom smart pointer implementations that mimic unique_ptr, shared_ptr, and related semantics:
UniquePtrSharedPtrWeakPtrinclude/Sorting/A collection of classical sorting algorithms (e.g., quicksort, mergesort, heapsort) implemented with a focus on clarity and performance trade-offs.
include/Utilities/Miscellaneous utilities showcasing advanced language features:
Any.hpp: type-erasure containerCompileTimeFunctions.hpp: template metaprogramming and constexpr explorationmove_semantics.hpp: move/forward helpers and move-semantics experimentssrc/Small C++ programs that exercise and test some of the headers in include/. These files serve as usage examples and lightweight tests (for example, metafunctions_test.cpp for the metaprogramming utilities).
interview_questions/A collection of PDF question-and-answer sets. The questions are a mix of those that were asked in real interviews (either to me personally or sourced online) and ones I created while studying specific topics. They are organized as themed sheets you can skim or drill through before an interview:
I’ll keep adding new questions and answers as I read more resources on these topics.
CMakeLists.txtCMake build configuration for generating project files and building the code.
This project is not meant to replace the STL. Instead, it is a learning environment to:
cmake -S . -B build
cmake --build build
You can include individual headers in your own C++ test files or use the provided tests.hpp for quick experimentation.
This section collects focused resources on modern C++, systems programming, performance, networking, concurrency, and algorithms. It’s meant as a concise “reading map” for going beyond syntax into how real machines behave, how production C++ is designed and optimized, and how to reason about trade-offs that matter both in interviews and in real-world systems.
Effective Modern C++ — Scott Meyers — Item-based guidelines for C++11/14 that teach how to use move semantics, smart pointers, lambdas, auto, and concurrency correctly and idiomatically.
C++ Templates: The Complete Guide (2nd Edition) — David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor — Definitive deep dive into templates, from basic syntax to type traits and template metaprogramming, essential for understanding modern generic C++ code.
The C++ Programming Language (3rd Edition) — Bjarne Stroustrup — Comprehensive tour of the C++ language and standard library from its creator, ideal as a foundational reference and big-picture overview.
C++ High Performance, Second Edition: Master the art of optimizing the functioning of your C++ code — Focuses on writing cache-friendly, branch-efficient, and scalable C++ code, with practical coverage of profiling, memory behavior, concurrency, and low-level tuning.
Beautiful C++ — Emphasizes clear, expressive, and maintainable modern C++ design, showing how to combine language features and idioms to produce elegant, robust code.
C++ Software Design — A systems-level look at structuring C++ codebases: interfaces, boundaries, testability, and architecture patterns tailored to large C++ projects.
C++ Memory Management — Patrice Roy’s practical guide to mastering object lifetime and memory organization in modern C++, with a strong focus on real-world constraints (real-time, embedded, games, desktop) and hands-on techniques like custom allocators/containers and allocation tuning for performance and predictability.
The Art of Writing Efficient Programs — Fedor Pikus’s deeply practical guide to performance engineering in modern C++: how to measure first, reason about where time actually goes (CPU, memory, cache), and then apply targeted optimizations without turning your codebase into a science experiment—covering profiling workflows, data locality, algorithmic trade-offs, concurrency pitfalls, and “mechanical sympathy” techniques that reliably move real-world latency/throughput.
Computer Architecture: A Quantitative Approach (6th Edition) — Classic reference on CPU and system design, using real quantitative data to explore pipelining, caches, memory hierarchies, and parallelism.
Computer Systems: A Programmer's Perspective (2nd Edition) — Bridges the gap between hardware, compilers, and OSes, explaining how data representation, the memory hierarchy, linking, and concurrency affect real programs.
Operating Systems: Three Easy Pieces — Concept-driven OS textbook organized around virtualization, concurrency, and persistence, with approachable explanations and hands-on projects.
Performance Analysis and Tuning on Modern CPUs (2nd Edition) — Practical, microarchitecture-focused guide to understanding CPU performance, covering profiling, bottleneck analysis, and low-level optimization techniques across modern processors, with an emphasis on real-world workloads and measurement-driven tuning.
TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition) — Packet-level exploration of the TCP/IP stack, illustrating how protocols like IP, TCP, and UDP really behave on the wire with detailed traces and examples.
Computer Networks: A Systems Approach — A systems-oriented networking textbook that explains the Internet stack from links and switching up through routing, congestion control, and applications, with a strong focus on design principles, trade-offs, and real-world protocol behavior.
UNIX Network Programming, Volume 1: The Sockets Networking API (Stevens/Fenner/Rudoff) — The definitive deep dive into socket programming: how to build robust client/server systems with TCP/UDP, handle timeouts and partial reads/writes, use nonblocking and multiplexed I/O (select/poll and related patterns), and correctly apply socket options, name resolution, and advanced topics like multicast/daemonization—exactly the kind of “no hand-waving” reference that pays off when you’re chasing correctness and latency in real networked systems.
Concurrency in Action — Anthony Williams (2nd Edition) — The go-to guide for C++ concurrency primitives (threads, mutexes, atomics, futures) and patterns for writing correct, modern multithreaded C++ code.
High Performance Parallelism Pearls Volume One: Multicore and Many-core Programming Approaches — Collection of case studies on extracting performance from multicore CPUs and accelerators, covering practical parallelization techniques and real-world workloads.
Concurrency with Modern C++ — Modern C++11–20 treatment of concurrency and parallelism, including threads, tasks, futures, lock-free techniques, and higher-level patterns for scalable systems.
Trading Systems Developer Interview Guide — A focused collection of real-world trading-systems interview questions and answers, with heavy emphasis on low-latency engineering, C++ performance fundamentals (memory/layout, concurrency), market microstructure basics, and the practical system-design tradeoffs you’re expected to reason about in HFT-style roles.
High-Frequency Trading: A Practical Guide to Algorithmic Strategies and Trading Systems (2nd ed.) — A broad, pra
Selected from shared topics, language and repository description—not editorial ratings.
Parihar07 /
📚 Comprehensive C++ OOP interview preparation guide covering Constructors, Destructors, Access Modifiers, and System Design concepts with detailed examples and explanations.
amangupta143 /
Explore C++ programs covering Data Structures and Algorithms in this comprehensive repository. Feel free to explore the code snippets and adapt them to your own projects. 🚀🔍📚
som3a13 /
🖥️ Comprehensive Embedded Linux repository covering C++, image creation with Yocto, Qt integration, and Makefile methods for streamlined development. 💻🔧🛠️ Dive into C++ for embedded systems, build custom Linux images from scratch, leverage Qt for GUIs, and optimize projects with Makefiles. 🚀📚 Perfect for embedded developers, Linux enthusiasts
adityakumbhar17 /
A comprehensive collection of C programming theory notes 📚, covering concepts, explanations, and key topics 💡 for better understanding 💻.
Engr-Jalal-Saleem /
🚀 New Project Completed: Student Management System 📚 I'm excited to share my latest project—a comprehensive Student Management System built using C++! This project aims to streamline the process of managing student records in an educational setting.
muhammadIdhamMaarif /
🧠💼 Ultimate C++ Knapsack Solver! Solve all variants with exact, heuristic & metaheuristic algorithms 🚀🔥. Includes dynamic programming, greedy, branch-and-bound, simulated annealing & more 🎯📊. Perfect for research, benchmarking & learning 📚💡. Fast, comprehensive & ready to use! 🎉✨