Hacker News new | ask | show | jobs
by JoeQuery 1780 days ago
I've developed on a remote server for about 8 years now. It started when I was a contractor and my machine was simply too slow to run the project I was assigned. I did not have the money for a new laptop, but I could afford the ~55/month for a dedicated server with 32GB and 4cores. I have worked that way ever since. I've been fortunate enough to work at companies that run their own VM infrastructure which allow me to work this way. And as someone who likes to work in different places, like the park, being able to download docker images while on a Hotspot and it not go through my data plan is amazing.
4 comments

I recently set up a home Linux server and I've been doing my personal projects on it via VSCode's remote development (from my MacBook and my Windows desktop). The server isn't actually as powerful as those machines, but the convenience of having a single env regardless of client has still been fantastic (not to mention getting all the Linux niceties despite working from Windows).

Doing it in the cloud probably carries some risks for a business that need to be factored in, but I'm sold on the thin-client dev workflow. I'm wishing I could do it at my day job so my laptop stops screaming at me from all the Docker containers.

This mirrors my experience. It is nice not really having to care what type of machine I am given by my employer since my environment is going to feel exactly the same regardless.

And who knows maybe since you have your server running headless it is effectively on par with your laptops. These days most of my cpu cycles on my laptop are spent on Slack or Chrome!

Hadn't thought about that angle, but yeah, I guess it really is splitting the load
Agreed, this setup is super nice for personal work! Adding a raspberry pi as a jump box with wake on lan saves some money on electricity too. I've been using that with a big desktop computer instead of a server and it pretty much works for remote development while out of the house.
Yeah, I'm using an older desktop as my server.

I'd like to set it up for out-of-house stuff, I just haven't gotten around to messing with port forwarding, static IP, etc, not to mention guarding against all the potential security issues

a way that I've found to do this securely is to have a small constantly running cloud server $5 pm with OpenVPN on it. Then have your server connect and join the VPN on both laptop and server. If it's configured properly you'll be able to get them to communicate
How are you accessing the box away from your local network? Just exposing the box to the internet via your router or using something like Tailscale?
Tbh I haven't gotten that far. Of course, I also haven't really had the need yet with covid times
I've been doing something similar for the past few years. I have a development machine running tmux + vim that I can connect to via ssh / mosh. Biggest issue I've run into was high latency while in Europe (since my box is in the US), but otherwise it works great, even on flaky connections. The ability to download / build large docker images with a beefy computer is a very nice feature as you mentioned.
If you work from a park how do you manage your latency/connectivity to a remote server? It must get annoying fast when a pigeon flies over causing your hotspot to cut out.
I think the point is that a small random drop in latency affects the local connection, but not the remote server. So, if your SSH connection is a little flakey for a minute, that’s fine. The remote server is itself stable. It is also likely connected to a much bigger pipe, so pulling in a remote container is much faster than if you were doing the same thing from your laptop in the park.

If you’re worried about your SSH connection being stable, mosh is another option.

Exactly this. I used a combination of mosh, byobu, gnu screen, and vim. These days I use vscodes remote development setup more often.
Mosh sounds interesting! Thanks for mentioning!
On the front page right now: https://news.ycombinator.com/item?id=28150287 =)
If latency is high/nondeterministic every time you hit refresh in your browser to see your dev changes the delay gets compounded, productivity suffers and frustration intensifies.
Files are stored in memory locally so there’s no network trip when editing, only on save, and it’s kilobytes per edit in the worst case
He could use something like GNU screen, or tmux, or his server could use something like XRDP or even RDP to continue when his connection goes out.
Hah! Thankfully that doesn't happen too often. Worst thing that happens is I forget to turn off my Hotspot when I get home and drop into a Zoom meeting on it and use all my 4g data on accident.
I believe he's using the word "work" very loosely here.
I don't know what you mean by this. I've often worked in the park so I can be around my kids playing and get some more glimpses of them growing up than I otherwise would in an office. Plenty of commits have been made at a picnic table.
I mean your work suffers when you're distracted by pigeons and small children.
I've never been one to go 8 hours straight. The refresher pays off in the long run. Not to say my way of working is any better, but the things get done and I'm more satisfied with my work life balance.

And with us soon going back to home schooling (thanks delta...) children happily playing outside is much less distracting than pent up children yelling inside. And mama can't do it all.

eh let it suffer

even my (and many devs') "suffering" work is worth good money - or at least our employers continue to think so :)

> remote server for about 8 years now

> I did not have the money for a new laptop

> I could afford the ~55/month for a dedicated server with 32GB and 4cores

Umm... you spent 55128 = ~$5000 over 8 years. You could have bought 3 top-specced laptops. A good $1500 laptop will last at least 2-3 years. You would also get some resale value out of your laptop when you upgrade.

It hasn't been the same remote server for 8 years :) I don't pay for a server like that anymore now that I'm employed full time and one is provided for me.

And I was barely coming out of homelessness at the time. 1500 doesn't just pop out of nowhere.

You did just remind me of the time when I was contracting for that company, they flew me out to California but I didn't have enough money on my card to cover the incidentals fee at the hotel they booked for me. Thankfully an employee came through for me. That was pretty embarrassing.

But the thing is, if I have $60 extra money on my account RIGHT NOW, how long would I need to save to get a laptop?

I can get a $55/mo dedicated server right now and code for 30 days straight and get paid. Or I can save for X months for a laptop.

Also the server price will most likely go down over the years or I could get a beefier one for the same money. The laptop will depreciate every day.

I'm not sure why you're phrasing that math as if it somehow shows it was a bad idea. It is in fact possible to be able to afford a small monthly cost, but not have enough in the bank to immediately drop ~$1500 on a laptop, especially if you're just starting your career.

According to you they paid roughly the same amount as it would have cost to buy laptops and upgrade them relatively frequently, but amortized over much smaller monthly installments.

And their system would have been elastically upgradeable.

On top of that holding on to money and spending it later is generally better than spending it now, because $X is usually worth > X future $ because of inflation/lost ability to invest.