I was born on July 24th, 1982 in Silistra, Bulgaria and I am currently residing in Sofia. I have been a professional software developer for 4+ years now. My first steps on the path of computer programming knowledge and/or geekness though, started at the age of 12. Like most of the kids then I was into computer gaming, and like most of the people here I thought that not only I could make games too, but also that I could make them better. And even though like most of the cases I still haven't released a commercial game, I started studing different programming languages with varying consistency, but with constant dedication.
People tend to look down on you when you tell them that you want to be a programmer because you like computer games. Well, people are either wrong or I am some kind of exception, but desinging and developing gaming ideas of my own helped my growth from "Hello World" to web solutions seen/used by thousands of people all over the world (Long Live Internet!). And it did so in a very simple way - when you have a game in mind, you have a concrete task in mind. You know what you want to achieve. And when you try to achieve it, you face a lot of real professional life challenges. You struggle with them, search for solution, realise that you cannot find it with your current skill level, buy a book or two, read them, try again, curse, throw a couple thousand lines of code in the bin, start over again this time on the right path, or so you thought... Experience in its natural form. It's rather hard to understand the Right Way if you don't know the pains ot the Wrong.
That being said, I had a 12-year headstart when I started my first job. It was a Delphi project for an auto service workflow managment, storage managment, and accounting module. I started as a debugger and given that I was the third wave of programmers on the project and the other two waves have actually left (quit/run away) before that, I had a loooooooong and hard struggle with some of the worse cases of messy code. And even though the software had a mind of its own when it came to calculating discounts, and you'd better not have more than 5 of an item in an invoice if you want your calculations to be correct, the program has already been commercially released, and yours trully had to support it, alongside with implementing any new ideas that my boss had. The inevitable happened some 13 months later and the project was dropped to be restarted from scratch. I had a new project manager above me, but the last word on any matter was still with our boss. And I'll be brief on him: in order to protect the doomed project from being pirated by us as developers, he had me print out the source on paper (like 4000+ pages), and then the whole development team (3 people and the new project manager) had to sign on each page... And no, it is not a joke. "ORDER BY RAND() DESC" is a joke, that was real.
We restarted the project on the right foot - we analyzed the errors of the past, me made a plan for the future, then the boss disregarded it and started demanding that we implement any new ideas that he had. We did. By that time, I was the "veteran" of the company because the other two guys that worked there left. And the project manager left before I did. I gave my one-month notice in the beginning ot March 2008. The project was a disaster but the two years there taught me lessons, and, lucky for me, I am the learning type. I had to work in team, did that. I had to work solo - did that. I had to read other people's code, did that. I had to correct other people's mistakes, I did... well... sometimes I did, sometimes their ability to code mistakes was better than my ability to correct them. I desinged custom components for Delphi, I struggled with Windows API under the constant pressure of boss and customers. And when I was sick enough of it, I moved to a different area of development having zero hours of experience in it.
As for that project, last I heard, they had hired a software company to complete it. I don't know if they completed what we started or just started it fresh, but they surely have preserved the look and feel of the user interface. Here it's the project website with demo video. I honestly don't know how much credit I should get for that.
So... I jumped ships and moved on to web development. In April 2008 I had only a basic idea what PHP was. I mainly knew that it was C style syntax scripting language and that was just about it. Two months later I was implementing design patterns and having fun using my Delphi knowledge in this new area. Turned out that my desktop development background gave me quite an edge in the web-development. My new emplorer specialized in custom web solutions and had an aim towards cloud computing, which requires more deep understanding and usage of server-side scripting and database structure than most every-day web-development tasks do. Or maybe it does not, but I just never tryed to use stiff procedural solutions when nice flexible object structure can do the job.
I give you some real life working examples in a second, but first a little bragging (all right, a little more bragging):
And since a picture is worth a 1000 words, here are some projects that I am either proud of or are just milestones in my development as a developer (pun just happend):