When I started to study, I moved out of my parent’s home. To be financially independent, I looked for a job. One month later, I started at a computer system vendor by helping out with repetitive office work like digitizing documents.
The company employed two dozen people, and it ran on a self-written software created by one of the founders. Everything that was done in the company, be it project management, billing, warehouse management, maintenance scheduling, support ticket resolution, all of it happened in this software. But the founder who created the software had left, and the software was unmaintainable. The only developer working at the company had started to build a PHP based web interface to retain compatibility to the legacy software, while improving the workflows.
Two months after I had joined the company, the developer announced that he was leaving. For reasons that still go beyond me, it was decided to not procure a standard software, but to continue on the path of custom software. The CEO approached me, whether I would want to take over the development, as I was studying “Management & IT”. I agreed, not knowing what I was getting myself into.
At that point in time I could not program in any language and had never developed software. In my youth, my dad had tried to interest me in the topic by encouraging me to read a book on C++. But without a clear practical goal and coaching, I found it too dry to learn, especially with an allowance to use the family computer at most half an hour a week.
The developer helped me set up the project on my machine. “There you go”, he said after a couple of hours in which he installed Git, XAMPP, PHP, MySQL, imported a dump of the company database with 150+ tables, and opened Notepad++ with the source code. Then he left the company.
“There you go”, he said. Then he left the company.
I do not remember how I managed to do anything in the first few months. I did deliver bug fixes and new features, albeit at a slow speed. I guess I must have read the codebase until I found the piece of code that seemed to be responsible for the feature I wanted to touch, and looked at database tables with names like
re0, until I recognized by the data that it contained invoices. I guess I started to understand how it all worked together. I know for a fact, that I never read a book on PHP, MySQL, or web development. I know that I did not know what git was for at all. Only after a year or so I started to at least read the documentation of the PHP framework in question called Yii. I developed software on my own without having any knowledge on how to do it. And so I learned it the old way, like tinkerers in the earliest day of the web, in an unstructured way, only caring about somehow getting a specific result.
My role was the enticing mix of product manager, designer, developer, operator, and support staff. I watched employees searching for the most urgent ticket, questioned them how they were creating invoices, had conversations with the CEO in which we modeled the new company process. Then I sat in front of my computer and implemented something I had made up in my head. Once I had implemented my imagination, I would roll out the change, manually copying PHP files to an SFTP server, breaking production whenever I forgot to use
chmod afterwards. Then I’d walk over to the back-office employees and give them a five minute demo of how they could now create an invoice in two minutes instead of seven, while having much more context on the customers other invoices and ongoing projects. From that moment on they had to use the new feature, as mandated by the CEO. Usually the users of the new feature would walk over to my desk twenty times in the first few days to ask specifics about the feature, report a bug, or leave a simple “well done” with me. I’d spend the next weeks reworking the MVP that I had launched.
It was terrifying. It was the most awesome thing I had ever done.
Being able to express myself by creating something was like a drug. I extended my working hours to the maximum of what I was legally allowed to as a student. And after work, I would go home and continue to code until 3am (without getting payed for it). The tasks made me happy, I felt free, U continuously learned what was possible. It was ten times more interesting than studying. I started to drop more and more lessons – like such as how to use SAP, which sucked hard in comparison to the workflows that I built. From my third semester on I was at university one or two days a week at most – the fact that I could get my degree with my work ethics is a damnation of the difficulty level of the courses I took.
Never again have I felt so responsible. Whatever I did had 100% impact on how those two dozen of colleagues worked. My application was used eight hours a day, and I saw all of them while they clicked around. Whenever I broke something, the company ground to a sudden halt: While some would get pissed that they couldn’t work – and others enjoyed an extra coffee break – I would start to sweat like a pig. In panic mode, I fixed the issue as fast as possible. That’s when I started to create copies of the last deployment, before rolling out the new one (I did not know how to use git for that). Of course that did not always work, as database migrations were hard to undo.
Sometimes the pressure was close to crushing me. I hired a friend (and another student) to help me to deliver more features faster. Needless to say that the friendship did not survive my unexperienced attempts to “manage”. Those personal setbacks were also the reason that I did not take the opportunity offered to me by the CEO to spin out a software development company under my operational lead after my studies. To some degree I understood that it would be hubris to lead people with my level of experience and knowledge, that it would be too much at once for my own good.
Nothing else I can point to has influenced my expectation and my behavior at work more than this first part time job. I would not want to have learned being a developer in a different way. Not by having read a book, not by having been mentored, not by playing around with pet projects, nor at university. This first job was a push into ice-cold water, and I survived it.