My journey to craftsmanship - The first years

19 March 2021

So I finished my studies, having fire in my belly to take on the world.

Only, I had no fire in my belly and was instead looking to travel some more, if I recall correctly. Definitely no fire, though.

I'd already worked at Ericsson, a huge telco company, as a summer intern, and then one day a week during my fourth year. While it was great to have a first job experience, what I didn't like about working there is that I felt like I was just a cog in a machine.

The project I worked on aimed at building a network simulator. It was so enormous, I only saw a tiny slice of it and I had no idea about the big picture. Why we do what we do? How do the few classes (a programming term, let's say files) I was given to work on interact with the rest of the program? How does the whole thing work?

In retrospect, I could've asked more questions to clarify some of the above. I probably felt like I'm too new on the field to ask them, or I was just too shy.

A small cog in a huge machine

Whatever the case was, even getting answers to those questions wouldn't have helped the "tiny cog in the big machine" feeling. I preferred to work for a company where I have at least more insight (not necessarily impact, at least not yet) on the working of the whole.

The first spark

So in the fall after graduation (2001) I applied to and was hired at a small company that made a range of e-commerce shops for Logitech. The tech stack used at the company was Java, with jsp templates for the front-end, and Lotus Notes as the database (which has more features than your average database does). I was mostly just chugging along and enjoyed the fact that I had more money than ever before. Since I still lived with my mother and brother and had no serious expenses, I could even put some of my salary aside.

It was at the company when for the first time I felt the joy of building software, making something out of nothing. It's the same spark you get by writing, playing a song on your guitar (or, better yet, coming up with one), or devising and executing a plan in chess – in short, any creative endeavor. Even if I don't remember exactly what I made, I do recall several details about it, like where I sat, what type of code I worked on, and that it was in the afternoon. There was a piece of somewhat challenging problem to solve: I came up with a plan and wrote the code that implemented it. After a few –possibly a lot of– tweaks, it worked!

Detour in Spain

It'd be a stretch to say that I then found my calling as a programmer. In the summer of 2002, I quit and left for Spain, to spend 6 months working as a volunteer in a few small national parks. To enjoy the sun, sea, and air of the Mediterranean all the while being afk (a programmer slang meaning "Away From Keyboard").

The time I spent in, and around, the city of Tarragona from the fall of 2002 to the summer of 2003 is up there with my year in Nantes. I made great friends, learned a language, visited beautiful places, and had an incredible amount of fun.

Tarragona

I also furthered my skill of living on a budget since as volunteers we were only given a place to stay and some pocket money, no room for splurging. I'm not complaining: it was part of the deal and it was enough for what I needed. I wouldn't change that year for anything.

First adventures in freelancing

It was hard to get back in the saddle and continue the life of adults where I left off. I moved out of the flat I grew up in (it felt great), rented a room in a run-down apartment, and started building a few PHP sites with a friend (and I mean few, we made about 2-3 altogether). That was my first, brief time as a freelancer and I enjoyed it more than the previous jobs. We worked for a fixed fee and we spent a lot of time getting it right, so our hourly rate must have been abysmal.

I liked to work this way, and I learned quite a bit on my own but this wasn't a sustainable path. The balance of my bank account quickly approached zero (since I paid rent and expenses) so when a recruiter emailed me about a Lotus Notes position as a contractor, I eagerly accepted.

I was dispatched to the Hungarian State Treasury.

Dodging work, making coffee, reading newspapers - the public sector

My first day at the Hungarian State Treasury was hands down the most surreal at any job I had. I shared the office with another, very jovial and easy-going, developer (let's call him John) and a middle-aged, bitter woman, whom we shall call Jennifer. It turned out John was a contractor like me but have already been working there for several months while Jennifer was a public employee. I've never seen anyone do (or pretend to do) their job with as much contempt as Jennifer did. Whenever her phone rang, she picked it up with a "hello" that had as much life in it as a barrel of smoked herrings. She used words sparingly but tried her best to transfer a good amount of her ennui to the caller to dissuade them from giving her any work. It was painful to listen to – and very effective in evading work.

If she, on rare occasions, failed in her attempt and some work came in, she passed it on to John, and as I became familiar with the projects, to me, too. She never did any of it herself. More often than not she managed to dodge the work and I started to wonder where those dodged jobs go. When I was trained, I was transferred to another room that I shared with Sue and Greg.

Even though Sue was a developer, she specialized in spending a couple of hours making coffee every day and nothing more. She also complained incessantly but this was true for all public employees I met so she didn't stand out. Greg just started his programming career and drew complex, elaborate flow diagrams for the simplest of tasks. He also asked a lot of questions (which is completely fine) and with increasing frequency tried to convert me to Scientology peeking at a propaganda leaflet he held under a stack of work-related paper. He didn't say it was Scientology, though, but John and I figured it nonetheless.

I could go on and on about the ingenious ways these functionaries came up with to have something to report at the weekly team meetings (though those were pure formality). Let me just mention my favorite: the man who printed out the contents of a database table (spanning >200 pages) and handed it to me. My face must have told it all.

Quick as Flash

There was also the rampant "soft" corruption. Phony, over-priced consulting projects that were usually won by the same external company and the conclusions of which were then promptly ignored. The second renewal of my contract might have been turned down as a result of a power struggle – at any rate, I was out of working with the public sector for good.

I couldn't help but smirk when a few months later I learned that people working on the last project I helped to build used pen & paper to register applications.

Fledging craftsmanship

In October of 2004, I started working for a small company. We had two products: a publishing platform for small- to mid-sized organizations and an ad network for bloggers called Blogads. I mostly worked on the latter which was starting to get a lot of traction.

This job had everything I've missed previously: a group of motivated people, a great project with technical challenges, and properly aligned incentives. I felt like my work had meaning and I could make an impact. I enjoyed designing new, sometimes complex, features with my manager and then implementing them. We used Python which I knew nothing about when I started but I found it extremely powerful compared to other languages I'd used. I learned quickly and after about 2 years I taught Python classes to other developers the company hired. It's quite possible that the idea of trying to pass on my enthusiasm to others about something I learned started.

I finally felt confident that I could find joy in my work as a developer. I became interested in learning different things in web development, even in my free time! I saw the endless possibilities in this field, realized how little I know, and so I wanted to improve my skills every day and become a great developer. In short, I wanted to be a craftsman. As I was learning about all kinds of fascinating stuff I came across a programming language called Ruby and a book called The Pragmatic Programmer.

Ruby both had beautiful syntax and was very pragmatic and consistent. It also focused on making it pleasant for developers to write programs in which showed: it was (and still is) a joy to work with. The PragProg book spoke to me: it described the delightful feeling I've just experienced and showed ways to improve the different skills a developer needs. I still recommend it to anybody going through that "waking craftsman" phase.

The Pragmatic Programmer Book

The first conference

Around the same time, I came across a Ruby conference called Euruko, in Prague, which was just a few hundred kilometers away and cost just 20 EUR. I've never been to a tech conference before and I realized how cool it could be to meet other people with that same interest from different parts of the world. To get there, I could indulge in one of my favorite activities, taking a long train ride and staring out the window while watching the landscape rush by.

I prepared for the trip: I booked the train ticket, reserved a bed in a shared room of a downtown youth hostel, and scouring the list of conference attendees which was made public. I spotted a name that I instantly liked: Jaime Iniesta, from Spain. Jaime must be a great dude, I figured, and was content to have made all the preparations - I felt I was gonna have a great conference.

This time, I turned out to be right. There was a get-together in a pub the night before the conference. Since I'm quite an introvert, I'm quite proud of what I did. As I didn't know anybody and didn't want to spend the night sipping my beer in the corner, as soon as I detected a group of Spaniards (their "¡que va, tío!" gave them away), I mustered courage, walked up to them and asked which one of them was Jaime Iniesta. It was an audacious plan but it worked amazingly well: they were extremely friendly, and Jaime was indeed a great guy - we stayed friends to this day. I spent most of the conference with them, listening to talks, chatting about Ruby, and walking the picturesque streets of Prague.

Euruko Group Photo

The talks, as much as I remember, were also great but I started to learn there that conferences are like class trips for adults. You spend a few days with other cool people with the same interest in a beautiful setting. You eat, you drink, you laugh, you watch talks, and have a great time. (I'm not saying all conferences are like that for everybody all the time, or that conferences don't have other, important aspects. However, this is one aspect that keeps me going to conferences ever since.)

On the night train back to Budapest, my mind was filled with great memories and plans to take full control of my professional development. A lot of my new Spanish friends were freelancers and the idea of becoming one was planted in my mind.

Since I liked working on Blogads, it wasn't an easy decision to make, but a few months later, I quit my job and plunged myself into the unknown, risky but fascinating world of freelancers.

(To be continued.)

Share on Twitter