I am a PHP architect with almost 16 years of professional experience.
That is actually the first thing I would like to tell you about me. The
second thing is, that I am a Zend Certified PHP Engineer (http://www.zend.com/en/yellow-pages/ZEND025669). But this wouldn't be a story about me, only a few facts about my
experience (for that visit the Experience section).
So make yourself comfortable
cause it won't be short :)
I was born 1979 in a small city of Bogatynia, Poland. Since my 8th birthday I'm trying to calm these beasts called computers with different programming languages.
First, it was a Commodore 64 with its poor BASIC, later extended to SIMON'S BASIC, with extraordinary possibilities to
create computed graphics :) Next in the row stood assembler/machine code, Logo and Oxford Pascal C64.
The year 1995 was the end of the 8-bit programming, as I bought my Amiga 1200. This was the computer I remember with a tear.
That was the machine, where I started to program in high level languages like Amiga E, C/C++ ( e.g. I even compiled programs with GCC during my studies, what my teacher didn't like, as he could not compile them on Borland C++ :D )
or BCPL (to learn some programs written for older machines).
Of course I tried also to assemble some code with Motorola 68020+ (then 68060), but jumping over the registers with move.x was not, what the tigers liked the most :)
The Amiga allowed me to enter to the (than) not so good known (at last in Poland) world of computer networks. First were BBS, where sometimes I woke up the people with my call :), and than
the Internet (since 1996). And I felt in love with it. I wanted to be one of these mythical people called "webmasters", so in 1997, as the HTML 3.2
showed up I made (perhaps better to say - committed) my first website!
The world of HTML became my passion, I wanted more and more. I read all articles I could find about it, and tried to
made my code so close to the standards as possible (especially as the other people used Frontpage «sorry for cursing :D»).
an Apple Macintosh emulator and then Netscape Navigator and Internet Explorer on it (these browsers were available for
a 68k Mac, but not for 68k Amiga). With the introducing of CSS, Netscape was not a competitor then and my browser to test
In the meantime I began to study information technology in Germany at the Hochschule Zittau/Görlitz (University of Applied Sciences).
As my Amiga wasn't already good for many projects in Java or C++, I was forced to buy a PC. But I'm still a silent Amiga fan,
even when it's connected with use of an emulator with AmigaOS 4.1 :)
The year 2000 was also the one, where I started my "career" as a web master. It was a small company - Poleninvest.de (they wanted to merchandise some real estates in Poland), where I created a web site
The purchase of a Windows-machine gave me the possibility to learn the programming language, which I'm using the most - PHP.
First (until 2003) did I small test projects on the local server with PHP 4.0, HTML, JS and CSS, where I learned, how to write the code :) The year 2003 was a breakthrough - as
I started to program a real PHP application in a real company. top ↑
This company was VAD GmbH in Dresden, where I spend 100 days during my practice semester (on my university of technology, the sixth semester was mentioned for a science project
in a company or at uni). My project was called "Catalog of electronic elements for the developing of high frequencies and radio measuring devices".
After my practice semester I thought, why shouldn't I use my fresh knowledge and earn some money. I had a summer break, the uni started in October,
and I could work for 90 days in year (Poland wasn't yet in the EU). I found a job in a daughter-company of AMD - AMTC (Advanced Mask Technology Center) in Dresden. More: here
I worked there over the summer break and then as a freelancer during the next semester. I learned a lot about a team work and how to lead
other developers - as I'd got two other students as help. As the company used the Internet Explorer - my web applications had to be compatible only with this browser,
different visual experience in other browsers. The box model was very cool, when I added to an element e.g. 20px of a margin size, IE gave me 40! :)
The months have passed and I was near to the end of my studies (year 2004), so I decided to use my 90 days of allowed work and asked to
extend my web shop in VAD GmbH. They agreed and I worked there for the next 4 months. I learned more about connections between PHP and the system
software, using many build-in system commands and programs (like Taskjuggler) using PHP as the configuration generator for them. The first back end job :) top ↑
After my studies (end of 2004), I wanted go back to Poland, with a promise, if it would't be good, in five year I'd go back to Germany. I hadn't a possibility to
have a job in this area I wanted - web development, so I had to move to a bigger city. My choice was Wroclaw, ca. 200 km from my home. There I found my first job as
a web developer in a small web agency. More: eZ Systems) and had good time together.
I worked already with PHP 4.3 and we couldn't go to PHP 4.4, as the eZ software was based on references, and PHP 4.4 had another reference handling. It was really a problem,
as I had to install the software on the customer's server, and there was 4.4 installed. But I was already a developer, so I wrote some extension of the system, that allowed us
to use the standard software on newer PHP versions. Unfortunately after ca. a year (2006), the firm did bankrupt, and we lost our jobs. It was time for the next chapter of my professional life.
During the 2006 I went from agency to agency (it was a bad year for web development in Poland). I built a website for a model agency with eZ publish, than in various projects for Vorortseiten.de
(and their Polish department Inetdesign.pl) with PHP, MySQL, CodeIgniter, HTML, CSS and jQuery. More about: here. So went the year 2006 to its end...
But then I found a job where I worked, until I left Poland and moved to Germany again - Ciao!. This job - as software developer, then a software development engineer - was
the best school of programming I could get. From a simple web developer I grown up to a full stack developer in web technologies. I learned the OOP and OOD with PHP5,
how to write efficient code, how to automatically test the software, how to release the software and later to maintain it. PHP or the browser langagues were not the last resort
what I could learn - they were the beginning. So I learned what software development life cycle means. I learned how to configure Apache, MySQL, install extra extensions to PHP, even how to
write own extensions and libraries. I lerned to using Sybase's stored procedures or what I can do wrong with a bad reverse engineering of a productive database systems. Or what
happens if I fetch 20000 products with a stored procedure that did 27 database calls pro product... With one word - I started to be a true software engineer.
In 2009 Ciao! was taken over by Microsoft, and I was a part of a big developer family (ca. 150000). My team became a part of Bing Integration and
we were encouraged to learn C# and .NET to merge the data from the Ciao systems with the Microsoft shopping. As we hadn't much time, I found a temporary solution for the integration -
I installed the Phalanger - a piece of software that allowed to use PHP as a CLI language for .NET. With small changes we could convert the PHP classes into DLLs, and
use them in C# components, until they were rewritten. One of my tasks was e.g. to reprogram the Microsoft Toolbar to use shopping data from Ciao. And as I last see the toolbar,
my code is still there :) More about Ciao!/Microsoft projects: heretop ↑
Five years have passed as I promised to go back to Germany. In the meanwhile I married, and my wife (also a software developer - but in 4GL languages) also wanted to go there.
I started to find a good job. And I'd got answers from 3 companies - Crytek in Frankfurt, Unister in Dresden and KIT Digital in Cologne. As the last company gave me
the best conditions - and I didn't have my preferences yet - I started to work there in December 2010 as a senior software developer. The clue of my job laid in further development, refactoring
and writing of new functionality for the existing system based on PHP5, Oracle, MySQL, Zend Framework and Doctrine. The system did steer hardware encoders and decoders and analysed
their input/output to provide a streaming functionality for video playback on web sites ( info also here). It was really good to work again in an international company,
with colegues from different countries. The software was so popular, that even a service of United Nations organization used the technology we provided.
But than happened something unexpected - the CEO (and founder in one person) has left the company. The stocks (as the company was noted on NASDAQ) were fallen from
$14 to $0.80 per stock, and the capital collapsed. It was time for a new job ...
That I found in the city, where I currently live - Bonn. It was a small limited liability company, which mainly wrote the software for Deutsche Telekom
(the biggest telecommunication company in Germany). Since middle of 2012 I started to work here as a senior software developer. I should be responsible for
extending the software for processing exceptions (where "exceptions" were the errors/customer actions/failures at Telekom, not the programming exceptions).
But my manager could see a potential in me, and I started to work on projects, that needed more, as the knowlegde of web technologies and PHP. The first project was to
build a software to autocomplete diverse company documents in DOCX format with data from the customer management system. As the PHPWord library (PHPWord 0.6.2-1 Beta) was not suitable for
this project - I had to write my own implementation. It made really fun, to learn how the format DOCX is built of, and to recognize, that this is simple
ZIP archive with XML documents in it :) Since then, the solution was easy - I put place holders in the documents, which should be replaced, and then I replaced the XML
with PHP and created a new DOCX file. The second bigger project was to create a image generator for previews of the first page of different types of documents. As the
open source solutions couldn't help, I found the Aspose libraries, which allowed to generate images from the Office documents pages. As PHP could not be used with, my
choice was C#/.NET as these were known to me, and Aspose has support for this combination. So I created a console executable, which took the path to the document and saved the
preview as a PNG image in the CDN (the last version supported all Office, all Open/Libre Office document, Sharepoint and standard websites «even with authentication») .
The third significant project was to create a software for the Hemophilic Center in Bonn, where the patients could enter their problems with the sickness. It should be prepared as a Windows
On the beginning of 2014 the CEO decided to move the company outside Bonn. And I had to search for another job...
Which I find in Bonn, very near to my home. The company sells the own written software called Elaine - and its area of occupation is the e-mail marketing. I, as a part of the project development team,
was responsible for branding the software for the customer needs. After two months, as I had learn Elaine enough, I started to write a new import/export system (named by me as DataStream) for the customer data.
The system was so intelligent, that for an import of data or an export of raw data (views, clicks, bounces, etc.) it needed only an INI-file, where the configuration was stored.
This made the data flow so fast, that if the writting of a new import/export took e.g. 2 days in the old software, the developer could create it (with my solution) in
1 to 2 hours! Two months later I was already an expert in input/output subjects, and even the developers, that worked for the company for years, came to me to ask,
how they should do this or that. I became a (de facto) software team leader and 2nd in command in the project development team with 5 PHP developers. And I did work
so for almost two years. As the new management came, and my conditions were changed - that was too much for me - and I left the company. I'm a such person, that stays for
the agreements. If someone makes an agreement with me, and I know why it was done - I can live with it - I'll adapt myself. But if someone tries to do something behind my back,
and sets the conditions as done without consulting them with me - especially, when they are worse - so I'll say good bye to a such person. More about the job here
Actually I'm working in a startup, building the back end architecture of the Speakster mobile app ( the page is in German, but the app is German or English).
The main feature of the app is to create a social network with voice messages, like Instagram do it with pictures. So, if you want, you can take a look :) It is available for iOS
For the back end of the app I did choose PHP 7 (I love it, especially the null coalescing operator and simple types hints, and I plan to upgrade it to 7.1 in the 3rd week of February 2017), MariaDB (more stable for many requests as MySQL),
nginx as webserver (lighter than Apache), Lumen as the micro services software (as it could process more requests/s than Slim), and ElasticSearch as the search engine (as it
is easier to handle as SOLR :). All of this works on (also configured by me) EC2 and RDS instances of Amazon Web Services. I plan to upgrade the ElasticSearch 2.4 to 5.1, as it supports search_after feature, and I can
build a reliable pagination (the creator of ElasticSearch introduced this feature already in version 5.0, but the sorting was buggy - as I couldn't sort for more as one criteria.
I reported that as a bug, and now, the version 5.1 should allow this - I'll see it :) More about my current job, here. top ↑