Is OSS good for your career?
Got your attention? Good.
Let me start by pointing out there are many opinions about the answer to this question. You will have yours and I have mine, that’s called freedom of speech. I would like to hear your opinions so leave it in the comments.
Let me explain that I have had 4 jobs in the last 10-11 years. 3 of those were via recruitment agents. They check your skills, tick them off and pass you over to the employer if they match and hopefully you get an interview. That process has happened to me in each of those 3 times.
If you have read my previous blog posts you’ll know I have spent the last year reading a lot of other peoples code and learning all the best practices I can in a bid to become a better software developer as well as give back to the developer community where I can.
After spending a couple of months porting NerdDinner over to NancyFX I realised that I had not looked at ASP.Net MVC 4 and the new features built into it. I felt slightly strange at that point as I was usually an early adopter of these things keen to check out the new stuff. I think this was partly due to the fact I had spent a lot of time learning NancyFX and really quite enjoying the framework and interacting with the small community of people who use Nancy.
However, I had recognized that my skill set was missing a checkbox to tick off but after using Nancy there were a few areas of MVC that I no longer liked but I knew I would have to learn MVC 4 to ensure I stay up to date. This realization had me thinking and I asked @GrumpyDev, one of the lead developers of NancyFX that during his day to day development if he was in a position as an architect to make his developers use NancyFX instead of MVC. Part of his response was “we very much suffer from using new and shiny Microsoft stuff, and following "best practices" without having a clue why”. This reinforced my growing suspicion that maybe OSS work was for the tinkerer developer, the modern day man who sits at a computer tinkering away instead of doing stuff in his shed because as far as I can tell most companies recruiting people want their experience to be on a MS stack. Unfortunately you don’t see many adverts asking for NancyFX, FubuMVC or even RavenDB experience. As @GrumpyDev states, I’m not sure why this is either because within the community there is a push for people to learn as much as possible and use the latest, greatest and alternative technologies whilst those that are employing just want their developers to have a full understanding of Microsoft technologies.
I kept these thoughts floating around my little brain for a week or two and whilst in Jabbr @invalid_arg was discussing how he was playing with Node.js and I asked him if he thought there was many opportunities out there for Node.js developers and it started a myriad of opinions about OSS, new languages/frameworks on the block and career possibilites which I’ll try and outline. The reason I make reference to this is because the discussion was not just about OSS but all the new and alternative frameworks and languages out there so the title of this post was a bit of a headline grabber.
There were some that believed that if you were smart you would be able to get a job even if you had no experience which was counterattacked with you would never have been asked to the interview if the employer saw you had no experience.
It was pointed out that if you worked at Microsoft they drop you in at the deep end and ask you to build something even if you had no experience in that area but is Microsoft a fair example of “most” companies employing you and then asking you to build something on the fly?
One guy posted “if you have a heart problem would you go to a doctor who has never done surgery before?” implying that the doctor was smart so could therefore pick up heart surgery skills.
Another point of view said that “I would rather employ a smart guy with enthusiasm than a dumb guy with 5 years experience and no enthusiasm” which I think a lot of people agreed with however, how do you measure whether a guy is smart enough in a typical interview environment? Would he have even been asked to interview?
There was also an opinion that if he was smart he could be moulded to become a good developer in that specific area of software development.
Using Microsoft as an example it was noted that forward thinking employers may take the smart guy approach because they can see the potential and with investment will have a great return. I wonder how many companies like this exist though.
In another argument if a developer who only knows C# gets fired today and has a mortgage and family to look after he does not have the luxury of spending two months to learn another language to get another job, he needs one now. There may be companies out there but I believe in rare circumstances that may employ you and ask you to build something even if you don’t have the experience to do it which would provide you the ability to learn on the job and gain more experience.
There are obviously a lot of opinions around this subject and every one is valid.
I did spot that a few people said they had been head hunted because they were known from their OSS work obviously by developers in a company keeping their eyes and ears out. It could be argued that potentially that this might be a good place to work if they know you by these skills and are open and embracing of your OSS mindset. Luckily my current employer knows I like to code outside of work hours and my boss is accepting of this even though I do badger him about adopting new things constantly.
What is my opinion of whether OSS is good for your career? I believe that it exposes you to new things which is beneficial, you gain more experience, you adopt best practices and if you’re lucky you become well known for your OSS work and people can see you have a certain skill and/or are a smart person which may open you up to being head hunted however, there is only a finite amount of time and my current experience has taught me I need to keep on top of the MS stack to improve my career so therefore I have to try and find a balance for MS/main stream learning and other OSS areas of interest.
Let me know your experience and opinions.