Saturday, 26 December 2009

Getting a Job with the Skills Nobody's Paid You For

If you've picked up a language or development skill on your own time, it can be hard to sell that expertise to an employer. Here's two ways to do it.

This is an old question, but it's one that comes up at least once in every developer's career: How do I get a job using the skills or tools I want to use, if my current employer doesn't give me an opportunity to use them? I just found a variation on the question on a developer's discussion forum (edited slightly for clarity):

"I'm looking for work and am considering doing a sample website. What should I put in it to be appealing to prospective employers? Should it just be a content management website? I want to do the site in C#.NET to show I can, because my work experience is with VB.NET. I've been thinking about using modules from 'BeerHouse' done in ASP.NET 2.0, and dress it up in different CSS, but maybe that's trite."

This developer's example is .NET-related rather than Java, but obviously the technology isn't the issue. It's a question of selling yourself. And for that, I have some advice to share.

Primarily, the answer to the developer's question (or your question) depends what you want to accomplish. If the site is meant to be your Hello World project to teach yourself a new skill, and you expect to cheerfully make your mistakes in public, then it doesn't matter much what content you use.

But it sounds as though the developer who wrote that post is hoping to turn the website into a showcase of his skills to attract an employer and to demonstrate that he can use a technology that doesn't appear (yet) on his résumé — a desire that you might have, too. In that case I'd tune the site to the technologies (languages, Ajax, etc.) that you'd use in your ideal new job. (i.e. "In the best of all possible worlds I'd use the Dojo toolkit and...") If you're going to the effort, be sure the skills you display are the ones you actually want to sell!

However, employers often are dubious about "See, I can do it!" sites or projects. For good reason, I think. First, the employers know that in a "sample" site, the only arbiter of quality is you. You might be happy with the results even if the code sucks underneath and it's completely undocumented. Also, there's no guarantee that you know how to finish a project in that language, using that CMS, or whatever. That's fine for a "hello world" project but it doesn't demonstrate that someone else signed off — which would indicate that someone besides you thought this was good (or at least good-enough to say Yes to, presumably including a check).

If you want to demonstrate your non-résumé skills to a prospective employer, I have two suggestions.

First: Find a nonprofit or other local Good Works organization and volunteer to build their website. At a minimum, doing so is a healthy thing to do for karmic reasons; presumably you'll pick an organization you want to help. If nothing else comes of this, you will have helped an organization you believe in, and that's worth quite a bit emotionally.

Since the community organization isn't paying you much less setting any specs, you can use whatever tools you like, whether that's the latest CMS you've been wanting to pick up or a new programming language. Also, they can't hold you to a deadline. So, if you discover that the new language is ill suited for the task or that you have to rip it out and start all over, you don't have to make compromises. That is: You can diddle with the technology as much as you like, and nobody is going to stop you.

Since you can make the project scope as big or small as you're willing to take on, nothing forces you to supply every possible bit of functionality. I recommend under-promising and over-delivering; freebie clients have a way of being the most demanding! Alternatively, map out the project in phases. If you do get a job in the middle of the project, you don't want to leave the organization with a site half-done. (This might be a good time to develop your Agile skills, too.)

Yet, the resulting website can help you get a new job because you've demonstrated that you can work with the technologies, not just play around with them.

In most cases, you'll have a grateful organization and a reference to include with your job application. Plus, because it's pro bono, it's a good way to pick up the new skills and ready yourself for the next position while you're working at a job where you can't wait to hand in your resignation notice; it's not like your employer can complain about where you volunteer.

Don't be surprised if the volunteer gig leads directly to real work. Organization members just might say, "Hey, can you do a website for my company, too?" I wouldn't count on it, but those happy users may know someone and be happy to refer you or pass along your résumé. There's a reason people are always telling you that networking is a good way to find a new job.

This is important: Nobody has to mention that you weren't paid for this project. The new employer doesn't really care what your billable rate was; they just care that you can create a working site using those cool new technologies. If someone does mention that you did the work for free, it will be with expressions of "Oh how nice!" rather than "He did it for peanuts so clearly is desperate for work and will accept a low salary offer."

Aside from the technology exercise, working with the community organization also lets you show off project management skills, as you'll interview the users to find out what they want, design the application, and so on. That can't look bad when you apply for a new job, even if it's not your primary goal here.

My only caution is to think carefully about the Good Works organization you choose. If you aim to use the experience to get new work, you may want to steer clear of religious or political organizations. That doesn't mean you shouldn't help out your local church (because presumably you want to help those you believe in) but consider carefully if your choice could offend anybody. Why annoy your manager before you have the job, when it's so much more fun to wait until you're hired? If a prospective manager happens to be aligned with an "opposite" belief system — well, why hurt your chances? I think of this as flame war avoidance.

If you don't want to take on an entire project, or no nearby Good Works organizations appeal to you, another alternative is to get involved in an open source project that uses the skills you want to sell to a prospective employer. As with the local community support effort, you get the benefit of something to show off. However, you also have the opportunity to learn (and hone) the technical skills by working with other developers from whom you can learn. I wrote about this at length elsewhere, including how to describe your open source experience when you apply for a job, so I won't belabor the point here.

Either way, these are good options for any developer who wants to polish a résumé. Any hiring manager (at least the ones you want to work for) wants to bring on passtionate developers who are willing to do something extra to improve their skills, and the volunteer contributions are a great way to prove it.

Ex-Microsoftie: Company today 'a lot like IBM was in 1985

Don Dodge made headlines last month when he was caught up in the tail end of Microsoft's first-ever round of mass layoffs. He had been at Microsoft for five years, and as a start-up evangelist had become a well-liked figure in the world of budding tech companies.
Photo
Dodge

Within a week of being laid off, Dodge was snatched up by Google to do a similar job for the Internet giant. On Monday, I asked Dodge about his new job and how Google compares to Microsoft. Because he was at home for the holidays, Dodge responded to my questions via e-mail.

How is your new job similar and different to the one you had at Microsoft, and are you enjoying it?

I love working at Google. It is fast-paced, positive, high-energy, data-driven, and a meritocracy where ideas matter more than who they came from. Google is a much younger company (10 years old versus 34), has fewer employees (20,000 versus 95,000) and is more focused on just a few products, so there are some obvious differences related to size that make it easier to get things done at Google.

My job at Google is similar to what I did at Microsoft in terms of helping developers and start-ups be successful building applications on Google platforms and technologies like Google App Engine and Google Web Toolkit. At Microsoft the target audience was start-ups and VCs (venture capital firms). At Google it is that plus helping companies of all sizes adopt Gmail and the Google App suite.

The biggest difference is that I get to work 20 percent of my time with Google Ventures, which is Google's V.C. group. There are some natural synergies there with the start-up work I have been doing the past five years.

What are some of your challenges at Google, especially compared to your challenges at Microsoft?

Well, I have only been at Google a month so I haven't bumped into all the challenges yet. But, at a high level, I think the challenges are to continue to build a world-class developer support group, worldwide, that covers all the products. Mike Winton (a Google senior technical manager) started the group three years ago and has done a great job. As more products come on line and more developers work with our platforms and tools, it is just a question of scale.

Another challenge is to earn a reputation for communicating clearly with developers and partners, providing them the support they need, and being as clear as possible about our product road map. All of those things are in place at Google, we just need to do a great job everyday and earn the respect of our partners.

How has your view of the tech world changed since moving to Google?

I don't think my view has changed, but the things I focus on at Google are different. Working with start-ups and VCs over the past five years has given me a pretty good view into where the trends are and where innovation is happening. Clearly, Web-based applications have been gaining traction for the past five years. Nearly every useful application I can think of (Facebook, Twitter, Gmail, blogs, wikis, et cetera) all started as Web-based applications.

The trends are pretty clear. All the exciting new applications are running in the browser, with application code in the cloud and the cell phone as the platform. Your cell phone will become your primary computer. I think in the near future there will be docking stations everywhere with a screen and a keyboard. You simply pull out your phone, plug it into the docking station, and instantly all your applications and data are available to you. The key is you get to decide which applications and data to keep resident on your phone, and which to keep in the cloud.

Microsoft has product offerings in each of these areas, but they weren't the high-priority programs. Windows Mobile is struggling, and Windows Azure is just starting to emerge, so the focus was elsewhere. At Google, Chrome (browser), Google App Engine and Google Apps (cloud), and Android (mobile) are top priorities, so I am spending a lot more time in these areas than I did at Microsoft.

What's your opinion on Microsoft's future? Are they innovating as successfully as they have in the past?

I think Microsoft today is a lot like IBM was in 1985. When I started my career IBM dominated the tech world. In the late '80s Microsoft started to dominate the software world, first with desktop software and later with server software like Windows Server and SQL Server.

Microsoft is still a powerful company – $60 billion in revenue and very profitable – but I think after 20 years they are losing the innovation edge. The most innovative companies today are Google, Apple and Facebook. Very few companies can dominate an industry for more than 20 years. It is just the natural competitive cycle. Another factor – Bill Gates leaving the company. The transition was smooth, but not having Bill there every day has far-reaching implications.

What are some areas that Microsoft needs some work in?

Microsoft is a vast company with products in just about every market. It is tough to compete and be the leader in every market. Even in desktop operating systems, where Microsoft has dominated for years, Vista has been a disappointment. So, you can never rest, never stop innovating. Windows 7 looks like a pretty solid product.

Windows Mobile is obviously behind the iPhone. Google's Android is getting lots of good reviews and has entered the market with a completely different and disruptive business model. So, there are some big challenges for Microsoft there.

What do you think of Microsoft's current position for the continuing expansion of cloud computing? Is Google better positioned?

As you know, I think the future of computing is Web-based apps, with application logic and data in the cloud and the cell phone as one of the major platforms. So, cloud computing is central to all of this. Amazon, Google and Microsoft are all competing in this space, but with very different technical approaches and business models. No one technology or model will be best for all situations and workloads.

Microsoft's approach will appeal to traditional Microsoft customers who want to preserve some of their previous investments. Amazon is the early leader and has focused on simplicity and cost. Google has built a world-class infrastructure and development environment for scalable Web applications – the same one used to build and support Google search. So, there are some inherent advantages to Google's approach if you are building scalable Web applications.

It all comes down to your application needs, workloads and design architecture. Amazon, Google and Microsoft are all solid choices. Each of them will be successful in some market segments.

What do you think were some of Microsoft's biggest victories and failures during your time there?

That is a big question. I was focused very narrowly on the start-up world and developers. From a developer point of view, Microsoft has always been very strong in client based development tools. Over the last five years Visual Studio, Microsoft Expression and Silverlight have really advanced. They all work together seamlessly and deliver a great experience.

BizSpark was another very successful program focused on start-ups and developers. Our team created that program, launched it last year, and engaged lots of partners to help promote it. I think it was a big success.

Failures are open to debate and I'd rather not talk about them. One thing I will say: Steve Ballmer never gives up. He keeps coming, and coming, and coming. So, anything you might classify as a failure today ... don't be surprised if they eventually turn it around and make it successful.

Are there any relevant areas in which Microsoft has a leg up on Google?

Lots of areas. Microsoft plays in just about every market. If it's software, Microsoft is involved at some level. Google is much more focused on just a few areas, and doesn't play in many of the markets Microsoft is in. That said, Microsoft has strong competitors in every market. IBM, Oracle, SAP, Salesforce and other companies are much larger competitive threats to Microsoft.

Can you explain some of the cultural differences between Microsoft and Google?

They are very different just in terms of size, age, market focus, competitive environment, et cetera. These differences play out in fairly obvious ways. Google is younger, smaller, faster – the founders are still very active and visible, et cetera. Decision loops are shorter and faster. Google is growing incredibly fast, so the mindset is different.

Microsoft is a great place to work. I enjoyed every day I was there for five years. So, I have nothing bad to say about Microsoft. There are lots of great people at Microsoft. They treat employees very well. Sure there are processes, approval cycles, product development cycles, et cetera, but they all make sense given the size and scale of the company.

How do you and your fellow Google employees view Bing and its modest successes this year?

Google stays very focused on its own goals and customer feedback. Google doesn't measure itself by competitors actions or products. That said, Google has a healthy respect for all competitors, and will never stop innovating.

On a personal level, I was a director of engineering at AltaVista back in 1997, so I have been involved in search for a long time. I remember the first time I saw Google back in 1999. There were already more than a dozen well-known search engines on the market. Google blew them away, continued to innovate, and has never looked back.

Anything else important you'd like to add?

I think 2010 will be a turning-point year. It will be the year that companies of all sizes move in large numbers to Gmail and Google Apps, and take their first steps toward the vision of the future. The move toward cloud computing is obvious. Gmail, Google Apps and Google App Engine are the easy first steps in that direction. The cost savings over on-premise software, licenses, maintenance, hardware and IT support are enormous.

Next year companies will need to decide if they want to spend the money to upgrade to Office 2010, Outlook and Exchange, and invest in training their people on how to use the new versions. Some will decide to stick with Office 2007 because it is bought and paid for, but I think many will make the move to Gmail and Google Apps. The cost savings, continuous pace of innovation, and ease of use are too large to ignore.

Thursday, 24 December 2009

New website reivew

Check website : http://www.fessential.com and http://www.fessential.com/index.htm

Have a nice day.