I work at my desktop PC almost every single day for at least 6 hours. That’s 6 productive hours of doing some type of creative work – writing, programming, graphics editing, etc. My PC is a tool that enables me to get things done and make money. As such, it is very important that it allows me to perform the tasks I need to as quickly and efficiently as possible.
In this post, I’m going to talk a little bit about the tasks my computer has to perform and then go into detail about the hardware that I’ve gathered that makes those things possible. By the end, I hope that you have garnered some tips in case you want to build your own PC and you’ll realize that you can get a ton of bang for your buck if you decide to roll your own machine. If you want to skip straight to the hardware recommendations, be my guest
What Do I Do?
When it came time to upgrade my desktop at the end of 2011, I sat down and thought hard about the types of work, both development and otherwise, that I do with my computer. The following list is what I came up with:
- Doing income and expense accounting
- Writing specifications, emails and other documentation for clients
- Receiving Photoshop files from designers and turning them into working software
- Developing that software in one of many languages or platforms:
- PHP, HTML, CSS and JS – This is my primary toolset
- .NET – I have active development projects here as well
- Ruby on Rails – I have dabbled in RoR and would like to again
- Node.js – I would like to learn this this year
- General web browsing and reading
- Listening to music via one streaming service or another (currently Rdio)
- Light gaming of one sort or another
As you can probably see, almost all of those above tasks involve editing text of some sort. In addition, it is likely that I’m doing several of them at once (like editing a stylesheet, looking at the result in a browser, and checking into a source control system.) I also knew ahead of time that I absolutely hate waiting for my computer to do stuff.
What Did I Want?
This was the hard part for me. I’m very reticent to make a large expenditure, but when I do I tend to go all in. That means getting the best stuff I can afford (that’s not wasteful) and going from there. Because business has been so good to me lately, I knew I could afford to splurge a little bit. I came up with the following wants list and I think I nailed all of them:
- Ability to use multiple hard drives
- Software based dual boot is a pain in the ass and I really wanted to work with both Linux and Windows
- Roomy computer case
- I need somewhere to put all my components and I want it to be easy to organize
- Triple monitor setup
- Two monitors were great for two years, but I wanted to up the ante
- Super fast HDD read/write speeds
- I’d heard wonders about the speed of bootup with fast drives and I wanted to experience it myself
- Ridiculous amounts of RAM
- In my opinion, you can never have too much RAM, especially now that it is so cheap
- High powered graphics cards
- When I do occasionally game, I like to do it in style
There are some things that I specifically didn’t care about that much:
- Super fast processor
- Very few things are CPU bound anymore and I can make do with a middle of the line CPU
- Tons of storage space
- I don’t store media collections on my development rig (or at all really), as I just stream all my music and our living room PC holds our movies
Once I knew what I wanted, it was time to go searching for components. Finding the correct pieces is the most important part of building your own PC, as once you find the things you want it is fairly easy to snap them all together to make them work.
I took my time with my hardware decisions, poring over the reviews on NewEgg to determine the best pieces and feel really good about the rig I ended up with. I know for a fact that not everyone would be well suited to the set of hardware I ended up with, but this is about what I built, not concrete recommendations for anyone else.
If you’re going to build a PC you should take your time when picking your case. You’re going to have it a long time (I actually upgraded in the same case I’ve had for a few years) and you want it to fulfill several different objectives, roughly in the following order:
- Holds everything you need it to, most importantly your chosen motherboard
- Has good ventilation so your expensive computer components don’t overheat
- Is easy to open and shut so you can clean it out
- Looks nice – this is subjective, of course, but I think it is important
The case I am currently using, and have had for about 3.5 years now, is the Antec 900. I seriously love this case. It fits all of the criteria I laid out above and is really sturdy. It has easily survived one cross-town and one cross-country move. The fans haven’t even stuttered and it is really nice to look at (especially if you arrange your cables nicely).
The only drawbacks I can think of with this case are:
- The fans can be kind of loud if you have them cranked up (which I like to do) because they’re so big
- The power supply cables get kind of hard to manage because there doesn’t seem to be a well-defined place to put the extra ones
- The case gets dusty fast because of the huge fan openings
Those things are easily remedied with music (masks noise), cable ties (arranges power leads) and compressed air (cleans the thing out). I would easily recommend this case to anyone.
If you’re going to be running a high end rig, you’re going to want a high end power supply to power it. The good thing about building your own PC is that you can usually get a pretty good bundle deal on the power supply from NewEgg if you’re buying a case at the same time.
Because I knew I was going to be running multiple graphics cards, a modern processor, a bunch of RAM and multiple hard drives, I decided to go with a pretty beefy power supply from Corsair. Quite honestly, it might be a bit of overkill but I just wanted to be safe given the cash I was laying out for everything else.
It seems like the specific product I purchased has been deactivated, but there are plenty of other options you can look at. If you’re looking for a similar piece of hardware, you might take a look at this power supply which has similar stats and outstanding ratings.
I can’t lie about this one – I went almost completely off of recommendations from reviews for my motherboard. I knew up front that I had a few requirements for the motherboard:
- Supported the latest line of Intel processors
- Had SATA III ports for my speedy hard drives
The one that was recommended in almost every review I read was the MSI P67A-GD53. I have not been disappointed with this bad boy. The ports are well positioned on the board itself and it was quite sturdy coming out of the box. The only thing that isn’t so great was the positioning of the front panel connector pins once I got the board in my case – they are on the opposite side of the case from the front panel so I kind of have to snake them through everything else.
There’s a couple of other cool things about the board. First, the BIOS is easy to use and intuitive. Second, the board has two PCI Express 2.0 x16 slots and they’re spaced far enough apart to make insertion of two video cards pretty easy. Finally, there is a neat little button called OC Genie that you press before booting up and it automatically overclocks your processor for you.
Overall, I’d wholly recommend this board unless you really need more than the 2 SATA III ports. In that case you might be better served by going with something a bit higher end.
As stated earlier, I wasn’t going to go balls to the wall with the processor. I knew I wanted to go Intel and I knew I wanted something fairly recent. Given those requirements I decided to go with the Intel Core i5-2500k 3.3GHz processor. It performs wonderfully for me, will last for another 3-4 years at least and I have yet to peg any of the processor cores, even when running Battlefield 3 at ridiculously crazy settings on a 64 person server. I don’t really have anything more to say about this one other than you probably don’t need anything more powerful than what I got (and to be completely honest, you might be fine going with an i3 instead of an i5 if you wanted to save some cash).
I love me some RAM. It makes your computer run faster and makes everything snappier. The more RAM you have, the faster your most used programs will load and the happier you’ll be.
For my particular use case, large amounts of RAM mean I don’t have to wait forever when I want to search and replace across a particularly large file open in a text editor (like Sublime Text 2).
The motherboard I picked has 4 DIMM slots so I picked up 4 sticks of 4GB DDR3 1600 RAM. When I was purchasing my components the 8GB sticks were just too damn expensive, but they’re on sale right now and I would have bought them at the price they’re at as of this writing.
I’m an NVIDIA guy and probably always will be. Their products have always just worked for me. Also, the cards are just pleasant to look at for the most part.
As stated earlier, I knew I wanted to run 3 monitors. Since NVidia cards only have two simultaneous outputs at any point in time that means I needed two cards. I debated long and hard about getting the top of the line card at the time (the GeForce GTX 580), but I just couldn’t justify the cost. I went with the middle of the line GeForce GTX 560Ti with 1GB of memory. I saved some money on the final build cost and got everything I want from the cards. They perform flawlessly, let me run my three monitors and they glow really nice in my case.
Right now the particular cards that I purchased have been discontinued and NVidia is gearing up to release their 600 series. The GeForce GTX 680 is said to have three output ports that work simultaneously, so if I was doing the build again that is probably the way I would go. If you still want to run multiple cards in SLI for some reason, a very similar card to the one I purchased (almost exactly identical, I believe) can be found here. Purchasing two of those will certainly be cheaper than 1 GTX 680, especially right now.
I upgraded from 2 to 3 monitors during this build and, luckily for me, they’re still selling the model that I previously purchased 2 of. It is the ASUS VH242H. I love this monitor. It is big, vibrant, easily configurable and the resolution is just right for someone who works in front of his computer all day every single day.
I have had two of these monitors for 3.5 years now and haven’t had a single dead pixel even though they’ve been transported all over the place. If you’re a print designer you might be better suited to going with a monitor with a guaranteed color profile or something like that, but for a programmer these monitors are awesome. Tons of real estate and relatively cheap given everything you get.
There are two drawbacks to consider. First, the monitor stands they come with don’t adjust up or down. Second, they don’t really tilt very easily back and forth. If you don’t have a desk that you can roll your chair up to and adjust so your eyes are in the right place, these might not be the ones for you.
As a side note, I was really tempted to get a touch monitor to play around with, but I just couldn’t stomach the fact that I’d have a non-matching display sitting next to my three identical ones. Apparently I am super anal retentive like that.
Here’s where things got really interesting with this build and, I have to admit, I am extremely happy with how things worked out. I couldn’t have wished for anything better.
If you read my original list of requirements, you’ll know that one of the things I wanted to be able to do was quickly and easily switch back and forth between using Linux (for most development and general use) and Windows (for .NET development, productivity software, photoshop pixel pushing / matching and gaming). If you’ve ever tried to do a software based dual boot then you’ll know that Windows hates being treated as a second class citizen on a hard drive. That was something I just didn’t want to deal with, quite frankly. My solution, and one I hadn’t seen a ton of validation of around the web, was going to be multiple hard drives.
I figured I’d get 4 hard drives. Three to hold operating systems (Windows 7, Windows 8 and Ubuntu Linux) and one for shared use / backups / etc. I knew the OS drives would be SSDs and the shared use drive would be a larger magnetic drive. I just needed to figure out which drives to buy and a way to use them all in a way that was both easy and fast.
First, I picked out the drives. I bought three Crucial M4 128GB SSDs and also picked up a Seagate 7200 RPM 500GB magnetic drive. Now came the question of getting these things to work the way I wanted them to.
That’s when I found the ICY DOCK 4 x 2.5″ Hard Drive Bay. It is an awesome piece of hardware that lets you hook up four hard drives via SATA III connections and pop them in and out at will. I mounted the drives in the bays and plugged everything together and it just worked.
I’ll be writing more in the future about how my hard drives are partitioned, labeled and mounted/used (in terms of OS interaction, that is), exactly, but for now let me just say that Ubuntu recognizes and can write to NTFS formatted drives and both Windows installs recognize all the hardware they need to. I can seamlessly share MySQL databases and virtual hosts / development files between Linux and Windows on the magnetic drive while keeping each OS separate on its own SSD. To switch from one OS to another I just power down, move the desired drive to the top left slot, and power back up. Because they are all SSDs operating over SATA III that whole process takes less that 15 seconds from clicking shut down to booting into the other OS.
Parting Thoughts and Some Tips
First, building your own development rig isn’t for everybody. If you just want to buy an iMac, that’s awesome, but I would never be happy doing that. I would never be happy buying a stock PC off the shelf, either. I enjoyed putting together my development machine and was able to tailor it to my exact needs at a price lower than any PC builder could have done for me. After picking out all the parts, it took about 2 hours to put everything together and get it working – time well spent in my opinion.
Second, be careful picking out your parts. Make sure everything you get is meant to go together. The reviews on NewEgg are really helpful in deciding what to get and their cross item promotions are actually useful – they’ll often feature pairs you’d want to get together anyways.
Third, my PC is a little bit overboard. I know that, but that’s the way I wanted it to be. My plan is to do an upgrade every three years and I think that is an appropriate amount of time given the current rate of advance of technology. You probably don’t need 3 SSDs in a single computer in some crazy hard drive bay, but that’s what I wanted to help me accomplish my goals in a way that made sense to me, so that’s what I did.
Finally, make sure you’re looking for deals. Sign up for the NewEgg newsletter. It contains crazy coupons and amazing savings if you’re willing to build your computer piecemeal. I saved like $150 off my hard drives because of the newsletter coupons.
If you want any advice on computer components, I’d be happy to help you out. Just let me know!
3 responses to “Development Computer – 2012”
[…] a previous post, I talked a lot about the hardware that runs my development PC. Getting that all set up and going […]
It’d be great if you could give a component by component break down on how much you paid and finally the total cost of the machine plus tax.
Kevin – the costs (at this point) are pretty much irrelevant because things change so fast in the tech world. I tried to strike a good balance between outlay and benefit when I built the machine.
I’ll be upgrading again later this year so Angela and I can play Battlefield 4 together and I think I’m going to switch from 1920×1080 to 2560×1440 monitors so I’ll need to upgrade my graphics cards to make that happen. We shall see!