# Codemia > Codemia is an interview preparation platform for software and machine learning engineers. It covers system design, machine learning system design, object oriented design, agentic AI design, and data structures and algorithms, with practice problems, written editorials, company specific interview guides, and an engineering knowledge base. Practice problems open in an interactive workspace and each one has a written editorial. A free account unlocks a subset of problems; the remainder are part of a paid membership. Everything linked below is public. ## Start here - [Codemia](https://codemia.io): What the platform covers, who it is for, and how practice works. - [System design problems](https://codemia.io/system-design): Catalogue of system design interview problems, each with an editorial solution. - [Machine learning system design](https://codemia.io/ml-system-design): ML system design problems: recommendation, ranking, search and fraud systems. - [Object oriented design](https://codemia.io/object-oriented-design): Low level and object oriented design problems with class level solutions. - [Agentic AI design](https://codemia.io/agentic-ai): Design problems for LLM agent systems: tool use, planning, memory and evaluation. - [DSA visualizer](https://codemia.io/dsa): Interactive step by step visualizations for algorithm problems, with code in seven languages. - [Interview guides](https://codemia.io/guides): Company by company breakdowns of the interview process, rounds and leveling. - [Knowledge hub](https://codemia.io/knowledge-hub): Searchable reference pages on engineering and machine learning topics. - [Pricing](https://codemia.io/pricing): Membership tiers and what each one unlocks. ## Knowledge hub topics - [Debugging & Errors](https://codemia.io/knowledge-hub/topic/debugging): Reading stack traces and tracking down the actual cause. (5,737 pages) - [Machine Learning](https://codemia.io/knowledge-hub/topic/machine-learning): Model training, evaluation and the classical algorithm toolkit. (5,305 pages) - [Python](https://codemia.io/knowledge-hub/topic/python): Language semantics, the standard library and packaging. (5,051 pages) - [iOS & Android](https://codemia.io/knowledge-hub/topic/mobile): Swift, Kotlin, the mobile UI toolkits and app lifecycle. (4,590 pages) - [Algorithms](https://codemia.io/knowledge-hub/topic/algorithms): Sorting, searching, recursion, graphs and dynamic programming. (4,415 pages) - [Java](https://codemia.io/knowledge-hub/topic/java): The JVM, collections, Spring and build tooling. (4,405 pages) - [Data Structures](https://codemia.io/knowledge-hub/topic/data-structures): Arrays, maps, trees, heaps and how to pick between them. (3,852 pages) - [TensorFlow & Keras](https://codemia.io/knowledge-hub/topic/tensorflow): Graph construction, layers, training loops and TensorBoard. (3,711 pages) - [Databases](https://codemia.io/knowledge-hub/topic/databases): SQL and NoSQL modelling, indexing and query performance. (3,357 pages) - [Complexity & Performance](https://codemia.io/knowledge-hub/topic/complexity): Big O, time and space trade-offs, and making code faster. (3,234 pages) - [Kafka & Streaming](https://codemia.io/knowledge-hub/topic/kafka): Topics, consumer groups, stream processing and message queues. (3,079 pages) - [Concurrency](https://codemia.io/knowledge-hub/topic/concurrency): Threads, async/await, locks and parallel execution. (2,858 pages) - [C# & .NET](https://codemia.io/knowledge-hub/topic/dotnet): C# language features, LINQ, ASP.NET and the runtime. (2,818 pages) - [AWS & Cloud](https://codemia.io/knowledge-hub/topic/aws): EC2, S3, Lambda, DynamoDB and cloud infrastructure. (2,446 pages) - [Deep Learning](https://codemia.io/knowledge-hub/topic/deep-learning): Neural network architectures, training dynamics and GPU execution. (2,104 pages) - [Data Science](https://codemia.io/knowledge-hub/topic/data-science): Pandas, NumPy and the analysis and visualisation stack. (2,043 pages) - [DevOps & Deployment](https://codemia.io/knowledge-hub/topic/devops): Pipelines, servers, observability and release mechanics. (1,968 pages) - [Git & Version Control](https://codemia.io/knowledge-hub/topic/git): Branching, rebasing, remotes and recovering from mistakes. (1,828 pages) - [Kubernetes](https://codemia.io/knowledge-hub/topic/kubernetes): Pods, services, Helm and cluster operations. (1,766 pages) - [Distributed Systems](https://codemia.io/knowledge-hub/topic/distributed-systems): Replication, consistency, microservices and scale. (1,755 pages) - [Networking & APIs](https://codemia.io/knowledge-hub/topic/networking): HTTP, REST, sockets and service-to-service calls. (1,740 pages) - [JavaScript & Web](https://codemia.io/knowledge-hub/topic/javascript): The browser runtime, Node, and front-end frameworks. (1,479 pages) - [Docker & Containers](https://codemia.io/knowledge-hub/topic/docker): Images, volumes, Compose and container networking. (1,336 pages) - [Math for Programmers](https://codemia.io/knowledge-hub/topic/math): Number theory, combinatorics and computational geometry. (1,327 pages) - [Security & Auth](https://codemia.io/knowledge-hub/topic/security): Authentication, authorisation, tokens and transport security. (1,061 pages) - [Testing](https://codemia.io/knowledge-hub/topic/testing): Unit tests, mocking and keeping a suite trustworthy. (624 pages) - [Computer Vision](https://codemia.io/knowledge-hub/topic/computer-vision): Image pipelines, detection and segmentation. (548 pages) - [C & C++](https://codemia.io/knowledge-hub/topic/cpp): Pointers, memory, templates and the standard library. (516 pages) - [Big Data](https://codemia.io/knowledge-hub/topic/big-data): Spark, Hadoop and batch processing at volume. (495 pages) - [Natural Language Processing](https://codemia.io/knowledge-hub/topic/nlp): Tokenisation, embeddings, language models and text pipelines. (485 pages) - [Object-Oriented Design](https://codemia.io/knowledge-hub/topic/object-oriented-design): Classes, interfaces, inheritance and design patterns. (312 pages) - [PyTorch](https://codemia.io/knowledge-hub/topic/pytorch): Tensors, autograd and the PyTorch training loop. (192 pages) ## Courses - [DSA Fundamentals](https://codemia.io/courses/dsa_fundamentals): Master algorithmic patterns and data structures through hands-on LeetCode-style problems - from arrays and hashing to dynamic programming and advanced graphs. - [Introduction to Agentic AI](https://codemia.io/courses/introduction_to_agentic_ai): Understand how AI agents work, from LLM foundations to production-ready agent architectures. - [OOD Fundamentals](https://codemia.io/courses/ood_fundamentals): Master object-oriented design from first principles, SOLID, design patterns, and classic interview problems with hands-on coding. - [System Design Fundamentals](https://codemia.io/courses/system_design_fundamentals): Build a strong foundation in designing scalable, reliable distributed systems. - [Tackling System Design Interview Problems](https://codemia.io/courses/tackling_system_design_interview_problems): A short course that equips you with the skills to approach system design interviews methodically. ## Optional - [Blog](https://codemia.io/blog): Long form articles on system design and interview preparation. - [Archive](https://codemia.io/archive): Older posts and notes, kept for reference. - [Community](https://codemia.io/community): Questions, interview experiences and discussion from members.