Tech Jobs stays open for months, unemployment under 4%
techflash.com
techflash.com
For giggles, I decided to head over to indeed.com and take a random posting for a Java Developer. I only chose one and below is what they are looking for verbatim:
"* BS degree or equivalent in computer science, electrical engineering, or related field is preferred * A minimum of 5-7 years of relevant work experience * Strong knowledge of Java and J2EE related technologies (JVM, JMS, Servlets etc.) * Knowledge and experience with Internet technologies and protocols (e.g. HTML, XML, TCP/IP, HTTP) * Extensive knowledge of creating high availability large volume systems * Solid experience and ability with the use of a dynamic scripting language such as JavaScript, Perl, Ruby or Groovy (we use Groovy) * Experience in OOAD principles and methodologies * Exposure to Hibernate, Spring or other lightweight container * Expertise with more advanced programming environments and concepts highly desired (e.g. J2EE, multi-threaded programming, high availability design etc.) * Wide experience with code control system and build tools (Maven/Ant) * Solid understanding of design patterns (Gang of Four) * Exposure to and desire to work in, a strong team-based environment * Knowledge or exposure to modern Agile methodologies such as SCRUM, TDD and XP * Knowledge and experience with unit testing practices desired * Experience/exposure to Test Driven Development and Simple Design"
Depending on how literal these requirements are to be taken, any one of these can knock you out of the running (you've got solid Java skills under your belt, but due to your specific environment you've got no JMS or no scripting language experience, or you're light on Spring, etc.)
I didn't post another one I found interesting, but it was asking for Ajax/CSS/front end experience.
The only equivalent I can think of is: "Real estate lawyer needed. Must have experience in constitutional, IP, marriage, family and international law. Any experience as it relates to the Geneva Convention considered a plus."
If you're a talented developer and out of work more than a month you either are horrible at interviewing, have terrible soft skills, or really aren't that good. Or you might be on vacation :)
-- The Times, 1943 (via http://bilbo.economicoutlook.net/blog/?p=11941)
At least in my experience in the NJ/NY region, I have been looking for Flex/AS3 work for a few months, and have not seen a single interesting role advertised.
Personally it's quite daunting to make the 4th major shift in my career. Started out in classic ASP/COM, moved to Java when Microsoft introduced .NET, moved to Flash/AS3 about 4-5 years ago developing web video solutions.
Now I don't know where to start retooling, should I work in Mobile, or move back to web backend, or web frontend work... or a mixture of all three. Also after 15 years it's hard to take that pay cut and start back at zero again.
Depends on the industry/area. In SFBay a talented javascripter can command as much as a talented Rubyist if you are willing to work at a startup. Bonus points if you also have a graphic design or UX chops.
The move from AS to JS is also not going to be as big a jump. Further, if you are taking a pay cut to shift stacks then I would suggest that you are getting in on new stacks too late.
The thing you have to remember is supply and demand. Companies will pay you when supply is low, since they are in need of good talent. If you're a good negotiator - like myself, you can write your own ticket.
Expect to always be retooling. Embrace it, in fact. I made a switch in my career from being an employee to being a freelance web developer. That forces me to always stay on top of things. I also think of myself as "that guy who can build you a web app" instead of a frontend or backend guy. As a consequence, I've learned frontend stuff, backend stuff, design, business dev, anything needed to get the job done.
I think it's a sign of a healthy economy that puts pressure on workers to always be updating their skills. An economy that has workers who can adapt quickly to changes in demand naturally reduces unemployment.
"Tech jobs stay open for months, unemployment under 4%"
Smaller companies (and startups) are just looking for programmers - preferable fresh from college.
I predict this trend will continue: low end of programming business will grow and salaries will be suppressed because level of entry will be lowered as time goes. The high end of programming will shrink and it will be available only in big corporations.
Assuming that you are in the San Francisco area, doesn't this have as much to do with the difficult real estate situation as the job market?
Absolutely false. If you've got 20 years experience and a Ph.D and are getting $150k at Google, you're getting seriously screwed (a senior/staff SWE is makes more in base + year-end bonus + RSUs). If you're at Facebook, you're still probably making more in _base_ and (again) get RSUs and bonuses worth something.
Outside of these companies, there are tons hiring -- especially for mid-career folks. In fact, Google is a great place for folks early in their career, but they have issues hiring mid-career folks (but they've been getting better about it).
My advice is, know something other than "read text from a database and display it on the screen". Writing basic business/consumer CRUD applications is a solved problem. Yes, it used to be that one would have to use C/C++ and much "tricky" programming to reliably do this (I still remember how complex CRM, ERP and CMS packages from the 1990s were!), but that's not the case now. Nowadays this involves stringing several open source / commercial libraries together, rather than actually building core technology. Not only is building these applications a solved problem, for non-software companies it's actually more beneficial to purchase and customize these applications rather than build their own.
I remember reading stories (in Coders at Work, I believe) where a young programmer working for a hospital (building a record keeping system) had to code/debug assembly. These days he'll be lucky to write a few lines of PHP, but most likely will just end up customizing an existing EMR system.
If you want your programming ability to be an asset you can leverage, there are two ways: you can be a systems/networking/distributed systems developer, or you can learn a topic like computer vision, AI/machine learning/NLP. In first case you should know C, C++, socket programming, distributed systems and (for few companies) general JVM basics (garbage collection, performance) like the back of your hand (this is something you can still do to a large extent on your own time). In the second case, you should be sure to have a solid grasp of the Computer Science / Math / Stats involved.
Both of these are applicable in many areas: from finance, to highly scalable web applications, to stand-alone products (web browsers require a lot of systems programming chops, there is also data mining software, enterprise search, security/spam prevention...). You don't need a Ph.D for both of these, and (unfortunately) outside of Google, Oracle, Facebook and a few other companies (that have a healthy relationship with the academia) a Ph.D. is considered a negative. They do require persistence, passion and willingness to invest time and take risks: taking jobs in companies willing to take a risk _on you_ by giving you challenges and responsibilities.
A rank-and-file software engineer working on say business applications or relatively non-specialized software can still afford a home in Fremont (even less expensive).
If you want to buy a home in the 280/101 corridor or in Manhattan, yes, you need to do something different. Don't expect to have a 98-99th percentile income without being at 99th percentile in your profession (but again, doable for a Staff Engineer at Google, or someone who joined a relatively safe-bet pre-IPO startup like Facebook).
Good luck finding a quality company or competent management.
I'm fairly certain those are the same people we're always talking about being unable to solve fizzbuzz.