Fundamentals of Software Usability
Understand why software usability matters: how learnability, efficiency, memorability, error prevention, and satisfaction create software that users can actually use effectively.
Understand why software usability matters: how learnability, efficiency, memorability, error prevention, and satisfaction create software that users can actually use effectively.
Software debugging fundamentals for developers: mental models, evidence-driven workflows, observability signals, and practical techniques for finding root causes fast.
Agile software development fundamentals: iterative development, collaboration, and responding to change. Build software that delivers value continuously.
Learn capacity planning fundamentals: how to predict resource needs, avoid over-provisioning, and scale systems efficiently. Essential guide for engineers and operations teams.
Software scalability fundamentals: how systems handle increased load, why scalability matters, and when to scale horizontally vs vertically.
End-to-end software performance fundamentals: latency, throughput, percentiles, bottlenecks, and measuring user-perceived speed without breaking reliability.
Software quality assurance fundamentals, why QA exists, how it differs from testing, and how teams build quality into how they work.
Retry storm: when retries multiply load and turn partial failures into outages. Learn how they happen, how to detect them, and how to prevent them.
Networking fundamentals for developers: packets, IP addressing, routing, TCP and UDP, DNS, TLS, and a practical troubleshooting mental model.
Why learn software fundamentals? They outlast frameworks and reduce pain. Build skills that pay off for your career and your users.
Software security fundamentals: threats, vulnerabilities, and defenses. Build systems that protect data and users from attacks.
Performance testing fundamentals: load testing, stress testing, and metrics. Build systems that handle real traffic and find bottlenecks before users.
Master software product development fundamentals: user research, MVP validation, feature development, iteration, and metrics. Build products that solve real problems.
Discover how the Law of Instrument explains why developers reach for familiar tools—especially GenAI—even when they're wrong for the job. Learn to recognize this cognitive bias and choose the right tool.
Understand reliability engineering fundamentals: how to define SLOs and error budgets, design reliable systems, balance reliability with innovation, and make data-driven decisions about system reliability.
Understand monitoring and observability fundamentals: how metrics, logs, and traces work together to help you understand system behavior, debug problems, and make better decisions.
Understand software metrics fundamentals: why they matter, how to pick high-signal, actionable measures, and build lean systems that improve decisions.
Master the core principles that guide effective software design. Learn why design matters, how to recognize good design patterns, and strategies for making design decisions that create maintainable, scalable systems. Essential reading for developers and technical leaders.
Master the core concepts that underpin all technical knowledge. Learn why fundamentals matter, how to identify them, and strategies for building lasting expertise that transcends trends and tools. Essential reading for developers and technical leaders.
Understanding backend engineering: what it is, why it matters, and how backend systems work. Essential explanations for developers who want to understand the server-side of software development.
Master the universal software concepts every developer needs to learn, from data structures to error handling. Discover the fundamentals that separate coders who build toy projects from those who create production-ready systems.
Essential principles from The Pragmatic Programmer that every developer should know, organized for quick reference and daily practice.
Master core software development fundamentals: decision-making, problem-solving, and building systems that work. Essential guide for better developers.
Learn how to define and document software capabilities effectively. Master the art of specifying system abilities that enable use cases and features. Includes templates and real-world examples.
Learn how to identify and document software use cases effectively. A comprehensive guide for product managers, software architects, engineers, and designers working together to build better software.
Master the art of specifying software features that deliver real value. Learn proven techniques for documenting features with templates and real-world examples from project management.
Master the key concepts of software development. Learn the crucial differences between capabilities, use cases, and features with real-world examples from project management.
Understanding software delivery, its key aspects, and why it matters in the modern tech landscape.
Learn GitHub to supercharge your development process. GitHub is the premier code management tool, and it keeps getting better.
Learning Elixir is fun! Let's learn Elixir to decide if it's worth your time investment.
Learn how to configure Visual Studio Code to open files with their default applications using custom tasks. Works on both macOS and Windows.