"Back to the Future" is what I'm feeling now regarding software development after moving to San Francisco. It is not (only) because of the environment or the people but because I'm back to develop low level components in C++ after some years developing high level services on fancy languages.
I think the main reason behind the good feelings apart from the change itself is the challenging it is to develop in such environment.
Working on low level components makes you worried about a lot of technical issues that I didn't remember paying to much attention to. I've been testing multiple FIFO queues implementations to improve the performance, profiling the application to detect contention on different synchronization strategies, testing different thread allocation and tasks assignment to those tasks, changing memory allocation... You feel that the way you implement the software has a big impact in the way it performs and in addition you are continuously being surprised by the results of some of the tests and continuously willing to explore new things that you had never been done before.
Working with lower level programming languages like C++ makes you feel that you are under full control, everything that happens is your fault or is thanks to you. If the application takes a long time to start is because of you and not because of the JVM, if there is a lot of contention is because of you and not because of the GIL, if the application takes a lot of memory is because of you and not because garbage collector.... Of course great power brings great responsibility, but that responsibility makes everything much more funny.
The only thing I'm still hating about the "new" development environment is having to compile. If I could get rid of that I would be more than happy.... at least for some months/years :-)