I was also in a similar position as you as a valued lead dev with 15 years of experience working in a company that didn’t want to embrace newer technologies (stuck on WebForms, not moving to MVC, etc). I was not interested in progressing into middle management and had hit the ceiling with regards pay so I became a contractor. I taught myself MVC got an initial bum-on-a-seat noddy contract which was doing MVC CRUD screens for 3 months. Then for the next contract I combined my wealth of experience with my new found proven MVC credentials and got a lovely MVC contract at a senior level earning much more than I have ever earned before. Contracting is not for everyone but I’ve been doing it for 5 years now and still consider it one of my better career moves.
That sounds like a good path as well. Thanks for sharing your personal story; sounds like it would be worth it to take a temporary paycut to gain some experience.
I don't think you need to consider a pay cut. It's easy to look at HN and think that all of the good jobs are in new technologies and your experience is worthless. That's not the case.
Take a week or two to build a handful of sites in ASP.Net MVC with Entity Framework, so you're familiar with the basics. At that point you'd be marketable for a lot of current senior .Net positions. Experience with .Net is more relevant to most companies than MVC-specific experience. Add in your SQL Server skills for when Entity Framework doesn't cover exactly what you need and you can almost write your own ticket.
Good old fashioned foot work. Cold email the places you know that use your tech stack.
Introduce yourself and what you have to offer. Show that you understand their business and some of the technical problems they may experience.
Ask for referrals after contracts complete.
Open source contributions and presenting at industry conferences go a long way to establishing an air of expertise; carry yourself like an expert and you almost always will get a second look from a potential client.
I've just rolled out a service using TopShelf having not used it previously. It really does simplify things. The best bit for me is being able to just hit F5 and having the thing run as a console application. No need to manually attach to processes for debugging.
This technique lets you debug your service as if it were a console app - just pass in -a on the command line.
In your Main method:
if (args.Length > 0 && args[0] == "-a")
{
// Running as an application
MyService ms = new MyService();
ms.DoStart();
Console.WriteLine("Press Enter to Stop");
Console.ReadLine();
ms.DoStop();
} else {
// Running as a service
ServiceBase[] servicesToRun = { new MyService() };
ServiceBase.Run(servicesToRun);
}
And in the MyService class that derives from ServiceBase:
protected override void OnStart(string[] args)
{
DoStart();
}
protected override void OnStop()
{
DoStop();
}
internal void DoStart()
{
// Start your service thread here
}
internal void DoStop()
{
// Tell your service thread to stop here
}
I'm a developer who has worked in law firms for over 10 years. There is an interesting overlapping career for legal/IT literate people - the Business Analyst. A good Business Analyst can analyze legal processes and recommend suitable IT solutions to help automate/streamline the legal workflow. One of the biggest problems law firms face is the disconnect between lawyers and technology. Anyone who can understand both will find a rewarding career in a Business Analyst position.
I've used .NET from the start and since 3.5/4.0 its just ramped up. Feels like every day there is a new acronym to master!
ASP.NET MVC 4.0 projects now include knockout.js by default. So that may be around for a while if only to support .NET devs who are just using out-of-the-box technologies.
My experience reflects yours. However of late I have had to crack open the source code for ASP.NET MVC & the Azure SDK. Not so much to correct a bug but to ensure functions that I am overriding follow a similar design pattern to the original.
I've never had the need to get into ASP.NET or the .NET framework itself but being able to get into components built on top of these lower level technologies has been very helpful.
I've spent the past 10 years working in global corporate law firms as a software developer and have witnessed this change first hand. The legal profession is based around chargeable hours. This is not a good deal for the consumer of legal services. Billing by the hour does not encourage lawyers to work more efficiently or effectively, in fact it rewards the opposite. Recently larger clients have started to stand up to the legal firms and demand that work should be done on a fixed fee basis or a shared risk/reward basis. Suddenly lawyers are beginning to to act like business people and are looking at improving their own internal efficiencies now that their fees are capped. One example of this are lawyers trying to empathise more with their fixed fee clients' business strategy and point out legal pitfalls before they happen - wow a proactive lawyer! Observing how much money law firms are currently investing on improving their efficiencies then I think what we are witnessing is a shift to a new model and not just a blip.
Based on your experience, I'd love to chat with you offline. My law firm (together with another firm in London) is building software for deal lawyers. If you're interested in meeting, you can reach me via the email address on my firm's page: http://yusonirvine.com/
If nothing else, I'd like to introduce you to my UK counterparts.
Interesting - I would be interested in chatting with you too. I am a lawyer at a Big law firm. One of the things that I have been doing (which clients love) is writing software to automate or enhance parts of what I do.
I made an arrangement immediately when I started. I told them I do code on the side, and that I had other people that I worked with on that code.
They agreed that they pay me for legal work, not for code. Thus, the tools I build are mine, but the analysis and output of those tools may be theirs if I am using the tools for their benefit.
I think spending some time in a big company after graduation is very worth while. Preferably not a software company. At least you'll learn the culture, the way they work, their problems. With this knowledge under your belt you will be in a better position to sell into these companies in the future.
Have you looked at ReSharper? It does usage highlighting (http://www.jetbrains.com/resharper/features/navigation_searc...) The extra functionality it adds to VS 2008 & 2010 is really useful. I started using it about a month ago and kicking myself I didn't invest in it ealier.