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.
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:
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, so that I can get notified of security vulnerabilities in my GitHub projects. I have over 100 repos on my GitHub profile, 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.
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 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.
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.
Top comments (6)
I feel you. The Javascript lib part is especially tiring if there's more than one person involved
A way to counter it, especially with your own projects, is to satisfice. Set yourself a level of 'done' for a project which you can live with - and then leave it be. I mean:
Please don't get me wrong with the following statement - but do you really need this stuff? Does it offer any additional benefit for the user? Is the time you spend doing it going to save opportunity cost for somebody else ( dev, user, admin, tester, ... )?
If not, scrap it for good and focus on enhancements that add value to your product.
It's a big shot, and adaption to it takes time, but try and give the Getting Things Done approach a try. The book and the methods presented are definitely worth reading imo.
Thanks for your comment.
Yes some of the issues are really minor and maybe I'm not sure how to do them or whether to do them.
So I focus my time on what makes notable difference to my enjoyment of using the tool or fixing something that annoys me every time I use it. I can be more deliberate about that.
My manager actually recommended I schedule a time to groom my own issues, like we have agile grooming at work. Then I can close issues that no longer matter or I can prioritize which ones to do first. GitHub lets you pin 4 issues in a project, so I like that for focus.
I like your comment on thinking how a task benefits another user. If something has few stars, then few people are really affected by the quality of project or how many things are done. So I should choose which projects and tasks make sense.
Thanks I'll have a look at Getting Things Done.
I feel same way sometimes. Here are some ideas based off of my experience.
FYI you can input a negative weight on the dev.to tags you don't want to see. I've excluded all articles tagged #begginer tag like that, for instance. It helped a bit.
Oh thanks. I like adding it an using 0.01 or actually a negative value?
A negative value. Those tags will never appear again.