All Long Form Articles

2023-01-13: 3 Pillars For Effective Work There are 3 primary reasons why one human may be more effective than another in a given work …

2023-01-03: 2022 Books I read 13 “work related” books in 20221. They’re broken up by category below. I …

2022-12-17: Blog Updates: New name, new platform I’ve been working for the past month on some updates to this site designed to make it easier …

2022-01-24: Mental Models For Managing Change This article was first published in my newsletter, Herding Lions At this point I’ve spent the large …

2022-01-10: More Thoughts On Time This article was first published in my newsletter, Herding Lions In my last post I listed some …

2021-12-13: How I Think About Time This article was first published in my newsletter, Herding Lions One of the biggest challenges every …

2021-11-29: Values Are How You Scale Culture This article was first published in my newsletter, Herding Lions I recently had the pleasure of …

2021-11-14: Strategies For Building Team Resilience This article was first published in my newsletter, Herding Lions In Thinking In Systems Donella …

2021-11-02: Good Meetings Are Designed Not Born This article was first published in my newsletter, Herding Lions There’s something deeply human …

2021-10-26: New Newsletter: Herding Lions This blog has always been a bit of an eclectic assortment of topics that have reflected my shifting …

2021-10-20: Thinking Fast & Slow: Lessons For Managers I recently read Thinking Fast & Slow by Daniel Kahneman, and it was my favorite read of this …

2021-09-22: Kustomer Is Hiring 👋 Hi There! It’s been a bit of a quiet year on the blog as I’ve been figuring out life …

2021-03-06: Engineering Management: How To Give Feedback I’m currently taking some time away from my job on parental leave, and it seemed like a good …

2021-02-25: Engineering Management: How To Delegate I’m currently taking some time away from my job on parental leave, and it seemed like a good …

2021-02-22: Engineering Management: Handling Accountability I’m currently taking some time away from my job on parental leave, and it seemed like a good …

2021-02-20: Engineering Management: Choosing What To Work On I’m currently taking some time away from my job on parental leave, and it seemed like a good …

2021-02-17: Engineering Management: What do EMs do anyway? I’m currently taking some time away from my job on parental leave, and it seemed like a good …

2021-01-18: Driving Change Without Authority I recently had a conversation with a coworker where they mentioned that they didn’t feel like …

2020-12-31: Play Other Positions! This fall ESPN published an article about Steelers QB Ben Roethlisberger’s high school stint …

2020-12-29: 2020 Roundup 2020 was the 7th full year of this blog, and it was by far the quietest in terms of output. For …

2020-09-04: How Teams Go Faster I recently discovered John Cutler’s Twitter and blog. Everything I’ve read from him so …

2020-08-30: Simple Burnout Triage I have a one question triage process when I’m concerned that I or one of my teammates is headed …

2020-08-22: Better than a wild guess I’m currently reading Doublas Hubbard’s How To Measure Anything and it is driving home a …

2020-07-24: The Management Resources I Keep Coming Back To Although I don’t read Hacker News much these days, I do subscribe to a newsletter that rounds …

2019-12-31: Fun with Ascii: Putting some console art on my site I’ve always enjoyed sites that had easter eggs in their consoles, whether they’re simple and …

2019-12-30: 2019 Roundup 2019 was the 6th full year of this blog, and it was a bit up and down posting wise. For the first …

2019-12-17: How Software Engineers Produce Value I had the opportunity this week to walk a software engineer who is new to the field through some …

2019-07-21: Book Review: Resilient Management Resilient Management by Lara Hogan is a short and useful read for engineering managers who want to …

2019-06-23: Avoiding Derived State In React A lot of advice in the React community is focused around avoiding explicitly storing “derived …

2019-06-16: Lessons From Managing A Distributed Team Working with people over the internet is different from meeting in an office five days a week. This …

2019-06-11: Book Review: The Manager's Path Titles in the software engineering world are strange. Without much work, it’s easy to find …

2019-06-02: Thinking About Values As a way to help myself grow in my first year as a manager, I’ve been working through Google’s New …

2019-05-26: Herding Lions I used to find myself using the term “herding cats” a lot when confronting inertia, …

2019-05-17: Obvious Things I saw a tweet thread a few weeks ago that made me think: There’s a bit of a meme in some parts that …

2019-04-21: How To Get Better Feedback On Your Code Deliberate practice is when your attention is focused tightly on a specific skill you’re trying to …

2019-04-14: Ten Soft Skills That Will Shape Your Career One of the most popular posts in the history of my blog was a list with the click-baity name Ten …

2019-03-31: Consistency The last few weeks I’ve had several conversations with a coworker about consistency in code: …

2019-03-24: Lessons from Six Months As A Manager/Developer Hybrid For the last 6 months I’ve been serving as a hybrid developer/engineering manager. It’s …

2019-03-10: Utility Functions As I’ve gone through projects over time, I’ve found a few functions that I end up …

2019-03-08: Book Review: Deep Work & The Common Rule I’m trying something different today. This is a review of 2 books I’ve read recently; …

2019-03-01: The Importance of Writing For Software Developers Once somebody hits a minimum threshold of technical skill to hold a job in the industry, about 80% …

2019-02-17: Strategic Coding I recently read A Philosophy Of Software Design by John Ousterhout. In an early chapter he paints a …

2019-02-10: Reusable Code In React: Inheritance, Composition, Decorators and Mixins Once you get past the initial complexity it creates by bucking conventions, React is the most …

2019-01-29: Book Review: Info We Trust Sometimes surprises are good. I bought RJ Andrews new book Info We Trust expecting to get some …

2019-01-27: Improving Code Readability With Async/Await When it first became a part of JavaScript, I wasn’t sure how much I was going to use …

2019-01-20: Designing Front End Apps For Reliability In my recent post on Front End Architecture I identified Reliability as a key concern of front end …

2019-01-13: 6 Keys To Valuable Code Reviews I’ve read 2 things lately that really reminded me of the value of code reviews. One was A …

2019-01-06: What's involved in Front End Architecture? The word “architecture” gets thrown around a lot in software discussions. But we …

2018-12-31: Book Review: Radical Candor Have you ever read a non-fiction book that you just couldn’t put down because you kept hitting …

2018-12-30: Book Review: A Philosophy of Software Design A lot of the software books out there these days are marching towards their expiration dates the day …

2018-11-02: Want to work with me? Hey all. The blog is still on pause, but I wanted to take a moment to share that I’m hiring …

2018-10-12: Pressing Pause Due to a plethora of life events happening this year, I’m going to be putting the blog on …

2018-09-29: Weekly Links: September 30 Javascript & the Web Principles of Component API Design | Chris Schmitz Good advice for …

2018-09-22: Weekly Links: September 23 Javascript & the Web The Rise of Immer | Shawn Wang I’m a few weeks late on this one, but …

2018-09-15: Weekly Links: September 16 Javascript & the Web The 12 Things You Need to Consider When Evaluating Any New JavaScript …

2018-09-06: Weekly Links: September 7 JavaScript And The Web State of JS Survey | Raphaël Benitte, Sacha Greif & Michael Rambeau This …

2018-08-31: Weekly Links: September 1 JavaScript And The Web Reverse Engineering React | Angular In Depth A really cool look at how you …

2018-08-17: Weekly Links: August 18th JavaScript and the Web Bits | Ethan Marcotte I’ll pretty much always link performance posts …

2018-08-04: Weekly Links: August 5th JavaScript and the Web The Cost Of JavaScript in 2018 | Addy Osmani This was a great breakdown of …

2018-08-01: Feedback Loops How do we get better faster? It’s amazing to consider the amount of money, thought and effort …

2018-07-27: Weekly Links: July 28th JavaScript and the Web Getting to Know a Legacy Codebase Harry Roberts I like this advice on …

2018-07-19: Weekly Links: July 20th JavaScript and the Web Building the Google Photos Web UI | Antin Harasymiv An amazing detail-laden …

2018-07-16: Quick Tip: Logging In Breakpoints Stop me if this sounds familiar: you see a bug on your site. You want to know what’s going on. …

2018-07-14: Prime Generation Revisited I’ve been wanting to try learning a new programming language again for a while, and this …

2018-07-12: Weekly Links: July 13th JavaScript and the Web What is JSX? | Kent C Dodds If you were introduced to React “all at …

2018-07-08: Book Review: The Five Dysfunctions of a Team The nice thing about team books is that they’re talking about a subject that almost everybody …

2018-07-07: Weekly Links: July 8th A small list this week as it’s a holiday in the states. So fewer articles out there, and …

2018-07-03: Evil JavaScript JavaScript developers sometimes complain that their language is unjustly maligned for having too …

2018-07-01: Book Review: Atomic Design The Unix philosophy for designing software, “Make each program do one thing well”, is a …

2018-06-29: Weekly Links: June 30th JavaScript & The Web Headless User Interface | Merrick Christensen UI mixins are one of the …

2018-06-25: JavaScript “Stale Practices” Best practices don’t last forever. This is especially true when a field is changing fast, and …

2018-06-22: Weekly Links: June 23rd JavaScript & The Web Announcing Gatsby v2 beta launch! | GatsbyJS Gatsby continues to be one of …

2018-06-19: Code Golf: Sparse Arrays Today on Twitter, Axel Rauschmayer posted a fun little coding challenge: Code golf: check if an …

2018-06-17: A Codemod Survival Guide Do you like making repetitive syntax updates across many files? Enjoy the thrill of painstakingly …

2018-06-14: Weekly Links: June 15th JavaScript & The Web GraphQL Stack This is a nice overview of the technologies involved with …

2018-06-09: Weekly Links: June 10th JavaScript & The Web The React is “just” JavaScript Myth | Dave Rupert I’ve been thinking …

2018-06-04: ES6: The Bad Parts This month is the 3 year anniversary of the ECMAScript2015 spec, better known as ES6. It was a spec …

2018-06-02: Weekly Links: June 3rd JavaScript & The Web New in Chrome 67 - Desktop PWAs | Google Developers Google has a new …

2018-05-26: Weekly Links: May 27th Business & Technology Gatsby contributors form Gatsby Inc. | Gatsby Blog This blog is built on …

2018-05-18: Weekly Links: May 19th JavaScript and the Web The React Podcast | Michael Jackson I listen to a decent amount of podcasts, …

2018-05-13: MobX Patterns: State Machines & Flags A few weeks ago, I was listening to the React Podcast, specifically their episode on State Machines …

2018-05-04: Weekly Links: May 5th Intriguing Github Projects MDX Ever since I started using Gatsby to power this blog, I’ve …

2018-04-26: Weekly Links: April 27th JavaScript & The Web CSS at Scale: LinkedIn’s New Open Source Projects Take on Stylesheet …

2018-04-24: The New Hello World JavaScript has had a weird reputation inversion over the past decade. For years it was the stripped …

2018-04-21: Weekly Links: April 22nd JavaScript & The Web Designing Very Large (JavaScript) Applications - Malte Ubl This is a great …

2018-04-10: Book Review: The Inmates Are Running The Asylum For the past few months I’ve been working through a goal of reading 30 books in a year. I made …

2018-04-06: Weekly Links: April 7th JavaScript and the Web React Lifecycle Diagram | Dan Abramov Dan shared a really great illustration …

2018-03-29: Weekly Links: March 30th A big pile of links for Easter weekend. Happy Easter everybody! JavaScript and the Web ES modules: A …

2018-03-26: Front End Computer Science Basics: Boolean Logic This is the second post in a series of posts on Computer Science basics for front end developers. …

2018-03-23: Weekly Links: March 24th TC39 and the future of JavaScript/ECMAScript #SmooshGate FAQ | Mathias Bynens - A great explanation …

2018-03-20: Front End Computer Science Basics: Variables and Memory A few weeks ago, I asked for input on the idea of resources on Computer Science for front end …

2018-03-15: JavaScript Proposals In Production This post was adopted from a twitter thread that outgrew it’s medium today. You can see the …

2018-03-15: Weekly Links: March 16th JavaScript And The Web Bitmasks and the new React Context API | Haukur Hallvarðsson - A nice rundown …

2018-03-12: Classic Book Review: The Visual Display of Quantitative Information If you have any interest at all in data visualization, you can’t get very far learning about …

2018-03-10: Weekly Links: March 11th Rather than posting random stuff that popped up this week like usual, I wanted to instead post a set …

2018-03-01: Weekly Links: March 2nd JavaScript And The Web Sneak Peek: Beyond React 16| React Blog - This is a preview of where React is …

2018-02-22: Weekly Links: February 23rd JavaScript And The Web Feature watch: ECMAScript 2019 | 2ality - Not a lot to see here yet, but Axel …

2018-02-19: Computer Science for Front End Developers? I am primarily a front end web developer, and I have a Computer Science degree. In my experience, …

2018-02-15: Weekly Links: February 16th JavaScript And The Web Promises are not neutral enough | André Staltz - This is a pretty good …

2018-02-13: Book Review: Clean Architecture Clean Architecture by Robert “Uncle Bob” Martin was one of the better books on Software …

2018-02-08: Weekly Links: February 9th JavaScript And The Web CodeMirror - CodeMirror is a JavaScript library for building text/code …

2018-02-06: React Architecture Confessions I’ve been reading through Clean Architecture by Robert “Uncle Bob” Martin this …

2018-02-02: Weekly Links: February 3rd JavaScript And The Web ECMAScript 2018 | 2ality - The spec for the 2018 version of ECMAScript has …

2018-01-18: Weekly Links: January 19th JavaScript And The Web The Brutal Lifecycle of JavaScript Frameworks | Stack Overflow Blog - This …

2018-01-11: Weekly Links: January 12th JavaScript And The Web Manage Application State with Mobx-state-tree| Michael Weststrate on Egghead …

2018-01-06: Tips For Improving a Large Code Base With A Small Team Over the last year I’ve been acting as the lone JavaScript resource working on a codebase with …

2018-01-04: Weekly Links: January 5th Working in The Tech Industry To Serve Man With Software | Jeff Atwood - This is a great review of …

2017-12-29: 2017 Roundup 2017 was the 5th full year of this blog, and in many ways it was the most productive. I wrote one of …

2017-12-22: Weekly Links: December 23rd 2017 JavaScript And The Web 73,939,133 / Truncatable Primes | Reg Braithwaite - A nice writeup about how …

2017-12-14: Weekly Links: December 15th 2017 JavaScript And The Web The State Of JavaScript 2017 - This annual survey of JavaScript developers …

2017-12-07: Weekly Links: December 8th 2017 JavaScript And The Web Introducing the React RFC Process | React Blog - React is now using a public …

2017-11-30: Weekly Links: December 1st 2017 JavaScript And The Web Functional pattern: flatMap | 2ality - This post isn’t new, but flatmap …

2017-11-27: Implementing The Sieve Of Eratosthenes in JavaScript As a way of keeping my math skills sharp, I’ve recently started to work through the Project Euler …

2017-11-25: Weekly Links: Thanksgiving 2017 edition In honor of Thanksgiving this week, instead of a list of writing from around the web, this week …

2017-11-16: Weekly Links: November 17th 2017 JavaScript And The Web Currying In JS | 2ality - A nice round up of the different approaches for …

2017-11-14: A Quick Browser Compatibility Checkup I’ve written a few times about the state of browser compatibility and the web platform over …

2017-11-09: Weekly Links: November 10th 2017 I started this new thing last week, Friday Links. There’s a feedback form if you’re a …

2017-11-06: Improving Gatsby Blog Deploy UX About a year ago I switched back to using a static site generator for this blog. Specifically, I …

2017-11-03: Weekly Links: November 3rd 2017 Today marks the start of a new thing I’m trying with this blog: Friday Links (Edit: Since …

2017-10-29: How To Give A Perfectly Adequate Conference Talk Tech talks at conferences or meetups generally end up being experienced in one of 4 ways by audience …

2017-09-04: Taking Advantage of Jest Matchers (Part 2) This post continues my look at Jest matchers from Part 1. In part 1 I covered the first 4 types of …

2017-08-15: Taking Advantage of Jest Matchers (Part 1) Back in May, my favorite testing library, Jest, released it’s 20th version and rebranded …

2017-07-24: My Favorite Interview Question I have a favorite question to ask in interviews for web developers. “How does the internet work? In …

2017-07-19: Ten Things A Serious JavaScript Developer Should Learn There’s been an interesting Reddit thread circling my corner of the internet for the last week or …

2017-07-10: How to follow the JavaScript roadmap It can be difficult to keep up with all the things going on in web development, especially since the …

2017-06-03: Adding RSS, Atom, and JSON Feed to Gatsby For the last few months, this blog has been written in Gatsby, a static site generator for …

2017-05-29: Atom Productivity Tips Atom is a modern hackable text editor. I’ve been using it as my primary editor for a year and …

2017-05-28: Mariana Syntax Theme For Atom Sometimes the best thing to do is steal somebody else’s good idea. I’ve been using Atom …

2017-05-11: Building Normal Distribution Charts Using Highcharts This week I got to have a little fun remembering some High School math, and using one of my favorite …

2017-04-14: Grading Applications On Config Portability This week I got a new laptop, and for the first time in a while I have separate work and personal …

2017-03-28: The Mystery Of Docker And The Disk-Eating Cow Yesterday morning I was innocently minding my own business, downloading some files, when I noticed …

2017-02-26: Running Jest Tests Before Each Git Commit My main work project makes heavy use of Jest to test our JavaScript code. For a while now I’ve …

2017-02-18: Giving Context To Best Practices I’ve noticed a frustrating trend in online discussions about web development where developers …

2017-02-13: Evaluating Web Apps With Lighthouse Last year Google coined the term “Progressive Web App” as a way of describing the type …

2017-01-09: MobX: First Impressions I spent some time around the holidays this year playing with MobX, a state management library for …

2017-01-02: Orthogonality and CSS in JS One of the realities of the constant change in the web development world is that “best …

2016-12-29: 2016 Roundup Thanks to all of you who have followed my blog this year! It was a busy year and I didn’t get …

2016-12-14: What are Higher Order Components? If you spend much time at all reading through articles and documentation around React, you’re …

2016-12-12: Readable code: Know your audience A coworker asked me last week if there was a better way to write the following python code: …

2016-12-10: Saving Time With Jest: Meetup Summary This week I gave a talk at the brand new Triangle ReactJS meetup group on how Jest can save …

2016-12-02: A whole new site After 2.5 years of stability, this week I moved benmccormick.org to a new platform and overhauled …

2016-09-19: Testing with Jest Snapshots: First Impressions Over the past 6 months my team at work has been slowly transitioning a large Backbone application to …

2016-06-26: Quick Tip: Take advantage of lodash collections One of the more frustrating things about using JavaScript in the browser is the number of different …

2016-06-04: What are mutable and immutable data structures? t Sometimes concepts and ideas slowly grow in a programming community, sometimes they seem to appear …

2016-05-01: Digging Into React: Choosing Component Styles Over the past month I’ve been building my first production features using React. One of the first …

2016-04-30: Ack Tips Last summer I briefly considered creating a separate blog focused on command line tools. The idea is …

2016-03-09: Stability vs Decline My post on the sad state of the Backbone ecosystem from this weekend was surprisingly popular. I got …

2016-03-07: The Sad State of the Backbone Ecosystem For the past 2 years, ~90% of my coding time has been spent working on a large scale Backbone.js …

2016-01-25: Staying Productive I’ve been thinking a lot lately about what makes me productive vs unproductive. A lot of the …

2016-01-10: The Most Interesting Atom Packages I've found (so far) I’ve been using Atom as my primary text editor for the last 3 months. I don’t completely …

2016-01-08: Reusable Code Patterns One of the most repeated mantras in all of software is the term “Don’t Repeat …

2015-12-31: 2015 Roundup Thanks to all of you who have followed my blog this year. More people visited the blog this year …

2015-12-29: ES6 Patterns: Converting Callbacks to Promises I've been writing code using the new features defined in the ECMAScript 2015 version of JavaScript …

2015-11-30: ES6 Patterns: Clean Higher Order Functions I've been writing code using the new features defined in the ECMAScript 2015 version of JavaScript …

2015-11-25: Productive JavaScript Development I’ve been thinking a lot lately about how we as a JavaScript community can enable more …

2015-09-13: ES5, ES6, ES2016, ES.Next: What's going on with JavaScript versioning? JavaScript has a strange naming history. For its initial release in 1995 as part of Netscape …

2015-09-09: Lessons Backbone Developers Can Learn From React Since I started programming professionally, I’ve always kept an informal list of technologies …

2015-07-06: Backbone and ES6 Classes Revisited A few weeks ago I wrote an article explaining why the final spec for classes in the ES6/ES2015 …

2015-06-15: Book Review: Talking with Tech Leads Can we be honest for a moment? Figuring out a career path is hard for software developers. Talking …

2015-06-14: Mozilla: The state of Web Components Over on Mozilla’s development blog, Wilson Page has a great summary of the current status of …

2015-06-10: Is Safari being left behind? On Twitter yesterday, Alex Sexton surfaced Apple’s fact sheet on what’s new with Safari …

2015-06-08: How jQuery Works - An Introduction Every developer has had the experience of using “magic” code. Not the “hacked into …

2015-05-28: Moving Past RequireJS RequireJS has been a hugely influential and important tool in the JavaScript world. It’s still …

2015-05-25: marionette-service: Service Objects for Marionette Backbone.js is a great way to structure web applications. Its built in Models, Collections, Views …

2015-04-06: Why Backbone.js and ES6 Classes Don't Mix I’ve seen some confusion out there about how to use ES6 Classes with Backbone. In the original …

2015-03-23: Staying DRY with Marionette Behaviors This is the sixth post in a series on Marionette.js. For more background on what Marionette is, …

2015-02-22: Guillermo Rauch on ECMAScript 6 ECMAScript 6, henceforth ES6 and formerly ES.next, is the latest version of the specification. As of …

2015-01-26: Building Modular Web Apps With Backbone.Radio This is the fifth post in a series on Marionette.js. For more background on what Marionette is, …

2015-01-22: Is Bower Useful? I first heard about Bower about a year and half ago, and was immediately confused. Bower is branded …

2015-01-05: The Life of a Marionette View This is the fourth post in a series on Marionette.js, a framework for developing apps with …

2014-12-22: Building Complex Layouts With Marionette.js This is the third post in a series on Marionette.js. For more background on what Marionette is, …

2014-12-18: Come Build With Me One of the blessings of starting this blog has been the opportunity to answer questions, debate, and …

2014-12-10: Marionette Explained: Connecting Data to Your Views This is the second post in a series on Marionette.js. For more background on what Marionette is, …

2014-12-01: The Case For Marionette.js Building large web applications using Backbone.js can be hard. Backbone is a great tool, but …

2014-11-23: Alternative JavaScript It’s become a bit of a cliche that JavaScript is the “machine code of the web”. …

2014-11-12: Underscore vs Lo-Dash Last week was the time for my team’s quarterly “dependency update” where we go …

2014-11-10: Vim Workflows: File Switching Becoming productive in Vim is about more than just knowing all of the features available to you1. …

2014-11-08: Thoughts on Angular 2.0 Rob Eisenberg has a pretty incredible rundown of the current Angular 2.0 proposal and the thought …

2014-11-03: A Quick Review Of Google Inbox Google announced their new email product, Google Inbox last week, and I was able to get a Day 1 …

2014-10-12: Setting Up Your Text Editor For JavaScript Development The coding workflow for JavaScript developers gets better all the time. Over the last 10 years, the …

2014-08-28: Custom Elements By Example The best attribute of HTML is its ability to be simultaneously machine-readable and human-readable. …

2014-08-19: The Debugging Toolbox Do you know a Problem Solver? They’re the ones who can take a crazy, vague bug report from a …

2014-08-07: Component Based Development If you look back at the history of JavaScript and the client-side web as a development platform, you …

2014-08-03: Learning Vim in 2014: Search Have you ever tried to summarize something that was just too big to explain? I’ve covered a …

2014-07-27: Learning Vim in 2014: Copy and Paste the Vim Way If you’ve been following my series on Vim, it should be clear now that Vim has a pretty clear …

2014-07-24: One Day Left In Practical Vim Giveaway My practical Vim giveaway ends tomorrow, Friday July 25th at midnight. If you haven’t …

2014-07-21: Learning Vim in 2014: Getting More from Vim with Plugins It’s impossible to design a tool that fits everyone’s workflow perfectly. No matter how …

2014-07-16: Learning Vim in 2014: Vim as Art How do you feel about being efficient? If you’re reading this blog, I bet you like it. What if …

2014-07-14: Learning Vim in 2014: Configuring Vim Plenty of Vim articles you’ll find online start you off in the wrong place. Instead of …

2014-07-11: New Twitter Feed and Practical Vim Giveaway I’ve got a few orders of site business to deal with today. First, there’s a new way to …

2014-07-09: Book Review: Building Backbone Plugins As the saying goes, judging a book by its cover is a dangerous business. A lot of books have titles …

2014-07-07: Learning Vim in 2014: Working with Files As a software developer, you shouldn’t have to spend time thinking about how to get to the …

2014-07-02: Learning Vim in 2014: Vim as Language Wouldn’t it be nice if your text editor just did what you said instead of making you slowly …

2014-06-30: Learning Vim in 2014: The Basics Do you want to be efficient writing code? Using Vim can be a powerful help. Using it has let me move …

2014-06-02: Discovering Vim I’ve now been using Vim as my primary text editor for the last 9 months. When I started, I …

2014-01-06: Digging Into Knockout Builds There’s a lot you can learn by looking through other people’s code. This is especially …

2013-12-30: Meetings And Concurrency Working with a large number of people on any significant project eventually involves meetings. You …

2013-11-25: A look at Ack Do you spend a lot of time searching your projects for a specific piece of code? Frustrated by …

2013-11-14: Modern Dojo: Exploring declare This is part 2 of my ongoing exploration of Dojo’s important modules and concepts. …

2013-11-13: Modern Dojo: Exploring query It appears I’m going to be spending a significant amount of time working with the Dojo toolkit …

2013-09-10: BlendConf 2013: Takeaways From A Very Human Tech Conference After 3 great days at Blendconf, my brain is pretty overloaded with cool ideas. One of the cool …

2013-08-16: Searching for the perfect reading device: My Nexus 7 (2013) Review Since Amazon announced its Kindle platform back in 2007, I have read books on a variety of different …

2013-08-15: Somewhat Open From Microsoft’s official “Microsoft on the Issues” Blog: It seems to us that …

2013-08-12: Book Review: User-Centered Design User-Centered Design by Travis Lowdermilk is a solid overview of the principles and practices of …

2013-06-29: RSS Roundup We’re at T-3 days till the Google Reader shutdown, and it seems like the “wait and …

2013-06-11: How I Use Stack Overflow The problem with self directed learning is that our ability to learn is often constrained by the …

2013-06-11: Evergreen Browsers Tom Dale on Evergreen Browsers: If you’re like me, when you’re developing a new web application, …

2013-06-09: 90% Done, Halfway There

There’s a running joke on my team at work when somebody asks about progress on another …

2013-06-08: Customer Culture Revisited Marco Arment back in 2011: For Windows 8 to succeed, especially for its tablets to compete well …

2013-05-07: Revertible Observables in Knockout Last week I was looking for a way to use KnockoutJS on a configuration menu that required the user …

2013-05-04: Irreplaceable If you are the average worker in the average job then you can be replaced. The reason I tell people …

2013-04-23: Book Review: Javascript Testing with Jasmine I received a copy of Javascript Testing with Jasmine by Evan Hahn this week, and it seemed like …

2013-04-06: A New Look I’m switching to a modified version of the excellent Object theme by gluttony for this blog. I …

2013-03-23: Creating a Build System For a Coffeescript Project with Ant I’ve recently taken the time to develop an organized build system for a Coffeescript and SASS …

2013-02-23: Coffeescript Is Great This past week I decided to try and learn more about Coffeescript by converting a side project …

2013-02-13: Simple Publish-Subscribe with jQuery Here’s a cool pattern that I’ve been able to use in two of my projects lately: //Publish …

2013-02-03: How I Work: Refactoring I recently took the time to re-examine a section of code that I’ve worked on as part of a team …

2013-01-25: Career Fairs: How To Not Get Hired (And How To Give Yourself A Chance) It was 9:15 and I had just arrived at the gym where the career fair was set to start at 10:00. …

2013-01-15: Unexpected Javascript: That Doesn't Do What You Think When I started writing Javascript, I encountered a lot of stuff that was just plain weird. Stuff …

2013-01-11: Explaining Javascript: Object Oriented Programming I’m continuing this series on Javascript concepts for people new to the language by looking at …

2013-01-08: Explaining Javascript: Closures Javascript can be a confusing language when you start to use it. Designed in a hurry with a …

2013-01-06: Book Review: Effective Javascript After seeing some positive early reviews, I went to Amazon last week and bought “Effective …

2013-01-03: Sublime Text For Javascript: Packages This is the final post in my series on Sublime Text, and how to get the most out of the editor. The …

2013-01-01: Sublime Text For Javascript: Configuration I’m starting a new series of posts on Sublime Text, and how to get the most out of the editor. …

2012-12-30: Sublime Text For Javascript: Keyboard Shortcuts I’m starting a new series of posts on Sublime Text, and how to get the most out of the editor. …

2012-12-29: I hate computing ecosystems Is there a way to edit text documents on the iPhone and sync them with Skydrive? Looks like I need …

2012-12-28: Cleaning My Digital House I’m cleaning my digital house this new year. I’ve been a confessed addict to trying new …

2012-12-25: Medium: The end of History and the last website the whole experience I’ve just described is part of the argument for a site like Medium. That …

2012-12-20: Awesome Software: Trello I’ve been using Trello to manage the development process for my new project. It is an absolutely …

2012-11-09: Bayesian Witch Hunt Ben Hamner: Is Nate Silver Really a witch? Funny nerd tribute from Ben

2012-11-08: Shutdown Tiles for Windows 8 Start Screen Solves one of the bigger annoyances I’ve had with the OS so far. Technet Script Center: Create …

2012-11-07: Sync Multiple Google Calendars in Windows 8 Syncing with multiple Google calendars, or any Google calendars that you don’t directly …

2012-10-06: It took a month to get sick of php I’m not going to claim that its impossible to write nice, well structured code with php. …

2012-09-19: The iPhone 5 Conversation so Far Blog A: The iPhone 5 is boring. ~Blog B~: Customers are buying the iPhone 5; Blog A is an idiot. …