My name is Andreas Schwarzkopf and i am a professional software developer located in the Rhine-Main metropolitan area in germany.
I live in Hanau and regularly commute to Frankfurt am Main, where i currently work for ioki
on a thriving, sustainable and innovative mobility project. I also run a business, where i develop the cloud based multitenancy web
app ChurchCurator, a collaboration and management software
for volunteers and churches. Because of limited capacity i currently do not offer development services for customers.
However i still assess projects, give architectural consultancy services and coach teams and project managers. Finally i usually mentor one or two developers or young professionals.
I am truly excited about my profession; i think the IT world is the most awesome to work in.
From a technological point of view i am a Full-Stack-Web-Application-Engineer. I focus on software architecture, scaling,
algorithms and a sound codebase as the foundation of a real world product.
My current toolset mostly revolves around Ruby on Rails backed by a PostgreSQL database. I usually find myself more on the backend side and i like the algorithmic parts best. I've fallen in love with PostgreSQL over the last years and i generally admire the power of databases. Speed, scaling, databases, C extensions, stored procedures - this stuff keeps thrilling me. But there's more about software that makes me love my trade.
There's architecture, which involves topics from design patterns to IT infrastructure, from composition to orchestration, from theoretical requirement analysis back to hands on development. And then there is the development process itself, which is a real big thing: On one hand it is about working in a team with great people following best practices and on the other hand it is about your personal development and your ability to solve problems. While the team always plays an important role, you still often depend on yourself and your skills. It is all about self organization, endurance, the ability to work diligently on a topic, understanding your tools as well as the problem domain, making sound and sustainable decisions, breaking down problems and ultimately it is about finding feasible solutions.
It is about making all the external and internal conditions fit - a great team, with an agile attitude, a visionary leader, the best tools money can buy, self discipline, the hunger and skillset to get the job done. When everything fits together, the rewarding result is a great software product.
During the late 90s i gradually became a solid programmer: I did all types of interpreted and compiled Basic dialects up to Visual Basic, worked with Assembler, with C and from Pascal to Delphi. At the age of 17 i finally wrote a two component client/server freight planning software for a logistic company in Delphi - and i felt satisfied when this software was actually used by real people. I learned what it felt like to "ship software" and decided to start a solid IT career.
After highschool i started studying computer science at the university of Darmstadt.
My studies took place from 2003 until 2010. I added Java to my toolbox, but most
working hours were spent with PHP 3 to 5.
I developed something really cool, which did not have a name back then. I used it to edit content of webpages dynamically. I worked really hard on it for over 2 years. When Typo and Wordpress flooded the marked i learned that such a thing was actually called a CMS and i recognized that Wikipedia will never list me as the inventor. But i can cope with that as i still value the time i worked on this project and for myself i consider this to be a true invention - i was just a bit too late. It was then when i realized that my coding skills had to become better and it was then when i learned about things like software patterns.
During the main study period i focussed on three things:
Another thing i learned in those days was the fact that learning a language is not as
hard as learning frameworks. I was skilled in C++ and in Delphi but it took me weeks
to figure out how OpenGL worked. There were bindings for C++ and Delphi but the
framework took way more time to understand and explore.
And there was another dimension to writing purposeful software: Writing a game engine involved some serious math. I realized that for real world problems the language and the frameworks are the tools, but it can sometimes be much harder to truly understand the problem domain. Granted, most of the times you need only the basics of your skillset. But writing outstanding software is more than plugging preexisting components together. At some point you need to solve something on your own.
I have a very special opinion on what a senior developer is and in addition to all the common aspects i have a strong emphasize on the ability to create something truly new for your problem domain. So i learned that many skilled programmers called themself senior developer, but some were more equal than others.
I also worked two years for Lexmark Germany during my studies. All these experiences
led me into the direction of pure software development and contributed to my interest
in algorithms, data structures, complexity analysis and filled my mathematical toolbox.
At the same time i had gained insight in academic, governmental and enterprise working
At the end of 2010 i left university and joined flinc, a small, visionary start up developing a ride sharing platform. I learned Ruby and became a seasoned Ruby on Rails programmer. During the next years i had the privilege to work with great people.
My current journey in software development is not centered around languages or frameworks anymore.
Learning a language is a matter of hours to days; likewise Frameworks a matter of weeks up to months.
Also, the problem domain as well is not my primary focus: I have worked through some tough domains already.
My personal focus is on architecture and the actual development process.
It is centered around the question what it actually needs to get a product finished with as less dependencies as possible.
This is why i - over 20 years later - still work hands on developing software. It's just fascinating for me when creativity, knowledge, will and time are poured in a project and working software emerges.