When you're not proficient with the necessary tools, you're interrupting your flow with what you consider mundane. That you consider text editors mundane is more reason to move as much of that process into muscle memory as possible, not less!
Why are we pretending like mastery of our tools is unimportant? I hear this sort of opinion most eagerly expressed by engineers who in fact are quite handy with vim! Is this some new kind of flex where we're all pretending to take a purely academic approach to programming instead of becoming proficient with the tools of our trade?
Recently, I posted a comment in a questions thread on /r/math asking where I could get a more thorough treatment of the philosophy of mathematics, as these lectures can get a bit arm-wavey, but the responses I got were disappointingly dismissive. One guy said all this philosophy was "not interesting" and considered the foundational stuff to be "just a construction". I get that it may not be directly useful for current research to a mathematician trying to get published, but common!
[1] https://www.youtube.com/watch?v=V49i_LM8B0E&list=PLPH7f_7Zlz...
I think I'm not alone in this approach; I wonder if this project has the change to be as rock-solid as Apple's offerings. If not, I'm guessing it's not for me.
While pure coding talent may be on par, unless you are a solo dev you must be part of a team. Therefore communication skills are more than half the job. This is vastly underweighted by IT folks in general, and by gross stereotype, by the graduates of Indian technical schools.
An American company might be willing to hire someone, but it takes tremendous work to recruit, train, retain, and manage an employee. Especially at 12 hours time difference. So those are real costs. And this is why you rarely see "real" cost savings from outsourcing IT functions.
With 12 hours time difference, it is better to have separate team in India who can colloborate with offshore team on bi/weekly basis.
- config using dot files (may be some remote git repo)
- projects in git repo
- media and other stuff in different drive
Everytime you make changes in config or projects, push them to remote repo immediately. This way, you will be always ready to upgrade.
- your job can'not satisfy you always. There are good jobs and bad jobs. But good job can become a bad one in overnight. Nothig is permanent. So don't get attached to it, instead love your craft.
- the software domain is the easiest one to experiment. Having a computer and internet is enough to build whatever you want. If you wanna have kick by writing good code, just get it from your own project.