I left my corporate DevOps job, to become a fully freelance full-stack web developer - this is a quick post to share some thoughts on it.
Not my first
Till 2019 mid-October I was a DevOps engineer at a global networking and telecommunications company. Meanwhile, I was already working part-time as a hobby web developer, so naturally, I had been considering to go full-time web dev. The stage was set, I knew my client, I had a running project. Clearly, it was not a leap of faith, but when I finally decided to change jobs in October, I was terrified.
You should know about me that I'm not shy to execute a rapid and wild career change. At one point I went programmer from bartender - discussion here:
I'm an ex-bartender/waiter who is now a web developer and DevOps engineer, Ask Me Anything!
Richard Lenkovits ・ Aug 8 '19 ・ 1 min read
Still, this time was different. I must admit I admired the company for contributing to my career, and I wasn't comfortable to leave them hanging. They accepted me three years ago as a non-experienced university student for an internship. In one year they made me a full-time developer and taught me everything I now know about software. It was an extremely fruitful period of my life, and I was immensely grateful for being able to learn programming, development workflow, tooling, and all about the industry. They helped me enter the world of software when I was just a guy from the street, and I will never forget that.
Yeah. They made it really hard to leave, I give them that...
However, times change
After my first two years, I felt a bit stuck. I admit I'm not an easy personality, I thrive in progress, but I can't stand stagnation. I'm healthy when I can operate at the edge of my capabilities, so that I always learn something with every step, always exploring. If you have ever ended up in corporate software, you know it's nothing like that.
The what and why of industry software development and its weaknesses is a big topic. We can talk about it for endless hours, preferably at a bar counter, given enough beer and wine. I'm not going to get lost in this, but I'll mention a couple of things that really made me consider going freelance in the first place.
A lot of times when some new trend comes up, companies rush and start implementing them in huge overcontrolled waterfall processes. It usually starts on the top, in the head of a selected group of architects. They are like some privileged mages, disconnected from the rest of the company, sitting in a position which was acquired through company politics, connections, and/or age. They usually know nothing about recent trends, and the last code they touched was Fortran and Cobol. At the High Tower these
ancients architects sit down and summon figure out some arcane over-architectured tomes blueprints.
These blueprints are then passed down through 666 levels of management until all the visibility and project control is lost in the intertwined threads and yarns of corporate society.
In the end, it arrives at the actual developers, and when someone shouts out that 'But that's not how an API works' it's already late. The abomination must be wrought into code.
Corporate resources + Sunk Cost Fallacy 💸
In the world of startups, you can seriously jeopardize your business if you launch or even start to create a product without extensively studying your targeted consumer group. If you neglect research you can easily end up with an unsellable product.
But this is not the case in a large company! There, if the management wants a tool to be used, trust me it WILL be used.
The situation is especially uncomfortable in the case of inner source software - so code that we write for our colleagues. The corporate bureaucracy that comes with the work usually generates an immeasurable amount of technical debt, and developers must do all kinds of abominable workarounds to comply with unrealistic designs. In the end, the product must be launched and used, whether the targeted users like it or not. And if those users are within the company that can create a very toxic atmosphere.
You don't notice these things first, but slowly during the years they really drove me away from corporate software development.
Then came Freelancer Life
Being a one-man army
After the summer my freelance career started simultaneously with two projects. It was a frontend job at first but it quickly escalated to be a full-stack one as the expectations of my client grew. I learned an immense amount of things in the last few months, and my life changed greatly. Suddenly I had to realize that it's much harder to justify something I wrote if there's no one to do code review for me. The expression of Work-Life balance also started to make sense suddenly.
A freelancer friend of mine warned me several times that I must really pay attention to this or I can easily end up burnt out, or depressed. Indeed the risks and responsibilities that come with being a contractor are considerable sometimes. Not having fix hours can be great sometimes but you can quickly end up messing around during the day and then doing overtime after midnight.
The internet is talking to me
Actually nowadays if you read an article about containers, cloud and site reliability solutions - so basically DevOps stuff - even these are worded for small businesses and web developers because this market is bursting. As a result, picking up and integrating new tech can be hard at a large software company. Previously I always felt overwhelmed when I was working on some DevOps solution with some new tech tool. Reading the tutorials all the help I got was how to make the tool work for some small web app when what I wanted was a setup for the management of many gigantic native telco network applications.
It's great fun to make web apps
Making smaller web apps feel very similar to when I was just creating small tools for fun when I was just a hobby developer. Sometimes working alone can be hard, but I'm happy that I can be more creative and independent.
Top comments (14)
Well-written piece, Richard! Just an idea: write about your customer acquisition process. Best of luck in your journey!!
Hi Carlos, thank you very much!
Well, unfortunately - or fortunately - there is not much to tell about that. I was connected to a client through a friend when I started, and they have been supplying me with work ever since :D I got lucky. I don't even know what would I do without this. I'd probably end up on Fiverr, and Upwork.
Thanks for the response, Richard! Again, best of luck in your endeavors.
Excellent article Richard. All the very best for your future endeavors!
Also, I'm currently a junior dev (backend) and after researching about DevOps and understanding it's value in a software business, I accrued a lot of interest in it.
I'll be asking my manager to move me into a DevOps position in the upcoming months. It would be really nice if you could provide some suggestions or tips for this exciting transition, since you have already experienced this before. :)
I've recently decided to put some time on studying OS and Networking concepts to get me started into the very basics.
Hi! Thank you for the wishes.
So all around the industry people define devops differently. It's a bit vague but for me devops is every kind of development related work except for the product development itself. :D so builds, continuous integration, environment management, site reliability, automated deployment, release automation etc. So this can be different depending on the products you guys have. I would tell you to refresh your bash/unix/networking knowledge, but who knows what you need there. All I can say is that I believe it can be an extremely useful thing to get involved in devops because you can learn an immense amount of things that can be useful if you end up managing your own software/business someday.
Excellent! Thank you Richard.
I really enjoyed this Richard! Very well-written.
Thank you very much! :)
The best and most accurate description of a corporate IT architect 🤣
I can very much rely to feeling some sort of "loyalty/obligation" to the first company that kinda give you a "chance". Luckily I got laid off from my first job, that made it easy.
Well done, Rich. However, it sounds a little bit like the one-man army could consider a bit of help from some mercenaries from time to time, so that you keep the balance and all ;)
I'm in a same situation, but I'm looking to start working as a functional full stack developer (elm + elixir). I felt good to read this :)
its like an edited piece written by a Lawyer , only to realize the programmer is also gifted in both worlds , nice article thanks
Some comments may only be visible to logged-in visitors. Sign in to view all comments.