About
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.
- 2,000 Things You Should Know About C# (1,200+ posts)
- 2,000 Things You Should Know About WPF (1,200+ posts)
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
Another amazing, well-written blog. I am honestly a big fan of your simplicity in explaining How-Tos/Concepts.
Thank you 🙂
Thanks again Khalilo.
Sean;
I too like the nice, clean presentation of your site. Thanks. I wonder if you could assist me? Probably not what you want to do, but if you could lend a helping hand I would be very grateful; I have a C# program that connects to a FORTRAN dll. I need to pass integer arrays into the FORTRAN model. I do not seem to have the concepts down well enough to know how to do this. I want to use properties; A post by the Code Project (http://www.codeproject.com/KB/cs/csharp_property_array.aspx) seems to suggest that I could, but I have had no luck. My get accessor works, but my set accessor does not. Or, other approaches?
Perhaps you code post a code sample?
Hi Sean,
I heard of your blog from a DotNetRocks episode and decided to take a look.
This is a great blog with lots of very useful nuggets of information. I love how you have presented the material making it as simple and accessible as possible.
I’ll be coming here to read more . Your hard work is definitely obvious.
Keep up the great work.
Dave
Hi Sean,
your site is kind of what I was always looking for: simply explained and yet in-depth. Thanks and keep up the good work!
Andreas
Thanks Andreas!
Hello Sean.
I’ve been enjoying your C# blog for a few months now so thank you for that.
On another note I have been recently working on a project called type.run (essentially jsFiddle for C# code).
I would very much like your opinion on it and who knows, with the amount of examples you give on your blogs, it may even become useful for you.
Thank you in advance.
Forgot the link… silly me: http://typerun.apphb.com/
Love this blog a lot. Specially the fact that each post talks about one and only one important topic about C# without digressing even a bit.
Sean,
First and foremost your work in this blog is absolutely commendable.I mean your blog is absolutely a gold mine for me.Do keep up the good work.
Thanks Ayaskant!
Can’t help but thank you for all these useful posts!!
Thanks!
Can’t help but thank you for these usefull blogs…
hello sean,
i was looking for the tricks to get the smallest possible executable – or, in other words:
how can I increase the amount of code while still staying < 4kb size of the compiled executable (like the "demoscene 4k" guys do)?
(I know they use the assembler language and directx, but) which features/possibilities does one have using c# (and forms and/or directX) to get the smallest possible size of the .exe?
thanks for your time & ideas,
oliver
In general, I don’t think that you need to worry about the size of an executable, given that assembly size is quite small relative to modern what’s available on modern disks. But if you want to explore this, you could do something like zipping the main assembly (http://www.codeproject.com/Articles/7730/Reducing-the-Size-of-NET-Applications or http://www.drdobbs.com/windows/reducing-the-size-of-net-applications/184406005).
thanks for the links!
all the best for you and your website,
oliver
Hello Sean,
Thank you for at wonderfull site, both C# & WPF its an amazing Encyclopedia for me to use when i doubt 🙂
i was wandering if it was possible for me to use your material for an WindowsPhoneApp? of course with credit to the author and everything and of course free.
If u like u can contact me on: rasmusbjoern@hotmail.com for more info 🙂
Thanks Rasmus. Sure, you’re welcome to create an app, as long as you credit me for the content and also link back to my web site.
–Sean
Hi Sean,
I am a big fan and frequent visitor of this site. The way you present things is simple and examples with which you illustrate things is superb.
Thank you for this wonderful posts .
Joxin
HI Sean,
You have done great job , I was looking for the same site ! Thanks a lot !
Excellent excellent site. Descriptions are so clear and concise and diagrams go a long way to helping users understand concepts.
Thanks!
greate blog
Not just your this Site, All your site, your Blog Family History .. all are Excellent written,
Its really surprise me How a technically Sound Person can balance his personal life also.
I am new in this Development field .. When I Attend any interview, I found one common question… where u want to see your self after 10 years ??
So, Now I can Give Your Name reply of that Questions.
Awesome site!! I am learning so much here. You should make flash cards out of this , I would have bought them! 🙂
Hey Sean – This site is awesome! Just discovered it recently and enjoy reading and learning from all the tips you have. I wish I had found this last year when I was interviewing. Anyway, it’s now bookmarked across 3 pc’s. Thanks, Sean
Thanks !
Great blog
Great blog, nice and simple. You should write for MSDN 🙂
Why don’t you explain about Tuple Class in C# ?
Tuple may be a topic for a future post.
Hi Sean,Great Blog.One Of The Best I have Seen.Well Organized.I Seriously didn’t Know Some Of Things U Have Written. Keep The Good Work Going.
Are these fantastic nuggets available in book / ebook form?
A random tip of the day would also be good 🙂
No, sorry–just what you see here. :O)
Last C# thing #1,220 was posted on the 2nd of April 2015. Does it mean there won’t be more C# things posts?