I’m a software developer working in Minnesota (Twin Cities), passionate about software development.

My focus is on developing desktop applications on Windows, as well as working on server-side components (web services and databases).  I’ve also dabbled in creating web and mobile apps. My main passions lie at either end of the stack–creating great user experiences and designing data models and relational databases.

I’ve been a full-time software developer for 30 years and have worked with many different languages and technologies, including old chestnuts like: ANSI C, VB.NET, VB6, C++, Ada, FORTRAN, Windows Installer, Win Forms, MFC, STL, ActiveX, COM Servers, X Windows, and OSF/Motif. I’ve written production code in Ada, FORTRAN, C, C++, Pascal, Visual Basic, and C#. I started my career in the mid 1980s, writing Ada and C on the VAX/VMS platform, transitioning to Microsoft Windows in the early 1990s.

The technologies that I currently work with most frequently include C#, XAML (WPF), SQL Server, and Entity Framework. I’ve also begun to spend more time with HTML, JavaScript and CSS.

I have a Bachelor of Science degree in Computer Science (University of Minnesota, 1987) and a Master of Science degree in Software Design and Development (University of St. Thomas, 1994). Along the way, I’ve gotten a couple of Microsoft certifications (VB.NET and C#).

The idea behind my 2,000 Things projects is to learn a technology in more depth by writing a number of short posts on the technology, each of which is limited to 150 words (or so) and demonstrates some small aspect of the technology. I’m also a firm believer in building something that works as the best way to learn a technology. My posts therefore typically include working code fragments from small sample apps.

I’ve created two blogs for the 2,000 Things series, listed below. The C# blog is now on hiatus and I’m posting in the WPF blog on a fairly limited basis.

As of early 2019, I’m adding a third member to the 2,000 Things family: 2,000 Things You Should Know About HTML. This blog will follow the pattern of the other two, containing many tiny posts, each of which explains one small topic. I may not create a post every single day, like I originally did with the other two blogs, but will try to post regularly.

It’s hard to decide on exact boundaries for the content in these blogs. The 2,000 Things You Should Know About HTML blog will focus solely on HTML. I will not be covering anything related to CSS and JavaScript, though these technologies are a critical part of any real world web development project. If I have the time and energy for it, I may later consider creating parallel blogs for those technologies.

Other places that you can find me:

  • Sean’s Stuff – a general purpose software dev blog that I post to occasionally.
  • Twitter – me on Twitter
  • Grey Beard Sailing (YouTube) – me sailing on Lake Superior. More videos coming eventually.
  • Grey Beard Sailing (Blog) – future home of witty and insightful posts about sailing
  • Goodreads – what I’m reading (and have read)
  • The Lucy Show – interviewing my daughter (podcast)
  • The Daniel Show – audio podcast with my son
  • Seans.com – my personal web site, a bit old and neglected.
  • The Shed – a cool shed that I built. A number of people have built versions of this shed now, across the country, based on my original plans.

Last update: 25 Feb 2019


37 Responses to About

  1. Khalilo says:

    Well, I have to admit that presenting the information in that organized manner following topic by topic in small chunks is absolutely creative way presenting the info to other programmers. In my modest opinion, I can even grasp the concepts much faster than I do with reading a WPF book.

    Thank you 🙂

  2. SODA says:

    Great job Sean!! Thanks and good luck

  3. pravin says:

    wpf.2000things.com doesnt display properly on ie8

  4. adi says:

    Excellent blog for learning WPF. I am new programmer and was looking for such a blog which explains each little things in detail. Thanks for making this blog. If there is any way I can also be useful, let me know.

  5. nihit says:

    hello sean, i am a new programmer and was looking for such a wonderful blog like you which explains each little things in detail. Thanks for making this blog ,how are writing an excellent blogs
    thank you………………..

  6. ngm says:

    It’s absolutely stunning work what you’ve done and what you’re doing Sean.

    Thank you for your gift to community!

  7. Hey! Great site you have there, Sean.
    Excellent C# and WPF knowledge centralizer together with StackOverflow and Code Project.

  8. Nikhil says:

    Great site! Love the format!
    Can you do ones for LINQ, ASP MVC, Razor and Regular Expressions
    Just some ideas 🙂

    • Sean says:

      Thanks Nikhil. All of these topics are good ideas, good candidates for a blog following the “bite-sized chunk” format. I likely won’t cover any of them in this blog, since it’s limited to WPF (and some Visual Studio stuff). I’ll eventually get to LINQ in the C# blog, though (csharp.2000things.com).

  9. Ludo says:

    i want to know if it’s possible (and know-how) using a Page-Based Navigation inside an normal WPF application. What do u think?
    For example: i have an application wpf where, on a window or usecontrol customized, there’s a button and his event that calls a pages-based navigation of 3 pages.

  10. Ludo says:

    thanks for answered me. Do u know how to do that?

  11. ngm says:


    Just wanted to say how stunned I am finding this blog. The whole format and the way you present topics in it is something truly unique.

    Thank you for investing your energy into community.

    Will be checking the blog daily.

    – ngm

  12. Matthew Copeland says:

    Repeat what many others have said.

    What a simple yet incredibly effective idea. Bravo!

  13. Thanks so much for this awesome blog.

  14. zclmoon says:

    Hi, Sean

    I like your “bite-sized chunk” format.
    I’m reading your WPF related items, and I want to translate these items to Chinese into our code
    share BBS.
    We need your agreement.
    Our site: http://www.codesee.com


  15. shankar says:

    Thank you very much for sharing such a vast information. Very well organized and precise. Many developers and professionals will get benefited from this.. Good Work. 🙂

  16. HN says:

    Wow, this is an amazing blog on WPF and C#. Thanks for sharing your knowledge!

  17. henryqng says:

    I’m glad I found this website https://wpf.2000things.com/.
    Thanks for blogging!

  18. Ikram says:

    I am trying to make a Tire size lookup with Car Make; Model and Year selection with smooth transitioning. Do you have something like that. Meaning for every Make selection I can see the Model of the selected Make. That would be cool.

  19. Mariusch says:

    Where can I ask you a question about XAML?

    • Sean says:

      Right here works just fine. But Stackoverflow is always a great place to ask a question–tap into people who know a lot about WPF.

      • mariusch says:

        I’m trying to create a game that has a war map(grid) like in the Heroes 3 but with RotationX effect(so it looks like 3D). Is there a possibility to disable this Projection for some children of this grid?

  20. This is a really nice resource that you provide. I love the small, precise and clear examples. No nonsense, just the gist of it, enough to get me going. I hate having to parsing through huge essays, when I’m just looking for a small piece of information. Thanks man, I really appreciate your work!

  21. Red says:

    Excellent blog Sean, I’ve used this resource countless times in the past and I am very thankful for it. Keep up the good work.

  22. Hello Sean,
    great stuff.can you please provide pdf for that.it would be great for me as i can have hard copy to read it.

  23. John Martini says:

    Hey Sean, I had a few questions regarding one of your tutorials, i was wondering if you have time to help answer a few questions

  24. Steffen says:

    Hey Sean,
    I’ve been searching the internet – including your blog – for info about draging a selection of rows in a bound datagrid to some other control.
    My datagrid is bound to an ObservableCollection. I want to select one or more rows and drag them to an other datagrid. I am not able to find out how to extract the selected rows from e.Data.GetData(……) in the drop event.
    Do you know a way to do it? As I am using MVVM I would prefer your sample to do the same but it’s OK if it doesn’t.
    Thank you for a great resource!
    Best regards,

  25. Gopal Mahale says:

    Excellent blog for learning WPF

  26. Daniel Wherry says:

    Still helpful, here in 2017. Especially for a young dev like me!

  27. Used your listbox scrollintoview (controls, listbox) section. Thanks.

  28. Walkanywhere says:

    Amazing website!
    BTW, could you please release a pdf file including all the things published so far. I think it’s quite useful for readers, and maybe even useful for late book publishing. Thanks for your work. I love it.

  29. Daniel Andersen says:

    Thank you for this. Great format. I have learned a lot.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: