Scott Nonnenberg

A blog about software development and geekery of all kinds.

Popular Posts - Tags - RSS - Atom - About Me

I won't share your email with anyone. See previous emails.

Better docs and static analysis Dec 06

Welcome to the third post in my stack improvements series! This time we’ll be talking about Flow, a static analysis tool which can improve your Javascript development no matter your choice of framework or platform. Read more »

Be a scientist (Dev productivity tip #3) Nov 29

I’ve been told that I’m a very productive developer. And it’s not magic! Welcome to number three of my my developer productivity tips: Be a scientist.

Scientists are curious, always learning, creative, and they know that they don’t know everything. Let’s talk about how you can be more like a scientist in your software development. Read more »

Web application test strategy Nov 16

I’m a huge fan of TDD, and I definitely track code coverage for my projects. But I’ve previously said that focusing on 100% code coverage is a bad idea. And teams frequently focus testing effort on what is easily automatable, instead of what is important. So what is the right way to test a web application? Let’s dig in… Read more »

Fear of the subjective Nov 08

There’s been a lot of controversy this year over issues like gay marriage, transgender rights, and even trigger warnings. Aside from the standard morality vs. individual rights narrative, I think there’s another theme tying all of these together: Fear of the subjective. Fear of that unique, individual experience we each have, and desire for some objective standard code. Read more »

Breaking other servers with Node.js Nov 01

If Node.js is good at anything, it’s efficient use of local resources in the face of substantial parallelization. It’s easy to write a Node.js program which has many, many different things going on at once: requesting from or writing to the filesystem, some sort of database, or an API. But not everything on the internet can handle that level of parallelization so easily.

We’ve already learned about the Node.js event loop by breaking it. Now let’s use the same techniques to learn about how to be a good citizen of the internet. Break it to learn it! Read more »

Focus (Dev productivity tip #2) Oct 25

I’ve been told that I’m a very productive developer. And I’m sharing my techniques. Welcome to number two of my developer productivity tips: Focus. Context-switching always has a cost, but it’s far... Read more »

The technology side of agile Oct 18

I’ve already written about why Agile is interesting in the first place, and how you might customize its application for your team. The hard truth is that you can’t become Agile overnight. People need... Read more »

Better async Redux, i18n, and Node.js versions Oct 11

It’s time for another edition of recent stack improvements! This time we’re primarily focused on React and Redux. But if you use Node.js at all, my comparison of Node.js version managers should be... Read more »

Systems for collaboration Oct 04

A good workplace is a welcoming space for everyone, encourages open collaboration, and enables everyone to do their best work. Let’s talk about some of the techniques for collaboration I’ve learned in... Read more »

Breaking the Node.js event loop Sep 27

Asynchronous programming is difficult to wrap your mind around: threads, semaphores, and deadlocks, oh my! On one hand, Node.js makes this a whole lot easier: no locking or mid-execution... Read more »

Contract: An unusual skillset Sep 20
Understand the problem (Dev productivity tip #1) Sep 13
Modern evidence requirements Aug 03
Hands-on with CircleCI and Node.js Jul 25
Better changelogs, strings, and paths Jul 19
Private Node.js modules: A journey Jul 12
This blog is now open source! Jul 05
Notate: Better Javascript callstacks Jun 28
Carrots, not sticks Jun 23
ESLint Part 3: Analysis Jun 21
ESLint Part 2: Contribution Jun 16
ESLint Part 1: Exploration Jun 14
Customizing Agile Jun 07
Contract: New techniques, old technology May 31
Avoid these abused words May 24
From tech person to people person May 17
A functional distinction May 10
The state of thehelp May 03
Contract: React Training Apr 26
Practical Gatsby.js Apr 21
Static site generation with Gatsby.js Apr 19
Feeling the Bern Apr 14
Star Wars Cards! Mar 10
My 2016 Mantras Mar 06
P for Postgres (NERP stack part 4) Feb 22
R for React (NERP stack part 3) Feb 15
E for Express (NERP stack part 2) Feb 08
A 35lb weight swing in two years Feb 03
N for Node.js (NERP stack part 1) Feb 01
A modest async proposal Jan 25
Open Source and Feelings: The Challenge Jan 19
A running update Jan 19
Systems and Incentives Jan 14
Enterprise Node.js/Javascript Difficulties Jan 13
The trouble with promises Jan 12
The Why of Agile Jan 12
Four books for greater understanding Jan 08
Open Source and Feelings: The Awesome Jan 06
Contract: Teaching! 2015 Oct 09
The dangerous cliffs of Node.js 2015 Feb 11
A system for 2015 2015 Feb 06
Hippie Experiments 2014 Dec 17
Node.js is not magical 2014 Dec 09
The Last Year 2014 Oct 02
Autumn Associations 2014 Sep 25
Learning limits: post-injury running 2014 Sep 18
Antidotes for antiskills 2014 Sep 12
Cycling, Computers, and Posture 2014 Sep 04
Woot Shirts! 2014 Aug 29
Injury, identity, and non-attachment 2014 Aug 22
Introversion 2014 Feb 24
Resolutions (and Systems) 2014 Feb 10
How not to do customer service: Credit card edition 2013 Oct 07
My Standard Breakfast 2013 Sep 30
Why I left LIFFFT 2013 Sep 16
12 things I learned from Microsoft 2013 Mar 17
Don't let this happen to you - lessons from a failed side project 2013 Feb 20

It's me!
Hi, I'm Scott. I've been in software a long time, and during most of that time I have worked to bridge the people/tech divide. Contact me if your company needs training, coding, or just an experienced outside perspective!