Software development

I am an agile and pragmatic software engineer and technology consultant with a passion for driving innovation and excellence.

My role often transcends traditional boundaries, embodying the essence of an enabling team consultant, tech lead, architect, full stack developer, and QA.

Software development is a multifaceted discipline that has to integrate technology, social team dynamics, and business strategy. This makes software development a complex domain and many decisions are tradeoffs.

Technology

At the core of software development lies a robust set of technical practices encompassing programming, testing, debugging, and architectural design.

  • Clean code
  • Test-driven development (TDD)
  • Continuous integration and delivery (CI/CD)
  • Automated builds
  • Domain driven design (DDD)
  • Extreme programming (XP)
  • Shift security left with threat modeling
  • Object-functional programming
Team collaboration

The success of software projects often hinges on the dynamics within development teams. Agile methodologies promote iterative cycles of planning, prioritization, and execution, fostering a collaborative environment where communication and fast feedback is key.

  • Pair programming
  • Team topologies
  • Four key metrics ("Accelerate"/DORA)
Operations

A strong DevOps culture, which blends development and operational activities, enhances the efficiency and reliability of software by fostering closer collaboration and integration between teams.

  • The three ways of the DevOps handbook: flow, feedback, continuous learning
Architecture

A decentralized approach to architectural decision-making is important, to empower teams to make choices based on their specific contexts and challenges.

  • Evolutionary architecture
Business alignment

The strategic aspect of software development involves aligning projects with the organization's broader goals and objectives. The overarching aim is to ensure that software development efforts support the organization's direction and add value.

  • Fast feedback, e.g. sprint reviews
  • Enterprise Architecture
  • Lean thinking