Overthinking and Analysis Paralysis

As a software engineer, much of the time, my job is to really break down a problem, understand it fully, and architect the best possible solution. There’s a quote that comes to mind, which has become a mantra for many developers:

The sooner you start to code, the longer the program will take.

So what does this mean? It means that if you don’t do things properly the first time, you’ll end up redoing them… or working around the results of that first attempt forever… slowing down the overall progress of the project. To minimize this, we follow a measure-twice, cut-once philosophy when possible.

If you’re anything like me, the habits and thought patterns developed at work, leak into your daily life. A friend of mine recently described his habits as ‘ticks’ that may never go away… and while they don’t inhibit his daily life, they are clearly present. Just like me, he’s been rewarded overtime for those habits he’s developed at work, further ingraining them into his default behavior patterns. Obviously, this can be good or bad.

One of the things I’ve definitely taken note of recently, is that this approach of over-analyzing a problem, to ensure I’m on the right path, before taking a single step forward… is not always a good thing in the rest of my daily life. I think back to spending countless hours analyzing and research anything I’d like to start or change in my life; and many times, I do all of this without ever actually getting started! Clearly I’ve been taking this to far, but what should I do instead?

Stop overthinking. I know, I know… this is easier said than done for some of us; however, I’ve found it to be an extremely important component in getting things done. I came across a video from Jacko Willink recently, and it was so simple and yet so enlightening at the same time. The concept he explains in this video is to simply do, and stop thinking about the how. I’ve included that video here, and I’d urge you to watch it now.

While I do understand this approach does not make sense in every instance, I truly believe that most of the day-to-day things we need to get done simply do not warrant the amount of thought and importance we tend to give them.

Boiling it all down, unless there’s a very good reason to apply more thought and planning to something… just go do it. Continue investigating and analyzing, but use those skills to evolve the actions you’re taking, and not to get started in the first place. You don’t need a perfect plan for most things in life, and you won’t be able to find out what’s best for you without gaining valuable experience in doing the task anyway.

Start today. Start now.

 

Integrity is Invaluable

Yesterday I was putting away some laundry and noticed something interesting about my behavior that really made me start to think. There I was, pairing up some socks and putting them away in my drawer… when I realized that even though I had already come up with a system for organizing and storing my socks, I was actively choosing to do it a lazier and less organized way. I had two different methods setup for organizing my socks:

  1. My fancy work socks get folded as pairs and stored so I can easily identify the colors/patterns on them to best match my outfit. These have their own drawer, and this saves me from having to dig through a pile of socks to find a matching sock or the specific pair I was hoping to wear!I recently look this photo of my socks because I had them all laid out and realized I may have a problem…

    Guys, seriously I can stop anytime I want…
  2. My normal ankle socks, which I wear for more active things, get rolled together and tossed in a separate drawer which needs significantly less organization.

Unexpectedly enough, this whole realization happened while putting away the plain socks and not the fancy pairs! (which as you can see, definite take more effort) All I needed to do was to roll them together and toss them into the drawer… and I found myself opting to drop individual socks into the drawer to avoid the small amount of additional work required to roll each pair together first. At this point I took a moment to be introspective (one of my favorite pastimes) and realized that what I was lacking was ethical integrity.

From Wikipedia:

Integrity is the quality of being honest and having strong moral principles, or moral uprightness. It is generally a personal choice to hold oneself to consistent moral and ethical standards. In ethicsintegrity is regarded as the honesty and truthfulness or accuracy of one’s actions.

Now… I know how overblown and hyperbolic this diagnosis seems given the fact that it was literally only putting socks away; really, I do. However, if I cannot trust myself to follow the tiny system I created for myself in order to organize my sock drawer, how can I possibly be expected to manage much larger things like finances, relationships, and adulting in general? I feel that I am very good at maintaining a high level of integrity when I look at political and social issues; however, I have identified a clear lack of this quality within my daily life and especially when doing things for myself. This has to change… but how?

I’ve been feeling a little depressed lately, and something that I try to do, in order to get through these times, is to slow down and focus on doing the little day to day things that will keep my life moving forward, rather than digging myself into a hole and needing to eventually claw my way out of it. I was definitely more focused on doing chores like making sure that laundry basket didn’t get piled too high, and that extra focus led me to notice the corners I was cutting in even the most simplest of tasks. With that in mind, here’s how I’ve decided to go about tackling this issue:

I have a tendency of taking on far too much at once. When I’m feeling positive, I will weigh myself down by setting up a schedule that doesn’t even leave me spare seconds to breath (and also vastly underestimate the time required for most things). To counter-act this, I’ve decided that until the important items I’ve identified are more habitual, I need to focus as much as possible on those core issues. Knowing your limits and setting yourself up for success means taking on only as much as you can properly execute.

One habit I’ve developed is very quickly burning through to-do items, but not necessarily focusing on doing each of them properly. Wanting to create a better foundation of behavior for myself, so that I can continue to develop my will-power and integrity, I have come to the conclusion that I need to truly focus on execution. Doing the right thing, even during a seemingly meaningless task, is invaluable.

Just like with imposter syndrome, it can be very easy to overlook your own improvement and accomplishments. I have recognized that I am not taking the small amount of time it would take to look back each day and identify the things I feel I’ve done well, to just appreciate the effort I’ve put in or acknowledge the integrity behind wholly executing on each task. Momentum and motivation is created when you can look back at your work and be proud of what you’ve done.

In summary:

  1. Do Less – Knowing your limits and setting yourself up for success means taking on only as much as you can properly execute.
  2. Execute – Doing the right thing, even during a seemingly meaningless task, is invaluable.
  3. Be Proud – Momentum and motivation are created when you can look back at your work and be proud of what you’ve done.

 

Thanks for reading, and I’m glad to be back!

The Importance of Rebuilding

One of my nerdier interests is Runescape. Every since Old School Runescape has been re-released, I’ve loved watching twitch streams featuring the game. It’s amazing to watch thousands of people gather around and watch a game I spent so many hours on when I was younger.  Don’t worry, this is relevant…

Every now and again, even the most popular streamers get “cleaned” meaning they have lost all their entire bank and are now starting over. They generally proudly exclaim to the chat “It’s time to rebuild, boys!”

Well, dealing with anxiety and depression, sometimes I have to spend a ton of energy doing normal day-to-day activities and there’s not much left to keep pushing on studying, networking, etc. I spent a couple months in a bit of a lull, and lost some of my drive to write this blog and continue to study… but:

It’s time to rebuild, boys!

For the last couple weeks, I’ve adjusted some medication and come out feeling better than ever. I started a project of relaunching a YouTube channel that me and a buddy used to run…  TheCreepypastaDuo. It’s a simple narration channel for Creepypasta stories posted online. We used it in the past to develop some skills in voice/instrument/sound effect recording, music composition, and marketing. It’s even more recently led to a paid voice over gig!

After restarting the YouTube channel, I wanted to rebuild it’s companion site, CreepypastaChamber. Riding the energy and excitement of rejoining the Creepypasta community, I decided this was the perfect outlet to really start putting some of my new development knowledge to the test.

I set out with the following goals in mind:

  • Setup a couple linode boxes from scratch (simple LAMP servers)
  • Use a headless WordPress instance as the backend
  • Create a React frontend that consumes the WordPress REST API

As things usually go, the scope and goals quickly expanded to:

  • Migrate everything to AWS
    • Serve the WordPress API from an EC2 instance
      • Make sure this is very secure: https://www.ssllabs.com/ssltest/analyze.html?d=api.creepypastachamber.com&hideResults=on&latest
    • Serve the static React build from S3/CloudFront
    • Utilize Route 53 for all DNS configurations
    • Utilize the free SSL service provided by AWS Certificate Manager
  • Figure out how to use Google Analytics within the SPA
  • Make sure the entire site works as a PWA (progressive web app)
  • Create dynamic page titles
  • Create custom post types for stories and narrations, allowing them to be linked together
  • And a huge backlog of other items

I’ve had some serious success burning through these items… even though not all of them had the best tutorials available. Because of this, I’ve decided that I’m going to document the entire process, and create tutorials related to each of these items in a full series about how to create a similar site and launch it to AWS including security configurations, SSL setup, steps to create a PWA even when using runtime caching to store external resources such as api calls and google fonts.

Tonight I hit a milestone of getting 100% in the lighthouse PWA audit and officially being able to download my first PWA to my phone!

 

Your Habits Determine Your Path

Habits are interesting. I’ve spent a lot of time recently investigating my own habits. Trying to decide which I’d like to add, which I’d like to ditch, and I’ve been really surprised going through this exercise. I think everyone here knows what habits are, but I feel like there are some details that are often overlooked:

  1. Habits can be positive or negative.
  2. huge portion of your day is habitual and auto-pilot.
  3. Some habits are passive while others are on purpose.

The obvious negative habits are smoking, drugs, etc. But how much of your day to day routine is simply not helping you? I recently did an analysis of my spending in order to determine how much I was spending eating out. I fell into a routine of eating out quite often, and I was worried I was spending entirely too much… and I was right. In the last month, I’ve spent nearly $750 eating out! Ridiculously wasteful, embarrassing, and finding this out made me feel incredibly stupid. But it doesn’t have to be anything as big as this.

Think about some of the auto-pilot activities you take part in each day. What about unwinding after a day at work? Do you have a beer? A typical beer will have 150 calories. If you have one beer per work day (5 per week), you will have consumed 3,000 calories in just a single month, and 36,000 over the course of a year (the math is just an estimate, calm down!). 36,000 calories is over 10 pounds worth of calories. Which means if you are not burning those extra 150 calories, on average, each day… over the course of 10 years you would gain 100 pounds. It is mind-blowing the effect that one little habit can have on your life.

Many habits are developed out of necessity or due to circumstance. Think about how you drive to work. You’re probably not making much of an active decision each day when you’re on your way to work about which route to take (unless traffic forces your hand). How about the way you lift your groceries out of the car? How much water you drink per day? Bite your nails? The list goes on and on. I like to call these accidental habits that sort of sneak into your daily life. Most of the time, you don’t even notice until there’s a big problem… like gaining 50 pounds over 5 years.

What I am beginning to focus on, and I challenge you to do the same, are the habits that you form on purpose. Are you brushing and flossing everyday? How about washing your face? Eating out too much? Studying? Taking time to read, write, network, and workout every… single… day? Okay, I’ll admit, this is a small portion of my own list; but it does illustrate the point and offer some examples.

You’re on a path, which is based on your daily habits. Time doesn’t stop; you will be someone or somewhere new in 2 years whether you like it or not. Try to think ahead and determine: Are you happy with where you’re headed? If not, you need to start developing the habits, on purpose, that will lead you to where you really want to go.

Balance and Burnout

I’ve been making some really great progress on my React side project lately! I’ve spent a ridiculous amount in the last week hacking away at things that were way over my head… having both breakdowns and breakthroughs along the way, haha. It definitely came with moments of very strong imposter syndrome.  The stress of failing over and over (which is just part of development) before a success can be exhausting. There’s definitely only so long that I can go 100% before I really start to feel burnout.

But how do I combat burnout?

I’m glad you asked! DO SOMETHING ELSE! Seriously, that’s it. You need to do something different. You need to do something active. You need to step away from the thing that’s causing the burnout and decompress. The same is true with music for me: I have a tendency to listen to songs I love over and over until I hate them.  If you really want to get somewhere long term in your career, you need to find the right balance for you and your goals.

The real key word here is balance. Too little work? You’ll fall behind in your career or never really get started. Too much? You’ll go far quickly and then hate it so much that you’ll swap careers; which would make it all a waste of time.

So what else should I do?

For me, I like to activate my other learning styles. This helps create enough of separation in my brain that it forces me to turn off the others for a bit, allowing me to recharge. So make sure that I balance the very visual or auditory learning, which I use when learning new development techniques, with some heavy kinesthetic activities.

For me, the kinesthetic list tends to be:

  1. Swing Dancing
  2. Hiking
  3. Rock Climbing
  4. Grappling

Obviously you need to find what works for you… but there are zero negatives from getting and staying in shape, so I recommend something that helps you get into a meditative space by being physically exhausting.

Hopefully this helps you get rid of your own burnout. Good luck!

 

Imposter Syndrome

I have always felt it’s good to try and analyze a situation; to understand cause and effect. So when I recently hit a wall and finally figured out a way over the hump, I spent some time really picking it apart.

So what created this passion in me that has caused me to pursue a deeper understanding of JS? What sparked the drive for me to begin reaching out and start the process building a network? How did I finally connect with these ridiculously intelligent, and successful, UI engineers that can help guide me through this process? 8 years later, I’m finally taking these steps and what can I thank? Imposter syndrome.

For those who are unfamiliar, imposter syndrome describes the feeling that you don’t know enough; that you’re not good enough. That you don’t deserve to be in your current position; that you don’t deserve the promotion. It’s a self doubt that is largely driven by the fact that there is simply too much to learn. There’s some truth there; but the fact is, your goalposts are moving.

When I needed to begin looking for a job, because the startup I was involved with was not going to be able to consistently pay me, I had a bit of a shock. I had grown extremely confident and comfortable in my development abilities… but I was passed up for several developer positions. Why? What was wrong? I’ve learned new technologies; taken on new responsibilities. I’ve spent countless hours hacking away, pushing through frustration in my free time. I couldn’t understand why I wasn’t more sought after.

What is simply the algorithm questions during the interviews? Was I not specialized enough? Who knows… cue imposter syndrome. The difference, this time, was my ability to use this horrible feeling to create a fire within myself. A fire and drive to get the job I’ve always wanted. A desire to finally be the developer I know I can, and should, be.

Those who know me personally know that I’ve struggled with anxiety and depression throughout most of my adult life. It took many years to really find a solution that helps me cope and feel in control of my own emotions. Aside from diet and exercise, the thing that has had the largest impact for me is cognitive behavioral therapy (CBT). It’s truly amazing how this technique has helped me pick apart, dig into, and really understand my own imposter syndrome.

I highly recommend that anyone struggling with imposter syndrome, look into CBT as a potential solution. Not only will this help your emotional intelligence and ability to calmly and efficiently deal with imposter syndrome, but also your every day thoughts and interactions.

I did manage to land a job in technical project management… but more to come on that later!

 

Hello World!

Tonight while sitting in a coffee shop and stressing about my career (a common past-time of mine recently), I read a suggestion to start a blog and catalog my journey as a developer.

This is the suggestion I received:

…In the process create a simple blog and write a few articles about stuff that you learned during whole process…

The mystery man behind this comment, which spawned this blog, and much more detail about the journey I’ve taken to get to this point will be revealed in later posts.

For now, I’d like to document what I’ve done this evening as a first step:

  1. Purchased a new domain for my personal blog/resume/portfolio site.
  2. Added a server to my linode account (Yay $7.00 more per month).
  3. Installed LAMP and updated permissions as needed.
  4. Configured a vhost for this site so I can host multiple projects from this server.
  5. Setup the DNS.
  6. Installed WordPress.
  7. Created this post (so meta).

Almost as quickly as I said hello, I will now say:

Goodnight world!