A decade of programming
It is now over a decade since I took up programming; and it feels like it was only yesterday that I learnt some HTML and built my first website just for the hell of it. The stretch between that first website and getting paid actual money to build someone else’s website, well … that bit did feel a bit draggy, to be honest. But now here I am, ten years a professional programmer.
Banging on the door
Programming stands out among modern professions, not least in terms of terminology – programmer, software engineer and architect may be used interchangeably in a way that, say, surgeon, anaesthetist and cardiologist never could – but also, unlike professions of a similar status and salary, you can bypass the gatekeepers: entry is a matter of starting out and getting good at it. No anaesthetist ever said “I etherized my pets a lot for fun and worked my way up from there.” And that is a big part of why I learned this craft. Regulated study always felt too rigid to me; I prefer learning on my own, choosing my own path. That said, my learning happened to coincide with the advent of online courses; Udacity and Coursera launched shortly after I embarked on coding, and those gave me an immense boost. Moreover, knowledge about programming is freely available all over internet – an amazing community of people willing to share what they know simply for the love of their craft. And that is also somewhat peculiar to this profession. This blog is my hope to contribute something more to the community.
In this world of fast-paced development, where everything needs to happen instantly, this blog post by Peter Norvig – Teach Yourself Programming in Ten Years really took off the pressure and helped me look at things from a different perspective. Ten years down the road, I can say it really did take that long, and I am still far from done. In fact, I am happily looking forward to what I might learn in the next ten years.
First paid gigs
It didn’t take long after learning some basic coding before it occurred to me there could be a career in this. But the immediate snag was there weren’t that many positions going for self-taught programmers with neither portfolio or qualifications. So I planned to build up my portfolio through freelancing. But here too, businesses wanted to see a portfolio before they’d commission you. And this little merry-go-round continued until I was on the point of working for free just to get the first leg up when – hallelujah – a friend, as it often is in life, trusted in me even when they were not quite sure of my skills and gave me my first paid project. I’m still grateful.
Freelancing taught me an enormous amount. I founded my one-person company and acquired the basics of running a business. While there is a difference in scale and scope compared to running a full-size business with employees and investors, there are some fundamentals that are much the same regardless. And I cherish the perspectives I gained – which I never would have had if I’d exclusively been someone’s employee. Perspectives such as the ins and outs of registering a business, the complexities of client acquisition, the bookkeeping, and the black art of writing a quotation that is competitive enough to win the contract and yet still be profitable.
I also learned very early on how to focus on solving real problems, bringing real value to my customers. My clients were other small business; the sort of people for whom one euro more spent means one less euro to work with, so they’re always making doubly sure nothing’s being wasted, whoever they work with. Meaning I needed to learn very early on how to bring added value with my work, drilling things down to what really brings value. The owner of an online store I worked with had a lot of ideas for automating their business processes and tasks, since they and their partner were also the ones having to execute the boring manual labour. However, after drilling this down into something programmable and seeing how much this would cost, they often decided to keep on doing it manually until their business grew further.
Working at small agencies
While it was interesting and valuable to learn, I realised what I really love doing is programming rather than bookkeeping or negotiating with clients, or the million other things running a business means. I also realised that the best way to learn even more about programming is by working with other programmers, and on bigger projects, bigger than I could do on my own, which meant my next step was to join a small web agency. This fulfilled my expectations in the sense that I got to work and learn from both more experienced programmers and bigger projects . Although I had already worked together with a designer while a freelancer, here I got to know more specialisations and preferences. I learned that techies tend to have very strong opinions. There was a system administrator who was a diehard Linux fan and would even browse web using Lynx (command-line based browser). There was a backend guy who loved Ruby and convinced me to try out Rails with him and visit a Rails Girls convention. My world got bigger and more colourful, even though I ended up being more of “Java Girl” who browses web using Firefox. My tenure there however was not particularly long as life circumstances had me moving to Berlin.
Hyper-growth startup
Berlin has always had a booming startup scene, so it’s not surprising that the first job after moving here was in one of these. I did not know much about Flixbus when I started, but I sensed there were some really smart people working there and I was keen to learn a lot from them. As it turns out, it was also a very successful startup disrupting the transportation business. At the time I joined, the product and technology team consisted of ten people, by the time I left we were at 150. Working in such a rapidly growing environment taught me a lot and gave me opportunities for development that really helped me mature as an engineer. Learning the theory of something like the scalability or stability of your system is very different to having your website traffic literally double overnight due to a German railway workers’ strike.
Moreover, Flixbus let me take on a leadership role. First the position of a team lead and then, as we adopted to a version of “Spotify organisation structure”, I stepped into an Engineering Manager role, sometimes with around 60 people to manage. It was perhaps the most I have learned in any company I worked with. The speed with which a startup moves is just incredible, although not particularly healthy. Which, prioritising my own well-being, was ultimately why I left.
Big corporation
While eBay is not exactly “Big Tech” it is nonetheless a big corporation and indeed something quite different from a startup. I took a job there as a Team lead and continued on my leadership path.
Even while at Flixbus it became clear to me that the most complex part of building any (complex) computer system is not the technology, it’s the people. How to get the people together, how to find agreements, how to resolve conflicts and ultimately how to work together toward the same goal. And I discovered my personal strength and interest lies in the overlap of people and technology that is architecture. I shifted gear and went back to an individual contributor path, switching from a disciplinary leader – Team Lead, to a technology leader – Software Architect.
Growing into an architect role in a large, established company was full of surprises, especially coming from a startup. I needed to pick up a whole bunch of skills and change a whole bunch of gears. Things move slower, are more stable, but more difficult to change and influence. The learning curve has been steep, but well worth it.
And now?
I’m not sure where the future will take me, but I am keen to find out. Even after more than a decade in this business it still excites me; I learn something new all the time and at any time have several ideas on where to go next. I’ll keep posting the new developments. And it won’t be a whole decade before I write another one of these.