Contents

Rising

Yesterday a friend jokingly asked me to summarise my life right now in 1 word and I chose the word ‘rising’. In the split second before I spoke I was going to say ‘improving’ but I preferred to sound like a loaf of bread rather than someone who’s not doing so great. Spending almost 6 months without a job, most of it during lockdown and having not much to show for it now doesn’t feel good, but here’s what I’ve learned about myself and what I’m doing about it.

Note: I’m sure that I’ll eventually find a better way to articulate all of this but this is good enough for now.

Free Time

When I first found myself without a job I decided that I would take a break to recharge. I felt fatigued from overworking myself and I wanted to spend some time finding out how to “work smarter instead of harder”. I was excited by all the opportunities that my free time offered me. All the things that I could learn, all the problems I could solve, but most of all I was excited to take a break from working for someone else to focus on myself. The break started with a few days off but then a few days turned into a few weeks and then panic started to set in because I was producing nothing. Without the discipline that I felt while I had a job, I spent my days playing video games, watching YouTube and my bed time shifted later each night. People were asking me what I was up to, what I was planning, when I was going to get another job and I thought I’d better work on something or I’d waste my time off and end up back where I started. Earlier in the year I’d begun working on a daily planner app to help me be more organised but I gave it up because I didn’t make enough time to work on it. I decided that my holiday was over and I’d get busy working on that again.

Parked Project #1

Building and releasing an independent app has been on my bucket list for a few years and I thought that by doing that I could stand out among the other engineers in the industry. Plus it wouldn’t hurt if people liked it enough to pay me some money for it. It didn’t matter that a million organiser/to do list/calendar apps already existed. Mine was going to be better for me because it was going to work exactly the way that I wanted it to. People asked me when I was planning to release it and I thought to myself, “when it’s done”, because I didn’t have a better answer. That’s something that would never fly in the workplace but I wasn’t in the workplace. I was working in a space where I made the rules and I wanted the satisfaction of writing code and creating something instead of making and revising plans.

I realise now that I’d made a fundamental error in managing the project because I had no idea what its scope was and I hadn’t defined any milestones along the way besides managing an ever-changing list of ideas to include in an MVP. That meant that I was winging it in terms of what I was working on and most of the time I wasn’t even solving the problems that mattered to the success of the project. Some days I wasn’t feeling motivated so I went back to playing video games and watching YouTube. I repeated this cycle for weeks hoping that at some point things would click and the app would suddenly be done. After some reflection it seemed I had become dependent on the structure of a team and clearly needed to improve my project management skills if I was going to succeed on my own. When I finally sat down to figure out how much time the project would take me, based on the progress I’d made so far it seemed like months would pass before I’d have anything close to an app that I could use myself. Suddenly the millions of other existing options seemed more appealing than forcing myself to persevere with a poorly planned project, especially while I still had so many things I wanted to do with my free time. So I parked the project and thought about what I should do instead.

Problem Solving

When I got my first job after university I was very good at achieving results on my own. I had a role where I was building software to solve real problems that my team encountered while they were working. Sometimes the software kept data organised in a particular way and other times it transformed data from one form to another. We didn’t care about how “clean” the code was, those of us writing software in my small team could read, understand and maintain each others code just fine. We weren’t concerned with application architecture, or design patterns. Above all, the software needed to work and it did. We knew it did because when it didn’t, my team who used the software noticed it and they told me about it.

Over the next few years I learned more about the problems that are typically encountered by larger teams, who need to collaboratively write and maintain larger amounts of code. I was learning techniques to address those concerns and many more that had never occurred to me in the work that I’d been doing so far. As I learned more, I felt it was necessary for me to become familiar with all of the buzz words that I was hearing other software engineers in the industry talk about. Topics such as “Clean code” and “S.O.L.I.D. principles” became my obsession and I felt I didn’t know enough about my profession while there were still more best practices out there for me to learn. Somewhere along the way I lost sight of the fact that all of these practices have a purpose of solving certain problems and instead I became obsessed with ritualistically practicing them because anything less meant that I was ignoring best practices. I found that the more I was learning, the harder it was to achieve results because my standards had gone beyond “it needs to work” and transformed into an unachievable, “it needs to be perfect”.

My relationship with building software had changed from enjoying problem solving by using technology to being fearful that my imperfect code would be criticised and rejected by reviewers. This negative, fearful mindset has gotten in the way of my work with teams but even worse was that I felt the effects while working in isolation on my daily planner app. I obsessed over app architecture and scalability when I had barely finished a single feature. I convinced myself that if I got these things right at the beginning then I would thank myself later but it’s later now and I would prefer to have a working app that could use improvement over a perfect parked project that’s gathering dust.

Parked Project #2

After deciding to stop working on the daily planner app, I was determined to find a project that had a smaller scope that I could see through to the finish line. After all I still wanted to stand out from the crowd and what better way to do that than having my own app in the App Store. At the time I was feeling particularly down about my recent failures and had been neglecting my household chores. Vacuuming, washing dishes and scrubbing the shower were the last things on my mind. I decided to make a habit tracker app to keep on top of everything. Once again it didn’t matter that there are a million other habit trackers out there, this one would be my own entry in the App Store. I scoped the project to 2 weeks and by the end of that time I had a working prototype that I was able to present to some people I trust. It needed a bit more work before it would be useful but good progress nonetheless. The only trouble was that in those few weeks I’d also set myself some recurring tasks on Todoist to keep on top of my chores and it was working. My app was no longer solving a problem for me and I didn’t want to use it anymore. Furthermore releasing an app is not the finish line, it is just the beginning. I need to care about the app enough to maintain it, promote it, and respond to feedback. If I’m not even using it myself, what’s the point?

Having lost all motivation to work on the habit tracker, I decided to abandon it and instead try to figure out why I wasn’t completing any of the projects I started. There was something important that I wasn’t seeing. I had been jumping from solution to solution and I needed to step back and understand the bigger picture if I was going to make any progress.

Clarity

I had failed to complete another project and I knew I wasn’t going about things the right way. I’d spent the past year practicing meditation to better understand my mind. I’d found meditation to be helpful for calmly observing myself and that’s what I needed to do. The first thing that I noticed is that I was unhappy and I wasn’t addressing it. I had been comparing myself to others by trying to stand out from the crowd because I wanted to have an easier time getting a job that I wasn’t even sure I wanted. In doing so I was jumping from one solution to another to keep busy instead of asking myself what is important to me. In other words, even though I had improved in planning the project, I had failed to understand the purpose of the work that I was doing. Clearly I didn’t need to create an app to remind me vacuum my apartment, I was making an app for the sake of making an app because other people have done that and I should do it too.

While asking myself the the question, “what do I do next?”, I paused and instead asked myself, “why do I do anything?”. Having spent some amount of time thinking about planning, habits and tasks, I decided to think at a higher level and ask myself why I formed the habits that I have, why I do those tasks. For example, I vacuum my apartment because I don’t want dust and debris to build up. I don’t want dust to build up because I want to live in a clean space, and I want to live in a clean space because it positively affects my mental and physical health. Defining such a trivial task in this way helped me to articulate exactly why I’m doing it. It also helped me to see that vacuuming is one of many options to achieve a desired outcome, and ultimately it doesn’t matter what I do, as long as the floor is clean at the end.

Now that I could articulate the purpose for a simple task, I applied this same thought process to other areas of my life. I started at a high level and asked myself who I want to be and branched outwards from there, adding more detail at each step. By following this process I ended up with a branching mind map that articulates who I am (or who I want to be) at the root and how I am able to achieve or justify those definitions as nested branches. For example one of the branches looked like:

  • I am skilled
    • I practice my skills
    • I have a portfolio
      • I have a website
        • Build a basic website for myself
    • I share what I’ve learned in articles/blog posts
      • Write a blog post about this mind map

Writing this blog post is something I’m doing because I had a problem that I needed to solve, and in doing so I learned some things along the way. I’d like to be a person who shares what I learn with others, and I’ll get better at doing that the more I practice. By following this process of deriving my goals based on who I want to be, I hope to have a clearer understanding of the purpose for the things that I do, gradually improving myself instead of comparing myself to other people.

Rising

With a renewed sense of clarity about how I’m spending my time, I’m able to focus on doing the things that help me to be myself. That means finding balance and taking time off to be with others and not obsessing so much about work. It also means working on things that clearly add value instead of chasing ideas that pop into my head. I think “rising” is an appropriate word for now because I haven’t figured it all out yet but I’m on the way. I have no idea what my next job will be but for now I know that I’m practicing my skills because I’m learning game development. I know that I’m working towards having a portfolio of my work because I’ve made a basic website for myself and I’m working towards sharing my knowledge because I’ve published this blog post. I will need to refine my mind map over time but that’s the same as deciding that I want to change something about myself and I’m allowed to do that as often as I’d like to.

I’m very fortunate to have had the luxury of being able to take the time to “figure things out” before finding my next job. At the same time though, I think that this time off has been a necessary step in my personal and professional development to properly understand some of the lessons that I’ve learned and to help me to find continued success.

A lot of what I’ve written here may seem obvious to you because in hindsight a lot of it seems that way to me. The most painful part about all of it is that when I write it all down, I haven’t really learned anything new that I didn’t know before. The way I see it, the difference now is that I have a better understanding of those lessons that I already knew. I needed to make some mistakes myself so that the lessons sink in properly, and I needed to zoom out to ask myself what I want so that I could follow the same objective process that I would advise to a friend or loved one. I know I’ve got a lot more to learn and I will probably cringe when I look back at this but that’s normal. I’m proud of the progress that I’m making and looking forward to where it will take me.