Competencies: Software Engineering > Fundamentals

Fundamentals

Body of Knowledge

Topic Description Relevance Career Tracks

Dependency Injection

Design pattern for decoupling components by injecting dependencies rather than hardcoding them. Enables testability and modularity.

High

Backend, Architecture

Graph Data Structures

Nodes, edges, adjacency representations, and traversal algorithms. Foundation for knowledge graphs, network analysis, and relationship modeling.

Medium

Backend, Data, Architecture

Error Handling Patterns

Strategies for exception hierarchies, error propagation, Result types, and recovery mechanisms. Critical for robust application design.

High

Backend, Architecture

Data Structures

Arrays, linked lists, trees, heaps, hash tables, graphs; selection and implementation

Critical

Backend Developer, Software Engineer

Algorithms

Sorting, searching, dynamic programming, recursion, complexity analysis

Critical

Backend Developer, Software Engineer

Object-Oriented Programming

Encapsulation, inheritance, polymorphism, composition over inheritance

High

Backend Developer, Software Engineer

Functional Programming

Pure functions, immutability, higher-order functions, map/filter/reduce

High

Backend Developer, Software Engineer

Concurrency Concepts

Threads, processes, locks, deadlocks, race conditions, thread safety

Critical

Backend Developer, Systems Developer

Memory Management

Stack vs heap, garbage collection, memory leaks, reference counting

High

Systems Developer, Backend Developer

Code Organization

Modules, packages, namespaces, separation of concerns, cohesion/coupling

High

All Engineering

Personal Status

Topic Level Evidence Active Projects Gaps

Dependency Injection

Advanced

FastAPI Depends pattern — replaced module-level singletons with injectable dependencies; testable, mockable architecture

domus-api

No DI containers (injector, python-inject), limited to FastAPI’s built-in DI

Graph Data Structures

Intermediate

association-engine — node/edge model, adjacency representation, traversal algorithms, path finding; applied graph theory to knowledge management

Association Engine

No NetworkX at scale, no graph databases (Neo4j), no advanced algorithms (PageRank, community detection)

Error Handling Patterns

Intermediate

Custom exception hierarchy in domus-api; FastAPI exception handlers; Result-type patterns from Rust influence

domus-api

No structured logging with error correlation, no circuit breaker patterns