I know exactly what you mean - I was thinking the same thing when was making decision to start something on my own.
As of physical environment - stup below works perfectly for me:
- 27'' double screen
- proper headphones with noise cancellation and DVD's stack with my favorite music
- proper ergonomic chair
- big desk
- non-membrane keyboard
- big (0.5 liter min.) cup of something to drink (not necessary coffee since it usually makes it harder to focus)
As of tools I use:
- operating system depends on work I do, however Linux Arch is my favorite
- subversion as version control (old but still has something in it)
- working with code - usually simple kwrite is just enough
I guess I am wondering more: what sort of work would make you say "hey, I want to go work there!"
I guess I'm trying to figure this out in reverse. I know I'd leave whatever I'm doing to work for, say, Google because Google (really: I needn't say more, right?).
But what makes Google so attractive? Some of it is the bragging rights but a lot of is that they work on cool things and give you free reign to do cool things.
I'm working on custom integrations tailored to specific project so for me each project is like a new job where I'm picking up tools and technologies that will deliver stable and maintainable outcome. New job, new people and new challenges - that keeps me sorta away from burning out. So I guess the main question is how much influence do you want to have? Do you want to craft specific algorithm that is somebody else idea? Or do you want to come up with your own ideas and bring them alive? I'm in second group.
As of physical environment - stup below works perfectly for me: - 27'' double screen - proper headphones with noise cancellation and DVD's stack with my favorite music - proper ergonomic chair - big desk - non-membrane keyboard - big (0.5 liter min.) cup of something to drink (not necessary coffee since it usually makes it harder to focus)
As of tools I use: - operating system depends on work I do, however Linux Arch is my favorite - subversion as version control (old but still has something in it) - working with code - usually simple kwrite is just enough