http://twitter.com/AndrewStellman
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
|
|
|
|
|
|
|
|
|
|
|
Recent Posts | All O'Reilly Posts
Andrew blogs at:
http://www.stellman-greene.com
http://www.headfirstlabs.com
http://oreilly.com/blogs/
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 moreNovember 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 moreUnderstanding 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 moreUnderstanding 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 moreUnderstanding 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 moreA 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 moreUnderstanding 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 moreBuild 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 moreWhy 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 moreUnderstanding 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 moreUnderstanding 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 moreEssential 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 moreUnderstanding 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 moreUnderstanding 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 moreUnderstanding 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 moreUnderstanding 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 moreTeamwork: 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 moreUnderstanding 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 moreUnderstanding 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 moreDo 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 moreUnderstanding 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 moreGetting 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 moreTeams, 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 moreAgile 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 moreAgile 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 moreA 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 moreUnit 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 moreIt'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 moreBuilding 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 moreHow 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 moreRecent Posts | All O'Reilly Posts
Hire Andrew Stellman
For Inquiries Contact
Press Inquiries
Find Other Authors
Buy Now and Save
Use discount code: OPC10

All orders over $29.95 qualify for free shipping within the US. See details.







