Ingo Schramm

Software Craftsman

About Me

This is about my work as a software craftsman. People are multidimensional, and there are other aspects of my life of course. We have a job, we have a profession, we have a family, we have a passion, we have talents, interests and more. All these are not multiple identities, just different aspects of the same person. Now, this is about my professional life.

I am in contact with software development for about twentyfive years now. The way from being fascinated over trying something to doing it passionate and eventually professional was long and not straightforward. For more than fifteen years I make my money with software in the Internet business. As a freelancer and vendor I was working for a number of clients, a big German pharmaceutical enterprise for example. The last ten years I am working as an employee for a number of companies. Germany's at the time by far biggest social network StudiVZ was one of them. At the time of this writing, I'm working for CeleraOne, where I was one of the first employees and supported the growth of the company to a market leader in its field.

Over the years I was in contact with a number of programming languages and technologies. Before I was programming software for the Internet I used Pascal and C, first on Windows and later on Linux. My first Internet software was wirtten in Perl, then I switched to PHP. In the late 90s--and now and then later--I came into contact with Java. Also, I did some minor tasks wih C#/.NET some time after the millenium change. Later I also came in contact with Erlang and was immediately attracted by both the functional programming paradigm and the so called concurrency oriented programming, the actor model. Both I also found in Scala/Akka. Certain projects I implemented with Go, and I loved the lean and productive design of this ecosystem as well. About eight years ago I finally switched to C++, which is the language I use every day now. Here I favor the more recent standards like C++11 and later.

By that time I have years of factual experience with highly available backend applications under heavy load. I deal with multi tier and distributed applications, in-memory clusters, parallel computing, huge graphs, big data, and near real time problems. Since I never was at college I had to learn the theoretical background of computer science myself. I soon realized the worth of Kurt Lewin's quote, there is nothing more practical than a good theory. So I am always interested in reading about algorithm theory, software and system architecture and all the related topics.