Development Fundamentals
Overview
This skill covers the foundational knowledge every software developer should command — drawn from canonical published works and industry-proven practices. It spans from low-level algorithms through code craftsmanship to system-level architecture.
Knowledge Map
┌─────────────────────────────────────────────────────────┐
│ Architecture │
│ Microservices, Monoliths, DDD, Event-Driven, │
│ Hexagonal, Well-Architected Frameworks │
├─────────────────────────────────────────────────────────┤
│ Frontend │ Backend │
│ SPA, PWA, Micro-frontends, │ Data Modeling, API │
│ SSR, Islands Architecture │ Design, Caching, Auth │
├─────────────────────────────────────────────────────────┤
│ Integration Patterns │ Design Patterns │
│ EIP: Messaging, Routing, │ GoF: Creational, │
│ Transformation, Endpoints │ Structural, Behavioral │
├─────────────────────────────────────────────────────────┤
│ Algorithms & Data Structures │
│ Sorting, Searching, Graphs, DP, Combinatorial │
├─────────────────────────────────────────────────────────┤
│ Craftsmanship │
│ Clean Code, Clean Architecture, SOLID, 12-Factor, │
│ Refactoring, Boy Scout Rule │
└─────────────────────────────────────────────────────────┘
Canonical Works
| Book |
Author |
Covers |
| Design Patterns |
Gamma, Helm, Johnson, Vlissides (GoF) |
23 object-oriented patterns |
| Enterprise Integration Patterns |
Hohpe & Woolf |
Messaging, routing, transformation |
| The Art of Computer Programming |
Donald Knuth |
Algorithms, data structures, combinatorics |
| Clean Code |
Robert C. Martin |
Naming, functions, formatting, comments |
| Clean Architecture |
Robert C. Martin |
Dependency rule, boundaries, layers |
| Refactoring |
Martin Fowler |
Code smells, refactoring catalog |
| Domain-Driven Design |
Eric Evans |
Bounded contexts, aggregates, ubiquitous language |
| Building Microservices |
Sam Newman |
Service decomposition, communication, deployment |
| The Pragmatic Programmer |
Hunt & Thomas |
Career, approach, tools, pragmatic philosophy |
| The Twelve-Factor App |
Adam Wiggins (Heroku) |
Cloud-native application methodology |
| Release It! |
Michael Nygard |
Stability patterns, capacity, deployment |
| Fundamentals of Software Architecture |
Richards & Ford |
Architecture styles, characteristics, decisions |
Choosing the Right Pattern Category
| Problem |
Look In |
| Object creation complexity |
Design Patterns → Creational |
| Composing objects / adapting interfaces |
Design Patterns → Structural |
| Object communication / state management |
Design Patterns → Behavioral |
| Service-to-service messaging |
Integration Patterns |
| Algorithm selection / optimization |
Algorithms |
| Code readability and maintainability |
Craftsmanship |
| System decomposition and boundaries |
Architecture |
| Client-side application structure |
Frontend |
| Server-side data and API structure |
Backend |
Best Practices
- Learn patterns as a vocabulary, not a checklist — apply them when the problem calls for it, not preemptively.
- Start with the simplest architecture that works (monolith), evolve toward complexity (microservices) only when you have evidence you need it.
- Apply the Boy Scout Rule: leave code better than you found it, every time you touch it.
- Use SOLID principles as guardrails for daily decisions, not just for greenfield design.
- Prefer composition over inheritance — most GoF patterns are variations of this principle.
- Study algorithms for problem-solving intuition, not memorization — know when to reach for a graph algorithm vs. dynamic programming.
- Keep integration patterns in mind whenever systems need to communicate — messaging solves problems that synchronous calls create.
1---2name: dev3description: Use when working with fundamental software development knowledge — patterns, algorithms, architecture, and craftsmanship principles drawn from canonical published works. USE FOR: development fundamentals, pattern selection, architecture decisions, algorithm choice, code quality principles, choosing between architectural styles DO NOT USE FOR: specific pattern implementations (use sub-skills: design-patterns, integration-patterns, algorithms, etc.), testing strategy (use testing), infrastructure (use iac)4license: MIT5---67# Development Fundamentals89## Overview10This skill covers the foundational knowledge every software developer should command — drawn from canonical published works and industry-proven practices. It spans from low-level algorithms through code craftsmanship to system-level architecture.1112## Knowledge Map1314```15┌─────────────────────────────────────────────────────────┐16│ Architecture │17│ Microservices, Monoliths, DDD, Event-Driven, │18│ Hexagonal, Well-Architected Frameworks │19├─────────────────────────────────────────────────────────┤20│ Frontend │ Backend │21│ SPA, PWA, Micro-frontends, │ Data Modeling, API │22│ SSR, Islands Architecture │ Design, Caching, Auth │23├─────────────────────────────────────────────────────────┤24│ Integration Patterns │ Design Patterns │25│ EIP: Messaging, Routing, │ GoF: Creational, │26│ Transformation, Endpoints │ Structural, Behavioral │27├─────────────────────────────────────────────────────────┤28│ Algorithms & Data Structures │29│ Sorting, Searching, Graphs, DP, Combinatorial │30├─────────────────────────────────────────────────────────┤31│ Craftsmanship │32│ Clean Code, Clean Architecture, SOLID, 12-Factor, │33│ Refactoring, Boy Scout Rule │34└─────────────────────────────────────────────────────────┘35```3637## Canonical Works3839| Book | Author | Covers |40|------|--------|--------|41| *Design Patterns* | Gamma, Helm, Johnson, Vlissides (GoF) | 23 object-oriented patterns |42| *Enterprise Integration Patterns* | Hohpe & Woolf | Messaging, routing, transformation |43| *The Art of Computer Programming* | Donald Knuth | Algorithms, data structures, combinatorics |44| *Clean Code* | Robert C. Martin | Naming, functions, formatting, comments |45| *Clean Architecture* | Robert C. Martin | Dependency rule, boundaries, layers |46| *Refactoring* | Martin Fowler | Code smells, refactoring catalog |47| *Domain-Driven Design* | Eric Evans | Bounded contexts, aggregates, ubiquitous language |48| *Building Microservices* | Sam Newman | Service decomposition, communication, deployment |49| *The Pragmatic Programmer* | Hunt & Thomas | Career, approach, tools, pragmatic philosophy |50| *The Twelve-Factor App* | Adam Wiggins (Heroku) | Cloud-native application methodology |51| *Release It!* | Michael Nygard | Stability patterns, capacity, deployment |52| *Fundamentals of Software Architecture* | Richards & Ford | Architecture styles, characteristics, decisions |5354## Choosing the Right Pattern Category5556| Problem | Look In |57|---------|---------|58| Object creation complexity | Design Patterns → Creational |59| Composing objects / adapting interfaces | Design Patterns → Structural |60| Object communication / state management | Design Patterns → Behavioral |61| Service-to-service messaging | Integration Patterns |62| Algorithm selection / optimization | Algorithms |63| Code readability and maintainability | Craftsmanship |64| System decomposition and boundaries | Architecture |65| Client-side application structure | Frontend |66| Server-side data and API structure | Backend |6768## Best Practices69- Learn patterns as a vocabulary, not a checklist — apply them when the problem calls for it, not preemptively.70- Start with the simplest architecture that works (monolith), evolve toward complexity (microservices) only when you have evidence you need it.71- Apply the Boy Scout Rule: leave code better than you found it, every time you touch it.72- Use SOLID principles as guardrails for daily decisions, not just for greenfield design.73- Prefer composition over inheritance — most GoF patterns are variations of this principle.74- Study algorithms for problem-solving intuition, not memorization — know when to reach for a graph algorithm vs. dynamic programming.75- Keep integration patterns in mind whenever systems need to communicate — messaging solves problems that synchronous calls create.