In May 2020, I went past a quiet miletone. I completed 10 years in the IT industry. I remember interviewing for my first job. In retrospect, what they wanted was a (Techical) Program Manager. During my interview, they realised that I can code and they decided to see how I would do given a programming task. I did reasonably well, based off my experience in the Open Source community. I got assigned more work and tasks that required learning entirely new things. I’d like to think I did reasonably well. I can’t remember much of that job other than building out custom CMSes from scratch. Since then, I’ve worked as a sysadmin, a web developer, conference organiser, a tree sheriff, a CI architect, and as a Corporate Operations Engineer.
I’ve really found that what I enjoy doing is the sort of work that is a blend of Operations and Software Engineering. Working on purely Software Engineering projects tire me out – when people take no notice of the operational implications of their work or how the deployment of the software works. Too much operations make me frustrated that we’re putting out fires but not spending enough time fixing long-term issues or evaulating how to get out of the hole we’ve dug for ourselves.
When I started my career, I knew mostly PHP and Python. Over the years, I spent a lot more time strengthening my Python experience and picking up some Javascript along the way. Not a lot of it, mind you, but just enough to be able to read code and understand what it does. Recently, I’ve used a lot more PowerShell and Golang. I’m teaching myself modern C++, it’s a very different language from the one I learned in school. I’m surprised that I can understand Java though I wouldn’t be able to write anything from scratch in it. I’ve now maintained in some shape or form – Ubuntu, RHEL, CentOS, Fedora, Debian, NetBSD, FreeBSD, and most recently Windows.
I’ve worked in offices and from home. Looking back, I think I’ve spent more time at home than I have spent at an office. In the current crisis, I find myself more prepared thanks to that reserve of experience. It took a little bit of time to find my rhythm, but now I’m productive but not overworking. I wake up at 5 am, and start my day sipping tea and planning out my schedule based on my todo list. Once I’m sure I’ve aligned them correctly, I go for a run or try to do some strength workouts at home. The latter is challenging. I find it easier to lace up and go outside for a run. Then, it’s shower followed by breakfast. I glance at my emails to estimate how much time I need to spend on dealing with them. The advantage of US West coast emailing me is that replies can usually wait. When I start my day, I do code reviews and then my own coding. I prefer to do my reviews first, when I’m really fresh, and then get into writing my own code. I protect my morning hours furiously, because it’s my most productive time. Around 12, I break for long-ish lunch break. After lunch, I get to my emails and other administrivia. Then, I have another coding block or time for another big chunk of work. Sometimes, it’s chasing down a particularly nasty bug. From around 3 pm, the focus is beginning to fade and from here on out, most of my meetings happen. I tend to make a plan for the next right about now. I have an alarm that rings at 6:30 pm. That’s the deadline where I will stop work. I may look back at it later, but that’s after dinner and some time with the guitar.
Leave a Reply