Answers to software engineering and interview questions, grouped by topic.
Neural network architectures, training dynamics and GPU execution.
Graph construction, layers, training loops and TensorBoard.
Tensors, autograd and the PyTorch training loop.
Tokenisation, embeddings, language models and text pipelines.
Image pipelines, detection and segmentation.
Model training, evaluation and the classical algorithm toolkit.
Pandas, NumPy and the analysis and visualisation stack.
Topics, consumer groups, stream processing and message queues.
Pods, services, Helm and cluster operations.
Images, volumes, Compose and container networking.
EC2, S3, Lambda, DynamoDB and cloud infrastructure.
Replication, consistency, microservices and scale.
SQL and NoSQL modelling, indexing and query performance.
Spark, Hadoop and batch processing at volume.
Pipelines, servers, observability and release mechanics.
HTTP, REST, sockets and service-to-service calls.
Authentication, authorisation, tokens and transport security.
Sorting, searching, recursion, graphs and dynamic programming.
Arrays, maps, trees, heaps and how to pick between them.
Big O, time and space trade-offs, and making code faster.
Number theory, combinatorics and computational geometry.
Classes, interfaces, inheritance and design patterns.
Threads, async/await, locks and parallel execution.
Language semantics, the standard library and packaging.
The JVM, collections, Spring and build tooling.
C# language features, LINQ, ASP.NET and the runtime.
The browser runtime, Node, and front-end frameworks.
Swift, Kotlin, the mobile UI toolkits and app lifecycle.
Pointers, memory, templates and the standard library.
Branching, rebasing, remotes and recovering from mistakes.
Unit tests, mocking and keeping a suite trustworthy.
Reading stack traces and tracking down the actual cause.