After some reflection on the last year of doing solo software development, I’ve come to the conclusion that working solo does not allow for maximum productivity, that maximum productivity can only be achieved when working as part of a group, that I a get a lot of satisfaction from being maximally productive, and thus it is time for me to start working with other folks again.
That said, over a decade of experience developing software as a member of groups of various size has also shown me that working as part of a group can also result in productivity significantly below that of working solo, that I find working at low productivity to be unsatisfactory, and thus I should not join just any group of folks developing software.
Economic times are pretty bleak at the moment, with rumors of Microsoft laying off a significant number of people and Google engaged in stealth layoffs, so it could be quite difficult to locate software development groups that are, highly productive, actually looking to employ more senior software engineers, and either don’t screen candidates using lists of acronyms and buzzwords or are screening for a list of acronyms and buzzwords that match up with my personal list of acronyms and buzzwords.
So the first step is to get my resume posted to about dozen tech job related websites and see if that generates any leads as a result of getting through the screening filters of a group that is actually looking to employ a senior software engineer. While waiting I plan to finish up the second milestone of my current project, so I can get that finished up before I start dedicating a lot of time to searching for an appropriate position. When the time comes for that I figure the first step will be take a look at the positions available that require Java and C# and determine which language has more open positions of interest (not just total number of positions Java wins there) compared to C++ to determine if I should be investing time into learning one of those languages and their associated libraries to expand my personal list of acronyms and buzzwords. The other thing to look at are jobs in the gaming industry as perhaps learning libraries related to that is the way to go, as C/C++ are still the languages of choice for shrink wrapped console games (with a notable exception being XNA for the 360 since that requires verifiable .Net).
I’m confident in my ability to pick up any of these things, but I can’t learn them all instantly. I’d be happy to spend a few unpaid months learning languages, libraries, and technologies required by by a great position if I knew it was still going to be there for me at the end my self-training period, but the job market doesn’t work that way so I’ll end up having to to speculatively choose where invest my time and how that time isn’t wasted. With all of the choices available these days it would be pretty easy to pick the wrong areas to invest in. For example a search on Indeed yields only 1,684 results for “Python Senior” versus 8,876 results for “C ++ Senior” and13,970 results for “Java Senior”, but of course when I started working with Python it was not to improve my marketability in the job market, but to provide for high productivity development of the game engine prototype I’m working on and Python has fulfilled that role quite nicely.