7 ms·
Good questions to ask when being interviewed: - What is your standard developer hardware configuration? - How often is it refreshed? You get bad answers to t
by cletus 15y ago
Good questions to ask when being interviewed:
- What is your standard developer hardware configuration?
- How often is it refreshed?
You get bad answers to those questions and it's a definite warning sign (IMHO).
If you're working for a cash-strapped startup (possibly bootstrapped), you may want to negotiate a deal whereby you supply your own hardware (in exchange for higher salary and/or stock/option grants) if they're only in a position to provide substandard hardware.
One side note: what constitutes good hardware depends on what you're doing. If all you're doing is writing PHP/Python/Ruby in vim/emacs and running a local Apache/nginx and possibly a MySQL server then it almost doesn't matter what hardware you have... apart from the monitor.
But if you're compiling huge C++ (or even Java) projects then you probably want good I/O (possibly an SSD, preferably in RAID1 config for redundancy), lots of RAM and a good CPU.
As one data point: I have a 6 core machine with 12GB of RAM and 2 24" monitors (some opt for 1 30") plus a Macbook Pro 15" with SSD. You can refresh your hardware every 18 months if you want to (but most don't unless they have a pressing need; I know some people with 4-5 year old workstations because those are fine for what they do).
- masklinn 15y ago> possibly an SSD, preferably in RAID1 config for redundancy Since the code should be in a source control system, I don't see the point of this. RAID5 (increased redundancy and throughput) maybe, but even then you're increasing the chances of failure (the RAID hardware itself can fail) and you're not gaining much (if any) in the way of IOPS, which will be your biggest issue.
- cletus 15y agoIt's not about source code backup. It's about a developer not losing half a day when an SSD dies. With RAID1, at least in theory, when one dies you should be able to replace it and keep going.
- rcfox 15y agoGoing half a day without committing code is missing the point of version control.
- there 15y agoi think the parent meant that the developer would not be able to get any more work done during that day because their machine is without a hard drive, not that the code on the hard drive would be lost.
- ErrantX 15y agoThe better solution here is to have a couple of "gold disks" of a default developer machine; with all the required programs etc. That way if you go down you can just swap the drive out and be on your way again. This is what we do (and we have a lot of hard drive churn due to heavy use) and it works well.
- protomyth 15y agoI think I would rather have the RAID so I don't have to take as much time. Setting up the personal info stuff on a machine takes time too. For Linux / Windows folks, SuperMicro has a nice tower that has 4 hot swap hard drive bays that I really like.
- ErrantX 15y agoThings like Chrome and Dropbox have made this less of a chore. Speaking only for myself... I have a gold disk plus a little script that syncs scripts and configs to backups. And I use Chrome logged into my Google account. I do see your point, but a lot of it can be mitigated.
- SoftwareMaven 15y agoBetween BitBucket and Dropbox, it takes me no time at all (well, a little time to sync Dropbox, but I'm busy in those times).
- 15y ago
- mahyarm 15y agoThats what time machine with a relatively slow external firewire HDD is for. It would only lag by an hour at most.
- jrockway 15y agoAre you serious? The goal of RAID is to eliminate downtime; a drive fails and you pop in a new one. All without ever having to reboot or even stop working. With Time Machine, you still have to manually rebuild your system after your drive fails. This is not what Time Machine is for; it's for, "oops, I shouldn't have deleted that file". (Which, incidentally, RAID is not for.)
- r00fus 15y agoRAID + SSD = no TRIM (cept for recent Intel drives). That's a problem. It's easier (and much cheaper) to just have a bootable backup that's updated nightly. Even a RAID1 failure requires you to have a replacement (ie, trip to Fry's). A bootable backup, however slow, is just there.
- jrockway 15y agoPretty sure this is not the case for Linux. LVM supports discard, so md probably does as well. Also, you don't immediately need a replacement drive: RAID1 boots fine with only one device. Assuming your company policy is to have RAID1'd SSDs for all developers, you're probably going to have extras on the shelf anyway. Time machine is for accidental data loss. RAID is for disk failures.
- r00fus 15y agoExactly. A nightly differential bootable system image backup a la SuperDuper, Macrium Reflect, Acronis or the like + cheap external 3TB drive = zero downtime... if the SSD fails, boot from external, and schlep it while the SSD is repaired/replaced. Time Machine is bonus for lost/overwritten local files. Source Control guards the jewels (you don't fear committing untested code to local branch, do you?)
- harisenbon 15y agoThis recently happened with our main content server. I had been bugging my boss for almost 3 years to do backups of the system data as well as the content data, but his logic was that since the system was RAIDed, even if we had a loss of data, the RAID would allow us to swap in new drives. Well, our air-conditioner went out for 3 days in the middle of a Japanese summer, and the RAID controller itself shorted out, taking the drives with it. My boss still doesn't understand how we lost our data, because "RAID was supposed to protect our data."
- praptak 15y ago"But if you're compiling huge C++ (or even Java) projects then you probably want good I/O (possibly an SSD, preferably in RAID1 config for redundancy), lots of RAM and a good CPU." For huge builds it makes sense to go with a compile farm. Working on a god box that sits idle 99% of the time is a bit wasteful.
- rch 15y agoQuick aside: does ESXi still impose too much overhead to move a compile farm onto VMs? A friend of mine tested it 3 years ago and it was something like 300% slower (no idea about the disk config, but he's a smart guy). It would have been worth it at anything under about a %50 hit...
- Spyplane 15y agoWe tested it at my last job maybe 5 months ago and it was a complete failure. Granted we didn't spend a lot of cycles on it, but we saw how slow it was and went back to native hardware pretty quick.
- absconditus 15y agoWhat exactly would be gained by using VMs, assuming that there were no performance problem?
- Joeri 15y agoTwo reasons: - Easy migration between hardware configurations of a running system. - Snapshots to revert quicker after a failed upgrade / change. (Typically in addition to traditional backups.)
- tedunangst 15y agoThe boss gets to put "lead the conversion to a virtualized environment" on his resume. True story.
- rch 15y agoMy case was for a heterogeneous build environment, where separate environments needed to be maintained for different developer groups. It would have been a good fit for VMs.. except for the performance.
- cosgroveb 15y ago>If all you're doing is writing PHP/Python/Ruby in vim/emacs and running a local Apache/nginx and possibly a MySQL server then it almost doesn't matter what hardware you have... apart from the monitor. OK. If you're developing on a local instance of Apache/nginx sure. But as a professional web developer I usually have a fully virtualized dev environment running. That means, at least one of our app servers, our database server, and possibly a Windows VM (for testing in IE - usually I can save this for when I'm in the office and have all this stuff running on another machine).
- regularfry 15y agoYep, this is true. At the very least I've got to be able to knock up an instance of the server OS version quickly without interfering with the rest of my desktop config.
- nickolai 15y agoRegarding compiled languages, I wouldnt really mind a poor man's workstation setup as long as * The compilation is done remotely on a beefy server with no CPU/Disk IO/Disk space issues. * I get several monitors. they don't even have to be big - 17 inch is fine - as long as there are at least two. * The dev box is able to handle its software responsively. I souldn't have to reboot it. Ever. Hell any dual core with 2GB of ram, a linux distro + emacs would do. Currenlty my 600 euro i7 box at home would probably put my work box and the team's remote compilation VM to shame. Both. At the same time... Interestingly, from reading the comments i feel that startups are actullay more inclued to supply devs with good hardware than established players. I was expecting quite the opposite.
- ma2rten 15y agoThe reason why startups are more inclued to do so, is that extra hardware cost almost nothing, compared to salaries. The only reason not to is bureaucracy.
- baconner 15y agoI suspect the reason is at startup the person making the final decision on hardware actually has to use it and is intimately familiar with what's being done on it. At a big org with say 1000 developer's that's not the case and at 1kish savings per machine there's a big "look what I saved us" opportunity for that decision maker.
- hkmurakami 15y agoI know a place that gave new employees (even coders) machines with 256mb ram... I shuddered in horror.
- rbanffy 15y ago> i feel that startups are actullay more inclued to supply devs with good hardware than established players. On most startups, the CEO's desk is, at most, a couple dozen steps away from the devs. It's the bean-counting professional managers that are brought in after that stage that make the developers miserable.