* easy default correct ssh key use (~/.ssh/id_rsa in work account is not my personal key)
* different browser cookie jar
* different dropbox/gdrive login
* different bookmarks
* different shell history
* faster homedir backups (my personal account has ~300GB of aperture in its homedir, my work account is <10GB)
* privilege separation (both my personal and work accounts are unprivileged, so unless there's local priv escalation being used, rogue user-priv software in one can't steal keys/data from the other)
Then, finally, disable fast user switching. (You should do this anyway, as having it turned on enables a Firewire/Thunderbolt DMA memory-dumping attack that can steal your FileVault2 keys while your screen is locked.) This means that you have to consciously choose to "leave work" by logging out and then logging in to your personal account you use to browse reddit/HN/etc.
This is the single biggest productivity gain I found for enforcing the "I am at work now" discipline. (Being able to use a non-personal dropbox account for work stuff is almost worth the price of admission itself.)
I deliver more finished higher quality code and solutions than anyone else chained to the keyboard all day.
I am not talking about what I do when I take breaks, I'm talking about keeping those breaks from turning from "a short 5 minute break" to "oh shit I just spent four hours in a wikipedia rabbit hole about nuclear energy and now the day is over and I'm tired and my work isn't done".
I don't know where this 'being chained to the keyboard all day' mentality came from, even if I experience and have seen it a lot in the industry. Take breaks; in a lot of countries, the law or health & safety regulations even make it obligatory. And don't feel guilty over it.
It doesn't work that way.
I'm a strong believer in using company hardware only for work, and never using personal hardware for work related tasks, if only because it makes things slightly less complicated with regard to who owns what IP.
EDIT: Correcting typos.
He touched on this, but I want to let you know, after 4 years working from home, how important this is.
The environment gives you unconscious cues on how to behave. If you goof off (surf the web, stream, eat, play, etc) where you work, you are "poisoning" that environment, & make it very hard to focus on work next time there.
After "poisoning" several places in my house, I've setup a workbench in the garage, & ONLY work there. Meaning, if I'm working there & need a break, I LEAVE that environment, so as to keep it clean. Then, when I return to the environment, it's easier to focus & get things done.
It's often a simpler and more viable solution when you don't have a huge house.
So if you are a remote worker and you end up using someone else's body often for remote meeting set up, please don't forget to send a little thank you gift, like $10 amazon card every once in a while. Don't forget, everyone else is already jealous/upset that YOU get to work from home and enjoy all the benefits while someone else is stuck in office and on top of that has to act as your virtual hands/feet.
berlin -d '4:00pm EST'
(I'd been making the slight-environment-change aliases into bash functions as a workaround. You just helped me so much.)
# CC=gcc make
After the command runs, CC will go back to whatever it was set to before (or unset if it wasn't set). Very handy for some operations.
berlin='env TZ=Europe/Berlin date'
http://www.thetimezoneconverter.com/ - allows only two locations. What about scheduling a conf call across NY, Dublin, Berlin and Moscow? What is the best time for all 4 locations?
http://everytimezone.com/ - awesome interface, but doesn't allow any customizations, e.g. pick just the locations I need. This was on HN, I remember I made some suggestions which the guy never implemented.
http://time.is/ - shows only current time, or otherwise compares times only in two locations. Useless, just like thousands of other similar web sites.
I work with an on-site team, and I'm the only remote worker in that group. We use a permanent Hangout that I can keep opened in the background, in order to hear what's going on at the office. With the press of a button I can 'upgrade' it to a full two way video chat. I'm using an old battered laptop sitting on a stand, along with a good quality microphone and a webcam I can pan remotely (pretty fun). Here's a picture: http://imgur.com/OD4V9Z4
When it's open it feels a lot like if I'm sitting there. I can take part of informal conversations, etc. It's pretty great... although it does sound creepy when I describe it.
Still my coworkers are totally OK with that, and honestly once you get used to it it's fine. I'd see and hear the same things if I was physically there. And since I'm in a different timezone, I still get to work all morning mostly uninterrupted.
Also, we have similar setups in a few conference rooms, so it's always extra easy go gather people for quick talks.
I'm curious to know if other people are using something similar.
Another team in the company had a laptop setup on a permanent google hangout that all the remote people could come and go to at will.
Fantastic tip! Super simple but I really think this idea will make you feel more available to your co-workers.
EDIT: changed lower to higher @ "cost with Twilio". Need moar coffee.
ring a desk phone for 10 seconds
then ring the desk phone and a cellphone for 55 seconds
then drop to voicemail
voicemail is transcoded to mp3 and emailed to your preferred address as an attachment, along with call ID info.
Another thing that I've learned is to be crystal clear on when your normal working hours are, especially if the bulk of your team is in a different time zone. Don't be inflexible, of course, but establish normal working hours and stick to them.
The weird thing is I started working in my bedroom a while back. Not only have I had the most productive year in my life (and I never had a computer in my bedroom, even as a child) I also have managed to completely eliminate my sleep disorders.
The most important things I tell people, including my own remote developers:
-Exercise and be active
-Control your light: flu.x, lightbulbs, tape all blue electronics lights
-Be social; working from home in a remote area is really bad, in a city its great
If your smart, you can figure out the rest of the stuff because you won't have to worry about your health. I jump out of bed in the morning happy and ready to work.
But my wife is the opposite, if she uses her iPad or laptop in bed, she will go to sleep a couple hours later than usual. Different strokes and all ;)
I tried just about all of the other tricks short of sleeping pills, none had any meaningful impact.
This is all my way of saying what works for one person may not work for another. Which is one of the points of remote work, isn't it? To create the perfect environment for you?
This is what I have to say about #1. It's important for your psyche. So you can feel like you are "leaving work" at the end of the day. But after a while it becomes less important. You get used to working from home and don't need the office as much. My routine is I get up ~7:30, make some coffee and work from the couch until 10, take a shower and then go back to work (could be any number of places around the house or outside) until lunch. Then I like to work in the office more during the afternoon.
For me the routine works because I am much more of a morning person. It's easy for me to have 2 pull requests ready in the first hour of working. The afternoon is tougher so I go to my office to concentrate. But absolutely, the first couple of months working from home there's a jarring sense of work/life imbalance and having an office is critical to bringing the balance. Eventually the need simply goes away.
I couldn't manage more than a day in a row at home, until I made my own space for it. It went from impossible to more productive. Having a space just for work also eliminates the "at home commute" of switching out personal and professional computers/books/papers/phone/etc...
I separate my computer as well. I have a personal and professional laptop. I know a lot of people live the lifestyle and mix the two, but the separation keeps things clear for me.
The single best advice I got when I went remote
was from Matt Waite, >who said, “Put on pants,”
by which I’m pretty sure he meant, “Act like
you’re going to work.”
Some days I roll out of bed and work in my pajamas, and without a doubt those are the days I'm least productive in contrast with the days I go balls out with shower, shave, breakfast, fully clothed ZZ-Top-sharp-dressed-man style.
amixer sset 'Auto-Mute Mode' Disabled
Also, FWIW, I find Pomodoro's time slicing technique pretty productive (there are many apps that support it - I'm using PomodoroApp on Mac (https://itunes.apple.com/us/app/pomodoroapp/id705103149?mt=1...). I usually go with 25min + 5min cycles. (If only all meetings fit in that 25 mins I'd be the happiest man on Earth).
I know there's been a few attempts at creating remote pair-programming tools but I'm not familiar with any particularly successful one.
These days I'm not consistently pairing with the same set of people, so I created http://syme.herokuapp.com to make it easy to spin up a throw-away EC2 node preconfigured for a pairing session.
one that looks very interesting: https://www.nitrous.io/
And if there is enough timezone difference you can relay the work by doing handovers at the beginning of your colleague's workday.
I've come full-circle on a number of things: I started with 4 clocks on my wall (laziness/batteries), tried to write my own desktop widget (client turned them off), then websites (too many tabs), and now an old iTouch (setup today).
[Disclaimer: I've invested in them -- but I legitimately do also use it regularly for this sort of thing.]
Project Management? Chat/IM? Task & Calendars? etc.
(For the record: tmux/vim/skype has worked perfectly fine for me while remote pairing)