Ask HN: I'll be starting with a new job soon but their machines have Windows

3 points by grover_hartmann ↗ HN
Basically, I've got a job to write code using Node.js, AngularJS, Rails, PHP and so on.

However, all their computers have Windows and I'm not comfortable using it to write code.

I asked if I could use Linux but they said I can't bring my own laptop, they said I could develop on a VM though.

What are the disadvantages of using a VM? I find it disappointing they won't let me install Linux on it.

Any workflows I should now when developing on VM?

Thanks.

20 comments

[ 3.6 ms ] story [ 47.6 ms ] thread
Connect via VPN to your machine somewhere else and do it all over the net?
My dev enviro is a debian VM that matches our servers with xfce. This on an older Mac via VMware fusion 5. I don't really like OS X so I almost never switch out. Once I full screen the vm I can't tell the difference. Even with videos. (I don't play games so I'm not sure there). I'd say a vm is a perfectly viable option. Plus you'll have the builtin option to hop back to windows and see your work as the unwashed masses will see it in a blink.
Being that VMs usually have terrible disk I/O, I've found that it helps noticably to set the Windows host to increase the amount of memory it uses for the disk cache. There's the setting in 'My Computer" > 'Advanced', plus a little-known registry (or group policy- I don't recall off the top of my head) setting that increases it quite a bit more than the GUI-fied switch. You can find it on Google easily enough.

-my 2 cents

Given the way Linux uses physical memory and swap space, pumping up the amount of RAM available to the VM might provide more fine grained control [1]. Since the implication is the developer will be primarily in the VM, constraining the physical memory available to Windows somewhat is less likely to impact performance particularly if Windows configuration is tailored to the usage scenario.

[1] And RAM is cheap.

You can use cygwin as a shell, then you will mainly be using a text editor, a browser and a shell that is similar to the Unix shell, so it will not be fundamentally different from Linux - from the user point of view.
Second this, as a long OSX & Vim user, cygwin was a HUGE relief for the switch to PC for a new job. Definitely an essential piece of software now.
Run from such a company. You are just an asset to them that has to obey. You are not doing a nuclear research and there's not a reason for them to force you.
Professional programming is a team sport.
That has nothing to do with what i have said.
Thats a pretty drastic position to take. There are any number of reasons why a company might require Windows that are perfectly reasonable. Everything from "Our clients demand it" to "we are governed by obscure legislation foo that requires software of type bar, and the best we found was goo on Windows."

I'd mark it down as an oddity and ask why they have such a requirement. Their response may turn it into a red flag, but the simple requirement doesn't.

This could be said of any company, even ones that let you choose your own workstation. You're fooling yourself if you think that the OS on the workstation indicates some sort of difference in your employer. If they mandated Macs with OSX would it make any difference? They are still mandating something and you are still an employee.

Also, use vagrant and build your own custom box to match your production environment's OS flavor, web, app and db server versions. Even if you are on a Mac you should do this.

I've worked in VM environments and they are fine for some degraded definition of fine. You can certainly get most everything done with them if thats what you want.

I'd argue a little bit that in this day and age, that unless you have some very specific Linux requirements its a valuable career skill to be able to develop on multiple platforms.

It's not that I can't develop software on Windows, I could if I really wanted to.

It's just that GNU/Linux happens to be my preferred environment for writing code, and I see nothing wrong with that.

I guess the question becomes, is the work important enough to switch? If it isn't then maybe the money is good enough, but that's a bit of a different standard. If the work isn't important and the pay isn't good enough, then there's no reason to take the job.
Vagrant is your friend. I switched from a linux env to my current job which has a MS stack. Took a few months before I fully got my windows env up and running, and in the meantime Vagrant tided me over
Almost everything is the same using a VM, with the bonus of VM functionality like cloning and changing the hardware specs.
Changing hardware on Linux is very seamless, unlike Windows.
Are you allowed to use a LiveCD/boot off a USB?
(comment deleted)
Probably not, the use of personal hardware is forbidden, and I think that includes personal USB drives as well.