I have been developing software since 1998, alternating between roles as a contractor and employee. Over the past twenty years, I have primarily held positions as a lead developer, architect, and Scrum Master or Agile Coach.

I have been working in software development since 1998, alternating between roles as a consultant and permanent employee. Over the past fifteen years, I have primarily held positions as a lead developer, architect, and Scrum Master.

I have mainly worked in small to medium-sized companies, which has given me the opportunity to engage with the entire value stream, from product strategy and customer requirements to delivery, deployment, and operation. However, most of my experience lies in the development process itself, focusing on architecture, design, and programming.

As a developer, my expertise lies primarily in object-oriented system development with Java. I have a strong interest in code quality, particularly in terms of simple design and modular architecture. For me, it’s crucial that code is easy to maintain and that new functionality can be added incrementally with minimal impact on the rest of the system.

Ever since I encountered Extreme Programming (XP) in 1999, I have been working with agile software development and have developed a broad interest in the field. I have a particular passion for test-driven development and truly enjoy pair and mob programming. I have substantial experience introducing and working with agile methodologies such as Scrum and XP at the team level. Helping others learn and grow is a strong motivator for me.

In recent years, I have increasingly taken on roles as an architect, principal engineer, coach, and mentor in agile development, working in contexts that extend beyond individual development teams. For this broader perspective, I find the principles of Lean Software Development to be an excellent complement.

In the architect role, I focus on the entire lifecycle of a system and how architecture interacts with both the organization and its processes. A sustainable architecture does not only meet today’s requirements for performance, scalability, and similar concerns but also enables the gradual evolution of the system to handle new challenges over time.

I strive to engage development teams in architectural and design work. With measurable architectural characteristics for the system, it is possible to set clear requirements without micromanaging the solutions. The goal is to achieve an evolutionary architecture where incremental architectural changes are validated based on their impact on the system.

Past courses

All courses
Michael Göthe
Michael Göthe
Jennie Mårtensson
Jennie Mårtensson
Online In English
Jennie Mårtensson
Jennie Mårtensson
Fredrik Lindgren
Fredrik Lindgren
Remote In English
Jennie Mårtensson
Jennie Mårtensson
Fredrik Lindgren
Fredrik Lindgren
Remote In English