Picture of me

About Me

My core expertise from over 15 years working in development and managing roles consist of

  • agile methodologies and project management
  • leading cross-functional software development teams
  • software architecture
  • software development with functional and object-oriented programming languages.

The main benefits I provide come from

  • closing the communication gaps betweens developers, buisness and management
  • finding working solutions to complex problems
  • delivering projects reliably with high quality.

For over fifteen years I have been responsible for ensuring success of software development efforts, either as a Software Architect, Developer, Scrum Master, Team Lead or Project Manager. Coming from an academic background in Computer Science and Computational Linguistics, I have been working on healthcare information systems, content management systems, eCommerce systems, intelligent search and natural language processing projects, usually from design to running a system in production. I love working in teams which take responsibility from requirements to flawless operation.

Agile experience and Leadership know how

As a Scrum Master or Team Manager, I try to help my team by taking care of organizational roadblocks but get out of the way otherwise, regardless of whether the team consists mostly of internal developers or outsourced external suppliers. I also often support the business with formulating a project vision, defining requirements and setting priorities.

I have significant experierence working in international distributed setups. Working on interesting topics on projects that make a difference is what I want to do, and if this involves working with people and taking responsibility, all the better.

Agile

Scrum Master

I first learned about agile in 2007 with Extreme Programming (XP) and have so far not found a better way of working. I have been serving as the Scrum Master for various teams since 2009. I know how to run retrospectives that will help teams to uncover better ways of working and how to use very low-tech solutions to visualize progress. Multiple times I introduced teams to Scrum and to the ideas in the agile manifesto. I have experience in multi-team settings and have applied ideas of SAFe (the Scaled Agile Framework) and Less (Large Scale Scrum) to improve the collaboration.

I've written several articles on agile topics in my blog.

Leadership

Team Leader / Manager

For more than five years I have been the manager for cross-functional international teams consisting of developers, testers, product owners and scrum masters. I know how to help people grow, how to have tough conversations when necessary, how to make teams successful and how to identify good candidates for a team.

Project management

Since 2002 I am used to manage projects, from defining project vision and requirements engineering over work breakdown to cost controlling and status reporting. I am used to work both with internal teams and external suppliers, including work on contracts.

Software Architecture and Development Knowhow

In my experience, the difference between programming and software engineering is that the former is about typing away to get the problem solved and the latter is about understanding the problem first and then thinking about how to solve the problem within the given constraints. My goal is to find simple solutions (not necessarily easy solutions), i.e. solutions that are not complex which benefits long term maintainability. Thinking a little about the design of a piece of code usually already outclasses jumping into coding, without requiring the big design upfront.

Architecture

Agile Software Architecture

I am a Certified Professional for Software Architecture (Foundation Level), but more relevant is the personal experience gained from working on the architecture of systems in practice. I take an agile approach to define the architecture of a system with the responsible team and make sure that quality aspects such as scalability, security and maintainability get as much attention as the functional requirements.

Low-effort ways to document decisions and designs like Architecture Decision Records, Arc42 or the C4 model are in my experience more useful than highly formalized approaches to documentation.

Clean Code

The Clean Code and Software Craftmanship movements with their focus on code quality and maintainability are important to me. Practising test-driven development, pair programming and code reviews are good ways to align the developers in a team.

Programs must be written for people to read, and only incidentally for machines to execute.

-- Harold Abelson, Structure and Interpretation of Computer Programs

Languages

Functional Programming

I prefer working with functional, dynamically typed programming languages like Clojure and Common Lisp. The power of a Read-Eval-Print-Loop (REPL) allows quick and easy experiments to drive solutions without having to wait for the dreaded compile-run-debug cycle to complete. Immutability prevents a big pile of problems that plague most systems today.

Object-Oriented Programming

I started working with OOP in the early nineties. I have working experience in Python, Java and Javascript. Although I currently don't use any of them on a daily basis, I'm open to develop with either language.

Otherwise

I've seen and worked with many other languages, too, some of which were pleasant to work with (e.g. Perl or Ruby), some not so much. I am not keen on working with PHP, Basic, C++ or C#.

Languages

Clojure, ClojureScript
Status: current main programming language, good knowledge
Type: web applications, SPA, REST APIs, text classification
Python
Status: minor recent use, fair knowledge
Type: web applications, command line applications
Javascript, TypeScript
Status: no recent use, basic knowledge
Type: web applications, SPA
Java
Status: no recent use, five years experience, fair knowledge
Type: web applications, web services (SOAP)

Tools

SQL databases
Status: continuous use, fair knowledge
Implementations: MS SQL Server, Postgres, MariaDB / MySQL, Sqlite, H2
NoSQL databases
Status: no recent use, basic knowledge
Implementations: MongoDB, ZODB
Container
Status: recent use, basic knowledge
Implementations: Docker, Docker Compose, Podman
Version Control
Status: continuous use, good knowledge
Implementations: git, Mercurial, Subversion, TFS / TFVC
Project Management tools
Status: continuous use, good knowledge
Implementations: Jira, Trello, TFS, ALM, MS Project

Get In Touch.

Contact Details

I prefer being contacted by email, but feel free to follow me on Mastodon.

Dr. Holger Schauer
Picture with my email
Picture with my contact detail