

Ask HN: Any Hope? Developer Switching from MS .Net Development to Free and Open? - ncage

I have been a Microsoft .net developer for the past 15 years. I have grown quite frustrated at the direction of Microsoft and the ecosystem. I yearn for running lightweight tools (not the overly bloated visual studio that you must supercomputer to get descent performance).  All the innovation seems to come out of the open source community and Microsoft just tries to copy to keep its developers happy. ASP.Net MVC came from Rails, nuget came from npm, OWIN and most of the changes for ASP.Net vNext come from node.<p>Microsofts’ OS direction is a joke. I’ve been running the recent. builds of windows 10 hoping for major improvements that I have not seen. How about using text files for configuration rather than overly complex APIs (WMI Providers)? How about a proper bash shell (powershell is no replacement), how about a proper SSH client?. How about fixing your OS getting slower over time?There is a lots more I could say but I will quit at this point <p>While I would love just to switch over my issue is that I work in an area that is almost 100% focused on Microsoft technologies. There are still a few mainframe shops but that is about it. I’m pretty locked to my area unfortunately. Think of the married guy ((and who’s wife’s career is based in the area).) in his early 40s with a mortgage (who found their perfect home).<p>At this point my real passion is in node &amp; client side javascript development. My only hope is remote work but I don’t know how plausible that is. An individual who has taught themselves node on their own getting hired for a remote gig for a somewhat descent salary .<p>I guess I’m reaching out to you all so I can stop spinning my wheels. I’m constantly  trying to better myself by continuing education. If there isn’t much hope then I should just spend my effort on even getting better than the tools I’m stuck with other than wasting my time with technology I will probably never get to use. Any advice would be much appreciated.
======
jefflinwood
I would actually say that Microsoft is going in the direction that you want to
be in. You may be able to jump a little ahead of the curve, and be in an
excellent spot.

Everything from WinRT apps using Javascript for native development, to Windows
Azure Mobile Services using Node for cloud code.

Why don't you work on how to bring the new open MS technologies into your area
(probably something like back end systems at a credit card bank, for
instance)?

With a 15 year .NET background, you'll get taken more seriously than a
developer who just graduated from a 10-week MEAN bootcamp, for instance.

------
davismwfl
My career started in SCO Unix, Solaris and SGI then went to Microsoft for
years and finally in the past 5 years I am back to almost exclusively Linux
and non-microsoft tech stacks. So I have been on both sides, and can say that
each has their blemishes and beauty, but I greatly prefer non-microsoft stacks
overall.

Like you, I am limited in some ways because I have kids in school, shared
custody of my daughter and also really enjoy where I live, so moving isn't
really an option. To make it work I do a ton of remote work and collaborate
with people from all over the place.

To get started, just release some simple things into the wild on GitHub or
pick your platform. You could write your own tutorial on learning node doing
different common tasks, like reading files, writing files, network
communications, API definition, project structure etc. It would serve two
purposes, you learn how to solve real problems via node, and you help others
with that same transition. You could even do the tutorial idea but use iojs
([https://iojs.org/](https://iojs.org/)) to show how it differs etc. People
would like that and you would be learning something of value.

As for remote work, it is doable especially now. Nice part about Javascript in
general is even the diehard Microsoft shops will accept node more readily then
they would say Rails or other tech stacks. Honestly, it does and doesn't make
sense to me why that is but I have found it to be true overall.

------
hkarthik
I was in a very similar situation 4 years ago when I switched from 100% .NET
work in my local area to 100% Ruby/Rails work remotely.

The first suggestion would be to join a Javascript developers meetup in your
area. If there isn't one, start one on MeetUp.com. Network with other folks
who are interested in these technologies and start collaborating with a few of
them on some interesting side projects. You may even find an development
manager that wants to hire experienced folks interested in learning Node,
EmberJS, etc.

Once you have something significant to shop around to more influential folks,
it's just a matter of time before you'll land your first gig away from .NET
land.

The only caveat is you should plan to take a pay cut for your first non .NET
gig, because it will likely be at a small company or startup and they will
discount your experience. Once you have a bit more experience, you should be
back to your old .NET salary in no time by switching to a larger shop within a
year or two.

Good luck!

------
Someone1234
> you must supercomputer to get descent performance

I find an SSD helps a lot. Visual Studio runs fine until I install ReSharper
then it absolutely needs an SSD and 8 GB minimum of RAM.

> How about using text files for configuration rather than overly complex APIs
> (WMI Providers)?

The Windows Registry is more akin to /etc than WMI is. The Windows Registry is
clunky, however at least you only have a single interface to program against
rather than one per configuration file which is nice. Even XML doesn't resolve
things quite as nicely as the Windows Registry.

Do I wish the Registry was better? Sure. Organisationally it is horrifying and
there are some strange bugs and workarounds. However I think /etc style text
files are a step backwards.

> How about a proper bash shell (powershell is no replacement)

I agree Powershell is not a replacement for bash. It is in fact one of the
best command line interfaces ever designed and leaves bash well in the dust
(although bash is a bad example of the best the unix world has to offer
anyway).

> how about a proper SSH client?

Putty?

If you wish to use Linux, BSD, or OSX the more power to you. There is a lot of
great tech' around on those platforms. That being said, your post reads a bit
like a troll, you don't seem to know a lot about Windows and seem to be
spouting very bland generic "benefits" of UNIX-style operating systems out of
context.

Almost like you read someone else say these things then just decided to repost
them to get a rise out of people? Some of your complaints (e.g. Powershell
sucks) are pretty laughable. As someone who is quite familiar with both Linux
in particular and Windows, it is a hard complaint to take seriously...

------
rejschaap
The grass is always greener on the other side.

Bash is usable, but is a bit of a pain, its scripting facilities are very bad,
for anything serious you will probably want to use another scripting language
anyway.

Most tech looks quite good from a distance, once you really start using it you
will most definitely run into issues. That might be one reason a lot of us are
always jumping to different tech without getting proficient in anything.

Also, unless you live on the Microsoft campus and aren't allowed to leave
there are bound to be a lot of options available, maybe you didn't find them
or you are too focused on node.

You might want to look into Cygwin to get some Unix tools going. Putty is also
pretty good. If you need more you can install Ubuntu on virtualbox or any
other combination of OS and VM you might prefer.

By all means keep pursuing remote node work, but keep an open mind and don't
miss out on easy improvements available to you right now.

------
marpstar
I had the same thoughts that you're having. My specialty is client-side
JavaScript, but my backend experience is almost exclusively ASP.NET. Having
switched to a Mac in 2012, I found myself spending more time in OS X and
Sublime Text, less time in Windows and Visual Studio. I've started scratching
the surface in other areas (Python/Django, Rails, Node), but I really just
don't enjoy them like I do the ASP.NET stack.

That being said, with the announcement of ASP.NET vNext and the open-sourcing
of .NET Core, I've decided to double-down on the Microsoft stack (installing
vNext, learning F#, writing more apps in ASP.NET, etc) since I'll eventually
be able to develop ASP.NET apps in OS X, with all of the tools I could ever
want.

~~~
davismwfl
Its interesting, like my comment to the OP states I have been on both sides
and prefer non-microsoft overall. But that said, I really did get excited with
the recent announcements from Microsoft because I like C# and the productivity
of the .NET framework just not the environments it limits me to. So I will be
anxious to see if Microsoft does truly make/allow .NET to run on OSX and Linux
reliably without it being a pain in the ass for developers or clients. I am
skeptical but hopeful.

------
wstepp
Do you live within commuting distance to a city that has more opportunities
for the type of technologies you want to use? If so, what I've found is that a
vast number more companies are open to part-time remote than full-time remote.
You might have more luck if you widen your parameters there. If not then there
are definitely full-time remote positions out there. They are just harder to
find.

Also I would look for positions with a well-funded startup or a small company
(opposed to a large company). They are the best bet for getting to use cutting
edge technologies while also allowing remote work, in my experience.

------
cweagans
Remote work is easily attainable. Build something of your own, throw it up on
Github, and make it nice. That, combined with your 15 years of experience in
other technologies, should easily qualify you for a pretty nice position.

Sidenote: it's insanely stupid for hiring managers to disregard people because
they have 15 years of experience in the wrong technology. Someone with that
much experience ought to be able to learn pretty much anything relatively
quickly. If it's a sticking point during the hiring process, I'd bring that
up.

------
mooreds
If you have time to study, you have time to build a project resume with the
technologies you like.

It's not easy, but build a few apps, starting with the trivial and then
increasing in complexity.

Is there a node or open source users' group near you? If it is a major city,
the answer is probably yes.

Go there and ask folks about node jobs.

Another alternative is to focus on the client side javascript that your work
has you do already. Even the MS toolset still uses javascript in the browser.

------
rsrobbins
I've never even learned ASP.Net MVC. I'm sticking with ASP.NET Web Forms. But
I've done a lot of interesting things with web services and web requests using
ASP.NET. Recently I've gotten a big project which requires getting into .NET
Components, an enterprise architecture domain space which is extremely
challenging.

------
s3b
You may want to check out Mike Gunderloys blog[1]. He was also an MS developer
for 15 years before he switched to open source technologies.

1\. [http://afreshcup.com/about-me/](http://afreshcup.com/about-me/)

------
davidw
Maybe a side project? If you do it right, maybe you can even make a small
bootstrapped business out of it. Or if you don't want to do that, just have
fun playing with the technology for a fun project.

------
brudgers
Nothing prohibits writing code using Node outside of the workplace.

------
lingua_franca
find a service vendor then sub contract; they might let u work remotely. after
several projects u can be on ur own.

