Boris Stumm Consulting

Dr.-Ing. Boris Stumm, Dipl.-Inf.

About me

I studied applied computer science at the TU Kaiserslautern from 1998 to 2003. After that I worked as research associate in the group of Prof. Dr. Deßloch, "Heterogeneous Information Systems" After studies and research I started as IT consultant in 2009.

My main areas of experience are insurance, review and rating platforms, webshops and online marketplaces.

I am computer scientist and software developer by heart and enjoy challenges. Building good software while considering both technical and economic aspects usually leads to tradeoffs. For me, it is most important to not impede future possibilities due to these tradeoffs.

What I have to offer

Scala und Java

I started programming with Java some 22 ago. Scala I am using for 8 now. Nowadays I prefer programming in Scala, and I see that more and more companies are using Scala productively.

Database systems

My studies had a strong focus on database systems. I have experience in traditional relational DBMS as well as newer systems like MongoDB, Cassandra or ElasticSearch.

When working with data it is very important to know the data and what to do with it. Neither SQL nor NoSQL is the answer to all questions, and wrong decisions can lead to enourmous costs later on, e.g. for software maintenance.

Microservices

In the last years, microservices attracted more and more attention. Some of my customers are using microservices, and I believe they can make development easier in some cases. But, compared to monoliths, they also increase complexity in some areas. The right solution in the continuum between monoliths and microservices is highly dependent on the given circumstances like teams, existing services, corporate philosophy etc.

Continuous Integration/Deployment

Continuous building, integrating and testing of software is a basic part of software development. Since the start of my conuslting career I am using CI systems in every project. A key characteristic for a good CI setup is speed. The faster developers get feedback, the less they are disturbed in their "flow" and efficiency will increase.

Continuous Deployment goes far beyond Continuous Integration. Not only are applications permanently built and tested, but they are deployed into production several times a day. That may sound hard to believe, and there are domains where an Continuous Deployment ist not possible. Other domains can profit a lot: new features and bugfixes go live a lot faster. Software quality stays high, because quality assurance is done (and has to be done) continually.

Web applications

Most of my projects were about web applications, me usually being a backend guy. I worked with various frameworks: Spring and JEE, Struts, Servlets/JSP, JSF, Wicket and Vaadin. Nowadays Play is the framework of my choice for developing web applications.

Agile software development

I believe in the Agile Manifest. Being agile in software development requires a high degree of motivation and discipline for everyone involved. It means being in a permanent process of improvement that everyone has to contribute to. Agile projects often fail because these requirements are not met. But when they are, agile development can achieve a lot more than conventional methods, because most important things are always done first, and everyone assumes responsibilities.