6 Lessons In 6 Years — An EdTech Software Engineer’s Journey

So long, and thanks for all the fish, (and PR reviews).

Attila Vágó
HMH Engineering

--

Ten years ago, I had no career, no money, no future. I only had hobbies: coding, writing and Lego. This last one so far made me exactly $1.87, so while I never gave up on the idea of eventually working at the Lego company, I have accepted that the former two are likely more lucrative and rewarding and decided to turn my hobbies into at least food, then maybe a roof over my head and then whatever else I deemed necessary. All the code I knew, I learnt online. I was an early adopter of the most currently popular online learning services, so when the opportunity arose a little over six years ago to work for one of the largest learning companies out there, I naturally jumped — very high — at the opportunity. While at this point my third software engineering job, I knew this was special. I knew it will take me places. And boy, it did…

I have more questions than answers

I thought that a decade of software engineering would give me all life’s answers, including its meaning beyond 42. It didn’t. And the last six I spent in edtech brought up more questions than answers. At first, I got worried, then fought off the hairy, sticky monsters of imposter syndrome, managed to even burn myself out at one point, until it dawned on me, that it’s impossible to have all the answers in software development. Because software evolves, and its challenges will always be one step ahead of me. First comes the challenge, then comes the solution, and all I am ever going to be responsible for is to use everything I already know to try to solve tomorrow’s unknowns.

I look back quite fondly at my first two years in software. I had 99 answers and only one question: “What’s the next question?”. I thought I knew it all, I was convinced I had the answers to every question. How naive I was! In hindsight, all my 99 answers were wrong. Some flat-out, others because I winged it and got them right, and getting lucky can only get you so far in software engineering. Years later I have 99 questions, and for every answer quite likely more follow-up questions. They say “there are no stupid questions”. I say, there are plenty, but I’d rather people ask them than assume the answers, and if you give yourself a few years, you’ll start hearing yourself asking less and less of those, and more and more intriguing ones. It’s called experience.

The newbie’s arrogance wears off, and seniority’s wisdom starts taking its place. Like a well-worn leather jacket’s patina. Beautiful and unique to you and your experience.

Code is just a Swiss army knife

Coding is not the answer to all software development. In fact, it doesn’t even make it top of the list. I made the mistake of jumping on the latest and greatest languages, libraries, frameworks, anything, and everything that was out there expressible through code only to find myself being slow, distracted, frustrated, and ultimately unable to deliver. Working on enterprise software used by tens of millions of users on a daily basis teaches countless lessons, but one of them is invaluable — being agile, making software development decisions with delivery and users in mind, is paramount for success.

Code, at the end of the day, was nothing more than the tool I used to communicate to the machine how to solve a particular problem. The language, the library, the build tools were just that — tools, and my job was to use them, rather than get religious about them. While my junior self would have jumped right into the code half-way through the requirements being presented, years later I found myself needing to have the answer in my head all figured out at least for the most part, before I even attempted writing a single line of code, and when that wasn’t possible, just break things down until the mechanics were obvious.

People at the heart of everything

If I didn’t have great people around me, six years of working in edtech would have taught me absolutely nothing. I’m a better engineer than I was six years ago because engineers who were walking their path, just as I was, either offered to help or asked for help.

Every software engineer will teach you something. Including the intern. If nothing else, how to pass your knowledge onto someone who is still anxious about writing variables. But you’ll also find that many juniors will come with fresh perspectives, which, even if a complete misfire, opens a conversation. It’s impossible to become a good engineer without being mentored and you yourself mentoring others.

Collaboration, team-work and peer reviews are not there to complicate matters or to fall nicely into some corporate organisational setup, they’re there to elevate every team member, and set people onto a course of exponential success.

It’s no point fighting it, a lone-wolf software engineer life will be infinitely less rewarding than the alternative.

You own your journey

Being in software development is an extremely flexible journey, and you will be the one to decide what and how much you get out of it, or even if it’s the right fit for you altogether. Working in content engineering, then platform engineering, moving between developing components to rearchitecting our entire UI (user interface) has taught me that software engineering is a non-linear career, and can be endless fun. If you’re tired of UI development, there’s always the back-end or quality engineering, and when you’re tired of all those and still want to code, there’s software architecture, data, and AI waiting for you to dip your toes into.

But it doesn’t even have to be coding. The software development space gives one countless opportunities to gain experience in UX design, accessibility, people or project management, Agile leadership and even product ownership. The sky is the limit, really, and the direction you take is entirely in your hands.

Learn by doing

As a child, I would take anything and everything apart that was held together by screws. Besides managing to electrocute myself with my dad’s old boombox, I also learned how things worked. That same approach worked wonders for me in software development. I could watch videos for weeks and months on how to do things, how to solve certain problems, but I never really understood them until I sat down and coded the solutions myself. Nothing taught me about race conditions like creating one myself, and nothing engraved the value of software testing as well as managing to break the platform’s login for millions of users.

A lesson I am still learning, and will for as long as I live, probably, is that the best we can do is try.

Just like agile software development is iterative, so is everything else. We try until it works, and when it doesn’t, we try something else, until that works. Being fixated on a single possible solution or outcome will hinder any attempt at success, be that professional or personal.

Stay curious

At the age of 19 I came up with a quote of my own, “Life’s worth living out of curiosity.” So far, that worked out better than I could have ever imagined. From the big things in life to the smallest functions in a line of code, everything I am is because I stayed insatiably curious.

Asking questions, trying to understand why a piece of software behaves the way it does or doesn’t, or why the user is not interacting with it as you expect them to are all good questions, but aren’t the only ones. The truly exciting ones are those that start with “what if”. What if you went with a different library, what if you overhauled the entire UX, or the architecture of the application or even — the often dreaded one — what if you pivoted? These are the questions that lead to experimentation, and the good news about experimenting is that you can never really fail.

A proof of concept will always prove something, just be prepared for it to prove the unexpected. 😉

What’s next for me?

Here’s the spiel. 2020 and 2021’s endless Teams and Zoom meetings sucked the life out of me. I worked with fantastic people, we did rock-paper-scissor at every stand-up, but not even that could make online meetings as interesting, fun and interactive as I would have liked them to be, so when life reached out to me with an opportunity to join a new Irish team that just so happens to solve exactly this problem, I frankly couldn’t say no. The way I see it, hybrid and fully remote work is here to stay. I myself found that over the course of nearly two years, I have radically changed my mind about working from home. I used to hate it. Guess what? I now love it and see the benefits of it much more than I ever did before.

I joined HMH six years ago because an opportunity knocked on my door, and it felt like embracing it was the right thing to do. Six years later, when I found myself with another opportunity at my door, I felt a very similar calling and I knew I owed myself to give it and myself a chance. Here’s hoping with my new role, I can contribute to changing how online meetings happen for everyone everywhere and turn those boring meetings into endless fun!

Speaking of fun, being a writer and editor on the HMH.engineering blog was great fun and I feel proud of every new writer who joined and submitted their articles. There’s a budding tech writer in each of them, and it was an honour reviewing and scheduling their stories for years. I very much plan to take that same enthusiasm and all the learnings gained with me into my new role.

While this may very well be my last story here, I have many more stories to tell, and those of you who would like to follow them, can do so on many channels.

  • LinkedIn — if all you care about is my professional journey.
  • Untappd — if you like beer 🍺 just as much as I do.
  • Discogs — if music 🎵 is just as important to you as air, water, and food.
  • Medium — if my blogs are what kept us friends all this time.
  • Substack — if you want an occasional newsletter in your email inbox or would like to subscribe to my upcoming novel.
  • Twitter — if all you can take me in, is 160 character blurbs.

From the desk of Attila — HMH.engineering editor (now former), a sincere thank you, stay safe, and don’t be a stranger!

--

--

Responses (1)

What are your thoughts?