Uncomfortable and Unsatisfied

I want to build a small website. Django feels a bit heavy for what I want to do, and I would like to give node more of an honest shot for building websites. I need to store some user data (name, email, notification settings). Also I need to store some topics and opinions on those topics. I’d like my users to be able to log in using Mozilla Persona.

The first thing that pops up when one goes to do websites using node is Express. You start using it, maybe asking a couple questions, and you find out noisy parts of the node world hate express and think you should use something else. Unfortunately, they may list one or two alternatives, likely those are things they wrote themselves or a friend of theirs wrote. They are probably especially young, which means there is unlikely to be drop in support for anything.

Once you get past that part, you are told there isn’t support for the 10 things you actually wanted to do, but don’t worry there are 100 modules for each of those things. You’ll have to learn everything about the web package you are using, as well as the packages you want to glue together, praying there is some sort of common api. Sorry though, this one is streams based, but not those streams you are used to, you have to write a compatibility layer. And this one isn’t stream based but doesn’t like the request object you handed it, etc etc.

I get that a lot of this is a matter of comfort. I feel better in django/python because I’ve been here for a long time. I know what modules are good and which ones to avoid. Maybe, if I can get over this uncomfortable feeling, I can make something satisfying. As it stands though, I am unable to find anything that makes me happy when it comes to building websites in node.

Consistency

I recently got my anonymous peer feedback at work. None of the negatives were surprising, though the positives were pretty uplifting. Shortly after I got that feedback, I read a blog post on things a person wished she knew earlier in her career.

Reliable is better than brilliant… After observing many of these individuals in action, I’ve realized that the output of hard, reliable, focused work over time, while less glamorous, always outweighs the value of short, ego-centric storms of genius.”

Shanley

That hits on a point that was made in a couple of my pieces of feedback. I am an extraordinarily inconsistent co-worker. Some weeks I am on and I close a bunch of bugs and get a bunch of patches in. Other weeks I am off and I close as few as 0 bugs. It is easy to go, “Well some bugs and projects are larger than others, that is why that happens.”

If I were to be honest, it is more about being distracted and/or burnt out. Leechblock has helped out a bit in that regard, but I still find other ways to be distracted, such as hanging out on IRC and compulsively checking all the messages that come in on my 30+ channel. Or maybe I tell myself I’ll just play a single level of a game, or read a single chapter of a book, but then I don’t have the self control to hold myself to that.

Now, I don’t have the answers as to how I am going to fix this, but I have started adding more tools to my repertoire. I wrote a script/webapp I have running locally that will tell me how many bugs I’ve closed per milestone. This way I can get a real feel for how inconsistent I am being, if I get a couple days in, and I am still lower than I’d like to be, I may shift gears and crank out a couple smaller bugs to get the brain juices flowing again.

My manager has provided me with some averages for the team, so I know where I should be myself. On top of that, he is very receptive to any ideas I have and wants to work with me to make stuff better. Part of dealing with flaws (especially ones that lead to anxiety like this one does for me) is admitting to it and then talking it through with people you trust.

If you have gone through this, or helped friends/co-workers in being more consistent, I am very interested in talking to you. xwraithanx on gmail, wraithan on irc.freenode.net and irc.mozilla.org, or any other way you happen to find for contacting me.