HACKER Q&A
📣 skinnyhippo

How to shift left from an ops career?


As a seasoned technologist with more than a decade working professionally in various roles, from tech support to linux sys admin, networking etc, couple of years back I switched to a domain I wanted to work in for a while (sre/infra/devops). The start was hard, a lot of it was new to me (ansible, terraform, etc.) I had to study during the evenings/weekends to keep from drowing at day job.

At this point it is obvious that my software engineering/dev skills need love. I can comfortably write scripts (python/bash) that log/process data or say call an api, do some processing, post to another api etc. Anything beyond basic functional programming (100~200 loc scripts) where there is a ton being done with classes/decorators/libraries starts becoming overwhelming. Reading someone else's code is just daunting. I've tried courses on various sites but feel they only teach you loops, conditionals, basic data types or a framework but not the process of creating great software.

I recognize that I need practice, lots of it. My day job barely involves any day to day coding (unless you count terraform). How do I as a technologist become a better software engineer? I am currently writing a CRUD backend (FastAPI/peewee/sqlite) for a practice personal project and realize how much there is for me to learn in terms of modeling data, schemas, translating SQL to code etc. It gets frustating at times.

What would you advice me to scale my software engineering skills, build good habits, do things the right way and be proud of putting my name on a piece of code. My goal isn't to be a day job software engineer but be better at what I am doing as I really enjoy the devops world. Since most of my other hobbies are on hold due to covid, I can comfortably spare 10 hours a week for the next 6~12 months in the pursuit of this goal.

Books, courses, PhD, OSS contributions???


  👤 daviddever23box Accepted Answer ✓
Much of *Ops deals with the art of state management against an existing black-box base, which is not a bad skill to have as regards test-driven development. The big step is to take ownership of that base: storage, memory, exception handling and instrumentation are your next areas of investigation. Then you can move on to API and client development.

👤 yuppie_scum
In my case, I had to leave my comfort zone and change jobs as my career advanced towards DevOps.