This story starts about 4 months ago. I hadn’t felt the aptitude for writing code in a while, it felt involuntary. I missed being motivated, having a sense of ownership to my written works and above all just wanting to write some damn code.
Crumbling under the pressure of unsatisfying work, and not willing to accept that my GitHub was turning into a collection of good intentions — and lacking in the “finished product” department — I knew things needed to be changed.
Queue the repetitious thought process of how to solve the problem:
- Make a new repository with a crafty name
- Build the initial folder structure
- Push to master and… nothing.
Once the preliminary package was published,
Dissecting the Problem
It took me almost two full weeks to completely understand what the source of my unhappiness was. I felt like I thoroughly enjoyed working with my current tech stack, it was a wide open door of possibilities I understood a majority of the ins-and-outs and I really didn’t feel like I was limited at all.
The stack I was using was roughly the following:
- React with TypeScript (using a completely custom component library) to power the web application interface
- Node with TypeScript to power any back-end (API) functionality
- Apollo GraphQL to help the aforementioned communicate with each other
- Gatsby for any marketing website that was needed (or sometimes as the solution for the web app interface and marketing website rolled into one)
- React Native for mobile application needs, once again accented by Apollo GraphQL to communicate with the API in a way that was identical to the web app.
Nothing seemed wrong, I could write quick, concise code that could be abstracted into packages and published when it made sense, I had a refreshingly creative process of having the Controllers handle their own GraphQL resolvers and types (bad code example but you see the direction nonetheless).
Things seemed good, great at times even and in most cases they absolutely were, except when I needed to use one of my old packages that barely worked. I’d go from progressing on a passion project to focusing on the semantics of a package and it’s project layout (re-configuration?) as I started fresh in a new feature branch and slowly extended the package to do what I needed.
It was a love hate relationship with programming that I didn’t even know I had.
Finding a solution that worked for me
Influence happens from all around me but I want to highlight a couple that are the keys to the decision I made.
- First, Gary Vaynerchuk and his “young age reinforcement” has always resonated in some of my decision making. At the ripe old age of 25, I still have plenty of life left, either to start over on software entirely or to ignore the noise and focus on getting insanely good at one really specific thing. Really, this is long winded way of me saying YOLO. Fuck it, and let’s start over.
- Second, I listened to an incredibly accurate Podcast from Taylor Otwell, the creator of Laravel. He recounts some focus points to burning out and it was exactly what I had felt, knew I had felt, but tried to suppress. It opened my eyes to a new way of picking how I wanted to start building products, services and solutions using code. Ultimately putting me in a position of once again, restructuring my old repositories, or nuking them and starting from scratch.
- Third and finally, I have been struggling to present my code as a portfolio to employers, both in seeking full time work as well as providing past work in a bid for a contract. It should be as hard as I had made it on myself. I couldn’t just openly link to my GitHub anymore it seemed, sure it said I had 3,700 contributions that year, but they weren’t meaningful, they didn’t help illustrate how good of a developer I actually was, the teamwork work and collaboration, the important debugging and it certainly didn’t highlight the 10pm-2am extra work that I would do just to hear a sign of relief from a colleague the next morning during for a meeting. Now admittedly, GitHub will not do most of that anyway — positive reviews and references will — however it should be able to provide insight into what kind of developer I am, the code that I write and the projects I am contributing to.
With this is on my mind, I took the leap of faith. At the age of 25, I — far as the world knowns — have written no code, published no packages, created nothing.
Loaded with the benefit of still knowing what I know, I can build things as I need to, contribute to the packages I find bugs in and reconstruct a new portfolio.
This only works if I take what I’ve learned and apply it. Continue to focus on feature completion and hold myself accountable so that I don’t abandon personal projects like I had in the past.
Since I have wanted to write in the past, I am going to save two ideas for the future. The new technology stack(s) I have decided to use going forward, and my brand new approach to holding myself accountable on whatever projects I make.