Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me:

Bay Area, CA
Jeff Atwood

software development

Paying Down Your Technical Debt

Every software project I’ve ever worked on has accrued technical debt over time: Technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this problem. In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is

By Jeff Atwood ·
Comments

code review

Who’s Your Coding Buddy?

I am continually amazed how much better my code becomes after I’ve had a peer look at it. I don’t mean a formal review in a meeting room, or making my code open to anonymous public scrutiny on the internet, or some kind of onerous pair programming regime.

By Jeff Atwood ·
Comments

security

Rate Limiting and Velocity Checking

Several things can trigger the sorry message. Often it’s due to infected computers or DSL routers that proxy search traffic through your network – this may be at home or even at a workplace where one or more computers might be infected. Overly aggressive SEO ranking tools may trigger this

By Jeff Atwood ·
Comments

psychological effects

The Bad Apple: Group Poison

A recent episode of This American Life interviewed Will Felps, a professor who conducted a sociological experiment demonstrating the surprisingly powerful effect of bad apples. Groups of four college students were organized into teams and given a task to complete some basic management decisions in 45 minutes. To motivate the

By Jeff Atwood ·
Comments

software development

Are You An Expert?

[turns to fire commissioner] What do we got here, Kappy? Fire started, 81st floor, storage room. It’s bad. Smoke’s so thick, we can’t tell how far it’s spread. Exhaust system? Should’ve reversed automatically. It must be a motor burnout. Sprinklers? They’re not working on

By Jeff Atwood ·
Comments

design patterns

Real Ultimate Programming Power

A common response to The Ferengi Programmer: From what I can see, the problem of “overly-rule-bound developers” is nowhere near the magnitude of the problem of “developers who don’t really have a clue.” The majority of developers do not suffer from too much design patterns, or too much SOLID,

By Jeff Atwood ·
Comments

programming languages

The Ferengi Programmer

There was a little brouhaha recently about some comments Joel Spolsky made on our podcast: Last week I was listening to a podcast on Hanselminutes, with Robert Martin talking about the SOLID principles. (That’s a real easy-to-Google term!) It’s object-oriented design, and they’re calling it agile design,

By Jeff Atwood ·
Comments

search engines

The Elephant in the Room: Google Monoculture

I was browsing the sessions at an upcoming Search Conference, which describes itself thusly: The way to online success is through being easily found in search engines such as Google, Yahoo!, and Microsoft Live Search. While developers have historically thought of search as a marketing activity, technical architecture has now

By Jeff Atwood ·
Comments

design patterns

Don’t Reinvent The Wheel, Unless You Plan on Learning More About Wheels

The introduction to Head First Design Patterns exhorts us not to reinvent the wheel: You’re not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don’t want to reinvent the wheel (or worse, a flat

By Jeff Atwood ·
Comments

html

You’re Doing It Wrong

In The Sad Tragedy of Micro-Optimization Theater we discussed the performance considerations of building a fragment of HTML. string s = @"<div class=""action-time"">{0}{1}</div> <div class=""gravatar32"">{2}</div> <div

By Jeff Atwood ·
Comments

wiki editing

Mixing Oil and Water: Authorship in a Wiki World

Imagine a scenario where three people will make contributions to a Wiki page at different points in time. Each person edits the page and then saves their changes to what becomes the latest version of that page. History Flow connects text that has been kept the same between consecutive versions.

By Jeff Atwood ·
Comments

keyboard

Have Keyboard, Will Program

My beloved Microsoft Natural Keyboard 4000 has succumbed to the relentless pounding of my fingers. A moment of silence, please. OK, it still works, technically, but certain keys have become... unreliable. In particular, the semicolon key is now infuriatingly difficult to use. I don’t know if this is God’

By Jeff Atwood ·
Comments