Apr 12

Developers, Go Forth And Cross Pollinate!

If there is one thing that I have learned in my life, it is that you never learn anything by surrounding yourself with people who agree with you. Putting yourself in a giant echo chamber only serves to amplify and reinforce all the the ideas and beliefs that you hold. And at the same time, it amplifies and reinforces all of your prejudices, stereotypes, and superstitions that you hold.

The same holds true for your career as a developer, you’ll never learn anything new if all you do is surround yourself with other developers who are using the exact same tools and patterns as you. Unfortunately, it is really hard to not do that. How do you surround yourself with developers that don’t use the same tools and patterns as you? I don’t know about you, but most of the teams that I have worked on mostly use all of the same tools and patterns. They solve problems in the same way, and they rarely stray from the tools and patterns that they are most familiar with. And there is a reason for that! A high performing team will leverage the tools and patterns that they know work well, while bringing in additional tools as patterns only as they need them. This allows them to reliably and predictably deliver quality software. This is often an ideal case though, many teams rarely, if ever, bring in new tools and patterns for fear that they will introduce too many unknowns.
Continue reading →

Feb 11

A New Day, A New Blog

If you’ve been to my blog previously then you might have noticed that things have changed a bit around here. I’ve moved my blog off of BlogEngine.net and onto WordPress. This isn’t a statement about BlogEngine.net, in fact I have had a wonderful experience with it. The move is driven primarily by two different decisions…

  1. I don’t want to host or maintain my blog anymore. I’d rather just pass my blog off to a service and allow them to worry about it. I’ve moved my blog onto WPEngine and at this point I’m happy with it. I’ll report back after I’ve been using the service for a few months and let everyone know how things have been going.
  2. I don’t want to have to customize very much. You just can’t beat the WordPress ecosystem. If I want to do something with my blog, chances are that there are 10 different plugins that do exactly what I want. If I want a theme, there are thousands to choose from. If I need help with something, there are tons of documentation out there.

Things might be changing a bit more over the next few days/weeks so let me know if you see anything that isn’t working quite right and I’ll get it all patched up. Right now the theme I have chosen if very clean and simple. I’m thinking that I might leave the theme this way for a while, let me know what you think of it!

I hope you enjoy the new blog, and I’ll be sure to get some new posts up here for you to enjoy!

Jan 11

The Robots Are Taking Over

TL;DR: I have gotten myself tangled up with James Avery, Nate Kohari, and Dave Donaldson in order to bring you Epic Win Hosting! I hope you’ll go sign up to find out more info when we launch the beta!

If you’ve been following my blog for the past few years, you’ve probably noticed that I have taken a bit of a hiatus recently. There are several reasons for this… first, as you can tell from my last post, I found myself in a bit of a quandary. So, as you’ve probably guessed, I’m been doing a bit more digging and exploring outside of my comfort zone. Both through doing mobile dev on the iPhone and experimenting with Ruby on Rails. This has been a ton of fun, and kept me pretty busy.

Then one fateful day (while at the awesome MongoDC conference) I received a phone call from my good buddy James Avery. He said that he had an awesome idea for changing Windows hosting, and he wanted me to get involved. I had some current work that I needed to finish up, but I decided that I needed to jump on this.

So I made the decision, cleared my schedule (as much as you can around Thanksgiving and Christmas), and set about helping to build Epic Win Hosting. It has been a ton of fun, and I’ve learned a good bit in this short period of time. We are hoping to launch in beta mode in the coming weeks, and I hope that you’ll go to the site and sign up so that you can get more info when we launch.

Things will probably be a bit quiet around here until then, but I can’t wait to launch and share as many details as my new robot overlords will let me!

Oct 10

These Times, They Are A-Changin

Warning, serious rant ahead, get yourself a cup of coffee and relax…

C# has been my bread and butter for quite some time, and before that it was Delphi. And you know what, I loved Delphi. It was a powerful language, one which was fast and relatively easy to develop in. I wrote Delphi code for years and enjoyed it. As the .NET platform was taking off I started to take a serious look at C# because it seemed like the most obvious jump from Delphi for what we were doing, which was writing Windows desktop applications. And I loved it!

Delphi was great, but C# was better. There was no denying it. Having a well thought out, managed language, great libraries, fast runtime, great IDE, familiar syntax was awesome. I was totally hooked. Sure, I loved Delphi, but C# was a brand new language designed from the ground up to be fast and easy to use. It was everything I wanted. After that point Delphi just seemed so clunky and old. Manual memory management seemed like such a pain. My love of Delphi started fading quickly after I had glimpsed into the promised land that was C#.

Continue reading →

Aug 10

Startup – Week 1 Recap

You should probably be warned ahead of time that this post is devoid of any technical content. I want to try and share my experiences getting my startup off the ground on a fairly regular basis and this post is the first entry towards that goal. I hope that people will get something useful out of me sharing this experience, and I hope that if you have questions you’ll ask them in the comments or shout at me on Twitter.

As you probably already know, I started working for myself last week. It didn’t really feel all that different, especially since I am still spending half of my time working at the same contract I was before I started this adventure. That is great though, as I love the client that I am currently working with. For the current time frame I am alternating between working 2 and 3 days per week on my own project, while working 2 or 3 days with my client.

Last week I started out with a three day week working on my own stuff. It was nice because I had a bit of a list of things I needed to get done. Some technical, some business related.

On the business side I wanted to get Quickbooks setup, and I also wanted to find an accountant. Getting things straight on the business side of things was a top priority on my list, since otherwise I wouldn’t be able to sleep well at night. I tend to worry about those sorts of things. Having an accountant that I can go to and ask questions, and who can look over what I am doing with my financials is extremely important to me.

From a technical standpoint, I also had a few goals. My main goal was to become more organized. I had already been working for a little bit on my project, but I hadn’t really accomplished anything. I had mostly been doing a little proof of concept here, writing some test code there, but nothing that I could really use. And that is probably a good thing since most of it wasn’t written with any organization or testing in mind.

My goals were as follows:

  1. Figure out what I could cobble together of the work I had already done – That ended up being basically nothing. I ended up rewriting all of it, and it is now considerably better and pretty well tested.
  2. Figure out what I actually had to do – It is important to start cataloging all of the items that need to get done. My list is a bit daunting. It is still early though, and I have a good ways to go.
  3. Get my source into some hosted source control – I hadn’t yet put any of my source into source control, and I knew that I needed to get that done right away. Since I like Github so much, and I work with it regularly, I got a paid Github account. I ended up getting a regular account, and not an organization, because I don’t feel like the added benefits would get me anything right now.
  4. Get a build running – I wanted to get an automated build going, especially because I now have some integration tests which need setup. Automating these tests needed some code around it. I decided to use Ruby, Rake, and Albacore in order to automate my .NET builds. If you’d like to see how to get this done, go check it out here. When I implemented it, I opted to just use MRI (normal C Ruby) instead of IronRuby. It all works pretty much the same though.

Overall my first week was great, I felt like I got quite a bit accomplished and I am already getting a bit impatient with finding more time for work. I am losing some of my evening hours since I am also trying to get a presentation done that I am going to be giving at local .NET user groups in a few weeks, so hopefully I can get that knocked out quickly. I’ll be putting up a post about that soon. Once that is done I’ll probably start working on an upcoming TekPub series that I will be releasing. Be on the lookout for that in the next few months!