Code fatigue - frustrations
Tags: anxiety, mentalhealth, javascript, stress
Published: 2021-01-01 15:09:08

I hope you can relate to the struggles here. 

Maybe you have some encouraging words for me, or some ideas to change my mindset or priorities. So we can keep each other less anxious.

## Overwhelming feeds

I subscribe to updates from couple of tech sites. These easily get too much - instead of leaving updates unread and then feeling burdened, I sometimes unsubscribe. I can go and visit the sites if and when I need to catch up. 

Or I let go of the idea of reading everything - rather focusing on getting the most out of a few posts.

The quality and relevance of the recommended posts I get is a mix of great and poor. The poor ones are annoying to sift through. When the they are great, I end up slowing down my devices because I open tabs to read, but often don't get to read the article. Or I end up with starred mails or bookmarked tabs that I might get to... one day.

Yesterday I got **five** Dev Digest mails from _dev.to_ on recent posts and another today. All with the same subject line - I hope that was a bug on their side.

![Gmail screenshot](https://dev-to-uploads.s3.amazonaws.com/i/y9u00ln9ixshv3e76hnx.png)

Anyway, I have unsubscribed from this now:

- _Send me a periodic digest of top posts from my tags_.

I just discovered I can adjust the weighting of topics in my dev.to feed:

- https://dev.to/dashboard/following_tags

I get too many regular mails from blog platforms like Medium.com, Hashnode, Hackernoon. Again, I like the content but it gets overwhelming in my inbox.

Plus I get mails from Digital Ocean, FaunaDB, StackOverflow, Daily Coding Problem.... 

I unsubscribed from AWS because they send weekly mails on conferences and it gets too much.

I removed some subscribed topics from my Dev.to feed so I can get more Python articles and fewer JavaScript or beginner articles.

## Package management

I use GitHub's Dependabot and sometimes also [Snyk](https://snyk.io), so that I can get notified of security vulnerabilities in my GitHub projects. I have over 100 repos on my [GitHub profile](https://github.com/MichaelCurrin?tab=repositories), mostly original. 

So this means that about every week, at least one of my projects has some insecure packages. Especially in JavaScript projects where it is common to have 1000 dependencies in a project and to have dependencies to be nested many levels down. Here is vulnerability message I got for `cache-base@1.0.1`, which goes 5 levels below the Next.js package (which is already at the latest version).

```
next-quickstart@0.3.0 › next@10.0.4 › webpack@4.44.1 › micromatch@3.1.10 › snapdragon@0.8.2 › base@0.11.2 › cache-base@1.0.1
Remediation: No remediation path available.
```

In fact, that vulnerable version of `cache-base@1.0.1` appears in about 15 dependency paths.

Here is a longer one for the same alert - this is 12 levels below Next.js package:

```
next-quickstart@0.3.0 › next@10.0.4 › webpack@4.44.1 › watchpack@1.7.5 › watchpack-chokidar2@2.0.1 › chokidar@2.1.8 › readdirp@2.2.1 › micromatch@3.1.10 › extglob@2.0.4 › expand-brackets@2.1.4 › snapdragon@0.8.2 › base@0.11.2 › cache-base@1.0.1 
```

Sometimes it is automated to apply a fix, sometimes it takes more effort. Sometimes there is no solution available yet like above, which leaves me feeling helpless and I have to shrug it off.


## JavaScript frustrations

I write and read about JavaScript almost daily. I often find there are surprising quirks about the language and ecosystem that I don't have to worry about in other languages.

Some phrases I bet you can relate to are "callback hell", "promise hell" and "Javascript fatigue" (I believe the last one deals with learning and switching between so many libraries). Some months ago I wrote out my frustrations (with code samples) [here](https://github.com/MichaelCurrin/learn-to-code/blob/master/en/topics/scripting_languages/JavaScript/frustrations.md).

I'm glad to have tools like Vue's `build` command tell me the size of my output files. But even on a fresh [Vue quickstart project](https://github.com/MichaelCurrin/vue-quickstart) made of just boilerplate Vue code, it warns me that the output file sizes are too large. I don't know if anything I do in a larger project can bring that down below the warning level. 

Or I have to do reading on to how to optimize my bundling, minifying and chunking... and I might not solve the issue.

## The endless todo list

This is something I have to come to terms with again. I sometimes feel optimistically that I can spread my time between my favorite existing projects and make new ones. And that adding features is quick and fun. 

And other times I spend most of my evening after work or a weekend is trying to add just a single feature to just one project. 

And I have to troubleshoot a lot of bugs on the way. Especially annoying when using a language or library I am new to.

And when I finally get the feature out, I have `TODO` items in the code, or I've added issues for myself on GitHub to come back to when I have more time and energy to refactor to code / add a feature / fix a bug.

One of my favorite projects is a markdown badge generator which I started 12 months ago. I now have over 60 open issues (all by me). I don't know if I'll ever get to them, which feel like a burden, or I have to forget some.

- https://github.com/MichaelCurrin/badge-generator

I do find that issues help me organize my thoughts over a long time including with links and screenshots.

I love coding and that's why it's my career. But when coding on work and personal projects, I feel like I am slaying the  task head of a many-headed hydra, which then spawns two more tasks in its place.

The endless todo list is not just in tech, it is probably any career. Plus our personal and admin todo lists.