Andrew Stellman

New York, New York

Areas of Expertise:

  • C#
  • .NET
  • Agile
  • PMP
  • Java
  • open source
  • software engineering
  • project management
  • architecture
  • quality
  • consulting
  • speaking
  • writing

Andrew Stellman, despite being raised a New Yorker, has lived in Pittsburgh twice. The first time was when he graduated from Carnegie Mellon's School of Computer Science, and then again when he and his O'Reilly coauthor, Jenny, were starting their consulting business and writing their first book together.

When he moved back to his hometown, his first job after college was as a programmer at EMI-Capitol Records--which actually made sense, since he went to LaGuardia High School of Music and Art and the Performing Arts to study cello and jazz bass guitar. He and Jenny first worked together at that same financial software company, where he was managing a team of programmers. He's since managed various teams of software engineers, requirements analysts, and led process improvement efforts.

Andrew keeps himself busy building software, giving talks and writing articles, playing music (but video games even more), studying taiji and aikido, and trying not to work too hard.

For more information about Andrew, Jennifer Greene, and their books, visit Building Better Software.

photo by nisha sondhe

Head First C# Head First C#
by Jennifer Greene , Andrew Stellman
Second Edition May 2010
Print: $49.99
Ebook: $39.99

Head First PMP Head First PMP
by Jennifer Greene , Andrew Stellman
Second Edition July 2009
Print: $69.99
Ebook: $55.99

Beautiful Teams Beautiful Teams
March 2009
Print: $39.99
Ebook: $31.99

Head First C# Head First C#
by Andrew Stellman , Jennifer Greene
November 2007
Ebook: $39.99

Head First PMP Head First PMP
by Andrew Stellman , Jennifer Greene
March 2007
Ebook: $39.99

How to Keep Your Boss from Sinking Your Project How to Keep Your Boss from Sinking Your Project
by Andrew Stellman , Jennifer Greene
June 2006
Ebook: $7.99

Applied Software Project Management Applied Software Project Management
by Andrew Stellman , Jennifer Greene
November 2005
Print: $39.99
Ebook: $31.99

Recent Posts | All O'Reilly Posts

Andrew blogs at:

Functions are values: explore C# lambda types in Visual Studio

April 09 2011

I love that a college professor of mine from long ago, Bob Harper, is tackling the tricky issue of how to teach students about the nature of functions in his new Existential Type blog. His post got me thinking about how you'd go about teaching this concept to a learner—specifically,… read more

Don't be a micromanager!

November 29 2010

I recently made a post on Building Better Software about micromanagement ("Demoralize Your Teams Quickly And Efficiently With Micromanagement") and how it drains a development team's will to live. I've been studying micromanagement for a long time—not often voluntarily. It's... read more

Understanding C#: Nullable Types

November 07 2010

Every C# developer knows how to work with value types like int, double, boolean, char, and DateTime. They're really useful, but they have one flaw: they can't be set to null. Luckily, C# and .NET give you a very useful tool to for this: nullable types. You can use a… read more

Understanding C#: Simple LINQ to XML examples (tutorial)

October 16 2010

XML is one of the most popular formats for files and data streams that need to represent complex data. The .NET Framework gives you some really powerful tools for creating, loading, and saving XML files. And once you've got your hands on XML data, you can use LINQ to query… read more

Understanding C#: Equality, IEquatable, and Equals()

September 29 2010

What does it really mean for two objects to be equal? How can you tell if object #1 is equal to object #2? Do you compare all of their properties? What about private properties or fields? Is it possible for two objects to have exactly the same state, but to… read more

A Few More Things Every Job-Seeking Programmer Should Know About Project Management

September 25 2010

There are a lot of programmers who really don't like project management -- they toss all things project management related into the "pointy haired boss" category and try not to think about them again. But if you're a job-seeking programmer, or a programmer looking to move your career ahead, then… read more

Understanding C#: Raising events using a temporary variable

September 10 2010

A lot of C# developers notice that there's something odd about how we normally raise events in C#. We're always told to set a temporary variable equal to the event first, and then raise the event using that variable. It looks very strange—how could that variable do anything at all?… read more

Build HTML documentation for your C# code with Sandcastle in under 5 minutes

September 03 2010

If you've ever used a library that has accurate MSDN-style API documentation, you know how useful it can be. There are lots of ways to create HTML documentation. But the easiest way that I've found is to use Sandcastle. It's an open source documentation generator from Microsoft that reads your… read more

Why project managers should care about development

August 31 2010

In a recent post on Building Better Software, I wrote about why developers should care about project management. But I think it's worth making the opposite case: why project managers should care about development. read more

Understanding C#: String.Intern makes strings interesting

August 22 2010

One of the first things a new C# developer learns is how to work with strings. We teach the basics of strings early on in Head First C#, and it's the same way with practically every other C# book I own. So it shouldn't be surprising that novice and intermediate… read more

Understanding C#: Use System.Console to build text-mode games

August 17 2010

I'm a sucker for an old-school text-mode console game. Text-mode games rendered their "graphics" by drawing text characters at different positions on the screen using 16 background and foreground colors. They're also easier than ever to build in C# and .NET, thanks to theSystem.Console class, which lets you position the… read more

Essential developer skills: Refactoring in Visual Studio 2010

August 08 2010

If you've been reading my blog posts, you know that I try to help novice and intermediate C# programmers improve their skills, and help progress along the developer career path. I think this goes beyond simply getting better at programming C# and .NET. There are additional skills that, in my… read more

Understanding C#: Explore types using the Type class and GetType()

August 05 2010

One of the most powerful aspects of the C# programming language is its rich type system. But until you've got some experience building programs, it's difficult to appreciate it--in fact, it can be a little baffling at first. But we want to give you at least a taste of how… read more

Understanding C#: Namespaces and assemblies (a quick .NET tutorial)

July 12 2010

I recently had a reader e-mail me with a question about assemblies and namespaces because he had trouble on a job interview that asked a lot of interview questions about .NET assemblies. Luckily, I had a good answer for him that covered the .NET assembly basics: what an assembly is,… read more

Understanding C#: Using BackgroundWorker to make your UI responsive

June 28 2010

Someone once told me that he could tell a form was built by a novice C# developer if it stopped responding when he pressed a button. I'm not 100% sure I agree, but I definitely think that an intermediate or advanced C# developer should be able to build a form… read more

Understanding C#: XML Comments

June 14 2010

As C# developers get more experienced, there are a lot of things they pick up along the way that are really useful and important to know, even if they aren't necessarily directly code-related. One of those topics is XML comments, and I've been surprised at how many developers -- even… read more

Teamwork: It's About Trust, Not A Technique

March 06 2010

Building a great software team requires more than just a good tool, technology, or technique. That's something we learned time and again from the many brilliant people who contributed to Beautiful Teams (O'Reilly, 2009). It's an idea that seems to really fascinate people: that when a team build great software,… read more

Understanding nonfunctional requirements

February 17 2010

Understanding what non-functional requirements are, how they work, how to write them, and how to use them in real-life projects I recently posted a Q&A about non-functional requirements on our Building Better Software blog. It's a follow-up to a popular... read more

Understanding C#: Why make things private?

January 23 2010

Andrew Stellman is the author of Head First C# and other books from O'Reilly. A reader on the Head First C# forum posted a question. It's actually a really good question, one that a lot of developers ask once they... read more

Do your team members hate each other?

November 01 2009

Last week I wrote a post on Building Better Software called When Team Members Hate Each Other. I started to answer a question that I recently got from the audience at the end of one of my Beautiful Teams talks... read more

Understanding C#: Using virtual and override

October 27 2009

One of our Head First C# readers posted a question on the book's forum: I don't understanding why I need to add 'virtual' keyword and 'override' keyword to make Penguin Fly() override Bird Fly(). [page 226] I think public class... read more

Getting Java, C# and Perl to speak the same language (with JSON)

October 04 2009

I've been thinking a lot about architecture lately. It's partially because Jenny and I are going to do our Beautiful Teams talk at the ITARC 2009 conference next week. But it's also because I've been writing a lot of code... read more

Teams, architecture, and open source

October 03 2009

Jenny and I are going to be doing our Beautiful Teams talk in a week at the ITARC 2009 New York conference. That's why I've been posting about architecture lately on Building Better Software: How well does your program do...... read more

Agile testing: why good developers resist great habits

August 23 2009

One of my favorite quotes about programming is from Kent Beck: "I'm not a great programmer, I'm a pretty good programmer with great habits." And one of the best habits I know is to build your software using unit testing... read more

Agile testing and Beautiful Teams (giveaway)

August 22 2009

Testing -- especially on agile projects -- has been coming up a lot lately. Jenny and I have have spent a lot of time talking and writing about the basic ideas behind testing. So we were really excited when Abby... read more

A few quick thoughts on keeping readers motivated

August 16 2009

I was reading Brian Sawyer's great post on the Head First Labs blog about using a Learner's Journey, and it got me thinking about some of the things I think about when writing on a Head First book. A few... read more

Unit testing and the narrowly averted Citicorp Center disaster

November 26 2008

(This post was syndicated from Building Better Software.) I was working on a project earlier today. Now, typically I always do test-driven development, where I'll build unit tests that verify each class first and then build the code for the... read more

It'll take about three weeks...

November 26 2008

If you've been reading our posts here, you probably noticed that we like to give our "Why Projects Fail" talk. (If you're curious, here's a link to the slides [PDF].) One reason we really like it is that it... read more

Building a great programming career

November 26 2008

Ever since Jenny and I wrote Head First C#, I've gotten a lot of e-mail and questions from developers just starting their careers. (I think it has to do with the fact that our book has become one of the... read more

How to hold a more effective code review

November 26 2008

(This post was syndicated from Building Better Software.) A lot of programmers feel like being asked to go to a code review is like being told by mom to eat our veggies. We'll complain about it, and even if we... read more

Recent Posts | All O'Reilly Posts

Andrew Stellman

"Head First PMP is by far the best PMP Exam Preparation book of all I have reviewed in depth. It is the very best basic education and training book that I have read."
--Dennis Bolles, PMP, Project Manager for the PMBOK Guide 3rd ed. Leadership Team, DLB Associates, LLC and co-author of The Power of Enterprise-Wide Project Management