Ask HN: What's your dev machine setup?

42 points by matthatter ↗ HN
It's time to replace my PC. I'm curious about your setups - for a dev machine, what kind of hardware do you use/recommend? How do you configure your machine to keep it running nicely? Any other thoughts configurations/setup for a dev machine?

82 comments

[ 3.2 ms ] story [ 168 ms ] thread
I use two thinkpads T560(win) & L450(linux) and just dock them when using either one for more monitors

I do miss having more than dual core cpus...

I have a 2013 MacBook Air. I used to develop Django apps on a Windows PC and was perfectly satisfied. I had to switch because of a off-hand promise. I've never been happier.

I made a lighthearted promise one day, many moons ago, to my client. We were running our service on CodeIgniter in PHP. I found it difficult to move quickly. I was gently trying to convince them to move to Django. My client jokingly remarked that if we ever do change to Django I will need to start developing on a Mac. Knowing that it is not smart to just change languages and frameworks for the heck of it, I agreed to the promise. I did not really want to get a Mac. Some time passes and we need to do a ground-up rebuild for various other reasons. Other people recommend Django to him out-of-band and bam!

Promise made, promise kept. We switch to Django. I get a Mac. Both decisions turned out very well.

The main thing, as silly as it may be, my favorite thing is the multiple desktop and the three-finger touchpad sweep to change between them. I had a brand new 3 monitor set up, with plans of going to 6. All of a sudden I have as many "monitors" as I want in a super-portable package!

I like the Mac. It took about two weeks to get used to it, but it is nice. It feels very natural. I may go back to a PC one day, but not before I can have virtual screens and a multi-touch sweep to change between them.

Do you have to obsolete (not produced) thunderbolt displays? I have a macbook air and am trying to figure out how to do a two (external) display set up but have had trouble figuring out which monitors/set up would work for this. If you do use thunderbolt displays I'll keep looking for other solutions, but if you have a set up with another brand of display and could post your set up that'd be super helpful!
I have a Dell UltraSharp Monitor [1] attached to my Air when I use it, the monitors come with the correct display port cables to connect to a Mac. You can also daisy-chain (MST) these monitors so technically if you'd use two you only have to use one port on your Air. However, the Air doesn't support more than one monitor at the time, at least I can't get it to work on my Air (I think it has to do with the bandwidth in pixels that the GPU can process, or something like that). I think the Pro is capable of supporting more than one display at once. The screens are pretty good for the price charged.

http://accessories.ap.dell.com/sna/sna.aspx?c=au&cs=aubsd1&l...

I was not very clear when I wrote the original comment. I had a PC with multiple monitors. My MacBook has no external monitors. I use the virtual desktops and three-finger swipes, and could not be happier.
> I may go back to a PC one day, but not before I can have virtual screens and a multi-touch sweep to change between them.

Windows 10 does all of this.

I have an "old" MBP 13'' from 2013. Works just fine for me, I'm sure I can get another 2 or 3 years with it. If I had to replace it now I would go either with a new System76 Lemur, or a Dell XPS 13. I'm a big fan of 13 inch screens since I'm always on the move.

Not really sure what you want to know re: configuration.

I'm also using an "old" 13 inch MBP. I was hooking it up to two 27" 1080p monitors using a Matrox "Dual Head to Go," with Divvy hotkeys to make that easy to use. (Basically, I just had hotkeys to move windows to the left or right side of either monitor.)

I think I'm going to wait until next year to buy a laptop. I really want to see what Apple and Microsoft can do with a Pascal GPU.

I have a mid-2014 Macbook Pro which I love (although given Apple's direction I may switch to linux). I haven't found any hardware that really compares with Apple's products on build quality and just the pleasure of use (from the screen quality to the responsiveness of the trackpad and everything in between).

I normally have it plugged into a 24" Dell monitor but got rid of my Apple wireless keyboard and magic mouse because actually prefer having my laptop in front of me and the larger (primary) monitor above it so I don't have to move my neck/eyes along the horizontal rotation.

As for an environment, I mostly programme with node.js and use docker to contain my databases, rabbitmq, etc.. All my config is stored in my dotfiles [1] anyway so setup is easy (and I basically live in my terminal so homebrew + zsh + tmux + vim sorts my life out perfectly).

[1]: https://github.com/gfarrell/dotfiles

Interesting response when you state that you may give Linux a try given Apple's direction and then you list what you like about Apple's laptop. I wonder why you're thinking that other then the recent 'post' by some complaining about the new Notebooks. I recently purchased a new MBP 15 (up from a 2011 MBP 13) and the build quality is still there, the design of the new laptop is really nice and the screen quality is excellent.

To top it off the new MBP have a awesome trackpad and are very quiet (least mine is I have the 2.6GHZ 16GB 256GB SSD model) and even while playing videos on Google Chrome (which use to really heat up my 13 inch) my 15 inch is quiet and cool.

My feeling is that Apple have basically decided to pursue a "fashionable" path, rather than actually considering design as they used to (and also have abandoned their professional market). (1) getting rid of magsafe is a PITA; (2) USB-C is a PITA; (3) I think my MBP is the last one in which I can replace the hard-drive (or take it out if my logic board fails).

I agree on the build quality - they are still really nice laptops, but the price increase and trajectory of bad design in general (I think that without Steve Jobs steering him, Jonny Ive is incapable of producing genuinely groundbreaking work, and is instead coming up with some really egregious rubbish) are making me feel like jumping ship.

Likewise with OSX: the main reason I use OSX (oh, sorry, macOS) is not the OS itself anymore (which I used to love) but more the apps I can't really do without (basically just Alfred and 1Password) - for everything else I spend most of my time in the terminal.

Worth checking out - https://usesthis.com/
nice one, took me a while to find the developer category:

https://usesthis.com/categories/developer/

Ha, really? What made it not obvious? Genuinely curious so I can improve the discoverability etc.
Coming back to this today (2nd visit) it's a lot easier to find my category. I guess part of the reason I was confused at first is that I wasn't sure of what I was looking at! Good thinking on you for making it, nice work :)

Curious to why you're sorting categories by name as I'm guessing the majority of people using/viewing it are developers. Scrolling down searching for 'd' would be easier if the first char was somewhat bigger?

Every six months or so I start to wonder about my setup and how it compares to others and I try hunting down this site. It's surprisingly tricky to find if you don't remember the URL.
Yeah, I guess I've made it tricky by not matching the name and the URL.
I have a Lenovo Thinkpad W550s (i7-5500U and 16GB of RAM). I dock it and use two 1920x1080 monitors (and not the monitor on the computer) with a bluetooth mouse and a Microsoft ergonomic keyboard. It's provided by my company's IT department who keeps up security, though I do much of my development in an Ubuntu VM. If I was providing my own machine, I'd probably do similarly but use Ubuntu as my main OS and have Windows for the few Windows-specific tools I need.
Macbook Pro 10,1, early 2013. Still a very speedy machine, although I do covet the new SSDs that are almost an order of magnitude faster. Apple bluetooth keyboard, and some random mouse and an external 24" monitor. Ruby on Rails, iOS, web dev.
I'm doing frontend (react) on a MacBook Pro 15' late 2008 (8go ram, SSD) plugged to a 27' monitor.

Code editor on the Mac screen, terminals, web browsers and Slack on the external monitor. No external keyboard nor mouse.

I'm also looking to get a new machine: I would love to hear the feedback of owners of MBP 15' with touchbar. My dilemma: get a 2015 version or 2016 with touchbar?

I received a maxed out 2016 15" MBP on Tuesday and so far am happy with it. The ESC key (or physical lack thereof) was only a mild irritant at first and I've already adapted.
The keyboard on the new MBP is an improvement from the new MacBooks, but it still doesn't feel as good as the keyboard from the 2013 MBPs IMO. On the other hand, the larger trackpad is fantastic and makes a big difference when browsing, etc.

The touchbar is a wash for me, not having a real ESC is kinda weird, but it's not a deal-breaker for me (although I don't use terminal-based editors often.)

The biggest frustration for me is the dongles, I have to carry around 4 of them in order to maintain my workflow and device connectivity. I get the argument that Apple is nudging us forward on this, but they sacrificed a lot of usability and convenience in getting rid of the current gen ports, and I notice this daily.

Have you looked into BetterTouchTool?
2014 13" Retina Macbook Pro on a Rain mStand alongside my Thunderbolt display. On the desk I also have a mechanical keyboard with cherry blue switches, Logitech G502 mouse and Apple desktop trackpad.

Not machine related, but very important to my setup, I have a Herman Miller Mira chair and Ikea motorised sit/stand desk, although I don't stand nearly as often as I should!

I think generally as long as you have a suitably powerful computer for your job, the peripherals and desk environment are most important.

I've got a Thinkpad X1 Carbon (2015) that I run hooked up to two external 27" 1080p monitors along with the 14" 1080p laptop screen itself. My host OS is Windows 8.1 with my Chrome/Word stuff, some Visual Studio, and then I have an Ubuntu VM I run for all other types of development.

The portability and battery life of this laptop are what I love most.I can go to a coffee shop for 9-10AM and work through to 5PM without needing my charger.

Does it overheat with three monitors? Have an x220 (older notebook but with 16gb and SSD) and it is impossible to use it with two external 1080p monitors without cpu throttling.
No it seems fine. How would I test for CPU throttling? That said, I do find 8GB RAM restrictive for the number of tabs/VM I have open and wish I had 16GB. Also, I think the SSD might be slowly dying because it's had many, many writes on it by now (reformats, VMs, videos, etc.) and sometimes Windows takes ages to open Explorer to show me my files.
thinkpad t460 with 32gb of ram and 1tb ssd (upgraded from the minimum options)

I hook that up to a nice keyboard/mouse/monitor setup when at my work desk.

2015 Macbook Pro, which has been the best machine I have ever owned.

Just as important as the machine though is the software/ shortcuts I have put on it.

    -homebrew
    -iterm2 mapped to a global hot key of cmd+shift+space (get to the terminal in a hurry)
    -contexts.co is also a great tool that has almost resolved all of my window managment issues
        -chrome mapped to cmd+1
        -various other tools mapped to cmd+2 - cmd+5
    -visual code studio. Nothing important to add. I just enjoy it. (not my ide though)

A note on osx window management,

Contexts.co resolved a lot of my problems but not by itself. For all you dev's who use Chrome and extensions or apps. If you're more than frustrated with how osX handles switching between chrome and your extensions (hangouts, keep, postman, etc.) try removing the app version and find the extension for whatever you are looking for. It's not perfect, but with context.io and the extension version of hangouts, when I cmd+tab to hangouts, it now actually takes me there.

A 2011 i5, 12GB RAM, 128GB SSD +2x 1TB HDD with two 24" 16:10 monitors. Using Sublime Text since 2012? (best software buy ever) for quick PHP fixes, Go micro services and scripting mikrotiks and lately Android Studio which runs very fast compared to my 2015 13" Macbook Air which, I'm using for all the above except the Android part.

Oh and btw, I'm running Debian 8.2 and Gnome and I couldn't be happier. Some day I will be installing onto the mac as well; though I really like the macos ui and everything it is starting to get ever more difficult to opt out from various updates etc.

EDIT: re-reading your post, I would definitely recommend dual monitors with 16:10 ratio for 24" size or less. I also recommend an SSD m.2 for swap, root, /usr partitions, specifically the expensive NVMe ones from samsung. I can't emphasize enough on how big of a difference they make even compared to sata SSD's.

For me I actually spent a fair bit of time trying to decide what machine to get, after my iMac died. What I went with is a docked 15 inch MBP (16gb ram, 2.5ghz i7)

Display's on desk are an HP 32-inch envy (main) and portrait 24 inch dell p2414 (secondary)

Mouse is logitech m705, keyboard corsair mechanical keyboard

dev done in virtualbox linux VM, which i definitely recommend doing if you can get away with it.

I will likely move to a linux machine next time around, short of apple surprising us with a new release.

If you're using a Linux VM, is there a difference between using a Mac vs Windows?
Yes, for me I have a lot of stuff still in OSX, and a few hard-to-leave apps.

When my iMac died, i moved my VM to my PC and was able to get back to work with minimal downtime. But even within my VM, I found windows managed to interrupt the experience enough that I went and bought a mac sooner than later. Which is a shame, because my VM gets about twice the performance on the PC.

So for me it's now Mac for leisure, Windows for gaming, Linux VM for work.

But I will move to Linux for leisure, linux VM for work, and (maybe) windows for gaming. I may end up getting a low-end Mac and using VNC or RDP for the few mac apps I really want, if I can't find alternatives.

Main machine is a custom built: 6700k, 32gb ram, gtx1080, win 10.

Laptop: 2016 MacBook fully spec'd out.

On both I use atom and docker. I mount my files from a network share so I can always access them.

i3 window manager - it has a fantastic optimized workflow that I love. I also pair it with a nice mechanical keyboard that has Cherry MX blue switches.

Arch Linux - I don't have to re-install or distro-upgrade my laptop every 6 months, or year. I just keep it up-to-date on a continuous basis. Arch Linux lets me keep things simple and clean.

I also regularly perform system maintenance, like removing packages I don't use anymore. I also never make install software, or use CPAN, or npm global install, or what have you, to screw up Arch Linux/

I built a desktop with a quad core i5, 16gb ram, a GTX970, an Intel SSD, and around 2tb of spinning disk storage. The whole build cost around $700 and it's a very fast machine. I also have 2x 1440p 25" monitors, a mechanical keyboard, and recently added a (normal looking) gaming mouse. I use it primarily for programming/research and occasionally games/oculus rift. Also makes a great web server.

I run Ubunutu, with i3 window manager. I really like this combo after some personalization. It's very stable, and lightweight. I also have two Windows versions and a secondary Linux installation which come in handy.

I also have a 2013 15" rMBP of which I think very highly. I can mount my 2tb of desktop storage, and my SSD as a network drive on the MacBook for sharing files. I also use SSH to run intensive scripts (sometimes GPU stuff) on the desktop.

10/10 would recommend this setup

Quad-Core Haswell Xeon, 32 GB ECC RAM (server RAM is ridicously cheap second-hand). 27" 1400p, 19" 1280x1024 (not a good match, not used very often). Arch Linux, KDE.

Paid about 250 € for CPU/MB/RAM.

Previously: Phenom X6 1055T, 16 GB non-ECC RAM. The X6 was a pretty decent CPU for parallelized work, due to it's six cores, but pretty poor in most other regards. The Haswell quad is "only" 50 % or so faster on average in thread-heavy work, but much, much faster in anything single threaded and has a much more recent ISA (the X6 doesn't include AES-NI, for example).

Mobile: X200 bastardized with a X201 board. Qubes, KDE. Formerly Arch and i3. Didn't like i3's handling in Qubes.

My recommendation: don't buy hardware new. Especially since in the last years there is no real difference anymore between Intel generations. No need to pay a 100+ % premium to get Skylake, if Haswell performs essentially the same.

> don't buy hardware new

Generally agreed, except that SSDs are a major exception which should always be purchased new.

I think drives in general should be bought new, at least for production use (ie. were it is a hassle to replace it). I've got quite a few second-hand rust-spinners, but I only use them for backup purposes, ie. they are all replaceable with no loss.
- 13" 2015 Macbook pro with 2 external monitors (34" and 24") mostly used to ssh to a powerful 16 core ec2 instance (amazon linux), which is where I do all my development

- iterm2 with tmux and oh-my-zsh

- mostly vim / clion / intellij based on what I am coding atm.

Thinkpad W541 (i7, 32gb RAM, SSD), running Fedora, often connected to an external monitor, mouse and keyboard.

For travel, I use Thinkpad X1 Carbon (3rd gen), also running Fedora.

Nowadays I mostly work on native Android dev, so environment is primarily just AndroidStudio, vim, terminal (Guake) and what seems like hundreds of open tabs.

It used to be all Macbooks for many years though. I still have a 2012 tricked out Air and a 2013 rPro, which I need to sell off.

Build a computer on Newegg. Today is black Friday. Get an i7, some SSDs, an NVidia 1080, 32GB of RAM. Full power!
An old Acer which I didn't even care about specs. What's important to me:

- Works with LXDE, Sublime Text, Terminator and Chromium at same time without problems

- Doesn't run games very well

- Enough HD

That's it. Fast for work only. Unless I want to use some IDE or emulate some mobile, but that's not my case.

4th gen lenovo carbon x1, 16gb ram, 512 gb pcie-nvme, i7-6600U, running fedora 24(currently)

i mainly develop for python, go, and javascript, also using a bunch of cloud platform stuff with kubernetes and openshift

in terms of keeping it running nicely, for me that means using fedora server edition with a custom selected Xorg stack and regular updates.

when not on the road i like to attach a 24" 1080p monitor for some extra real estate

I run a multi-headed desktop, running Ubuntu 16.10 + Windows 10 simultaneously.

Specs:

  * CPU: i7-3820
  * Motherboard: Asus p9x79 deluxe
  * Memory: 32GB DDR3
  * Graphics: EVGA GTX 680 SSC + ASUS GTX 970 SSC
  * 1tb Samsung SSD + 2x1TB WD Black HDD

The net result is that I can have both windows 10 and ubuntu running at the same time, with native performance and native graphics, native inputs for both operating systems. The 680 is dedicated to running the Ubuntu 16.10 graphics, and the 970 is dedicated to running the Windows 10 output. I have both cards outputting to multiple inputs for each monitor, so I usually run Windows 10 with 1 display and Ubuntu with my other 2, but I can use any combination, giving either OS all monitors. I can game in windows 10, press a key, and be surfing on Ubuntu 16 while windows does some pesky updates.

Highly recommended setup, but your CPU and motherboard must support VT-D virtualization. Most hardware does not support this. Look into /r/vfio.

Interesting. Can you elaborate on the virtualization stack? Vmware? host in Win10 or host in Ubuntu?
Ubuntu 16.10 using libvirt 2.1 + KVM
I recently saw the GPU passthrough you're describing being done and thought it was really cool. Are both of those cards internal or is one external?
Both internal. The motherboard supports 4 slots, using only 2.
GPU pass-through seems like a huge headache, how are you finding it?
I use a 2011-vintage 17" Macbook Pro. I'll maintain it as long as I can. Memory is maxed out and it has an SSD. It performs about as well as a new one would, plus it has a full suite of ports. Besides programming, I also use it for music recording and photo editing, so the generous screen real estate is very helpful. (Useful fact for those who love their old MBPs... Apple will do an "anything" repair for $300. They'll fix anything and everything they find wrong. I had my motherboard replaced last year that way.)

For the development itself, I do everything in Vagrant. That way, I get my nice Mac and nice editor (Textmate), with a predictable and repeatable build and test environment. I could just check out my code onto a different computer with Vagrant installed, and pick up where I left off.