How I managed to switch from a Legacy .Net Developer to Full Stack Developer
Tags: react, learning, motivation, selfdevelopment
Published: 2019-10-03 20:59:59

---
title: How I managed to switch from a Legacy .Net Developer to Full Stack Developer
published: true
description: My journey of how I managed to move from legacy tech stack to some of the newer technologies like React, .Net Core, Docker, AWS Lambdas, etc
tags: ReactJS, Learning, Motivation, Self-Development
cover_image: https://miro.medium.com/max/5760/0*43cRzgd0XB_kVBWQ
---
<p>Hello everyone. I’m Mohsin, a Full-stack Developer and founder of web app <a href="https://spendwise.io">https://spendwise.io</a> . I have around 11 years experience in software development and out of that I was stuck using legacy technologies for around 8 years! This is my journey of how I managed to move from legacy tech stack to some of the newer technologies like React, .Net Core, Docker, AWS Lambdas, etc. I’ll also give you references that helped me in my journey.</p>
---
*Note: This is not a tutorial on how to learn React or any other technologies mentioned above. There are plenty of resources available on the internet to do that. I’ll also give some references in this post.
Also please note, the intention of this post is not to prove I’m an expert developer. I know, i’ve a lot more to learn. :-)*

---
<p>
Life of a developer has its ups and downs. Technology landscape keeps changing and now it is changing even rapidly that staying up to date requires passion and determination.</p>

<p>I started my dev life as an ASP.Net developer using C# back in 2008. From 2008 to 2014, I switched job 2 times. But all of my roles dealt with just ASP.Net Webforms, windows forms, a little bit of JQuery and lots of stored procedures.</p>

<p>By that time, Microsoft came up with MVC and Javascript frameworks like Knockout, Backbone etc started getting popular and then Angular came in. No one could imagine a life without ORMs when I was still writing stored procedures and was using ADO.Net! Visual Source Safe was the only source control I knew how to use. Technically I was not job market worth any more! And that was when I made my big move.
</p>

<h1>Take Risks in Life</h1>
<p>In 2014, I made a big move — I migrated to Australia. Before that, I took 2 months career break and learned a bit of MVC and Entity Framework. But that was never enough to crack an interview. I didn’t want to fake something that I didn’t know. I honestly told interviewers that I knew a little bit of MVC and I was keen to start using but didn’t have experience. It was never easy to get a job in Sydney without knowing any front end frameworks like Angular or Knockout at that time.</p>

<p>After about 4 months of job hunting, I got a job in a big media organization. That’s the thing with big companies, they will always have legacy applications which they will be in the process of getting rid of. That’s the time when I joined. I used WCF Services, Entity Framework, MVC 4 and Web APIs during my time there. Source control was using TFS, deployments were manual and servers were all on-prem.</p>

<h1>Never settle down with just what you know</h1>
<p>Yesterday while attending my daughter’s school event, the principal in his vote of thanks quoted something I feel makes a lot of sense and that’s exactly what I did and advise all of you to do.</p>

*"You can’t stand still in this world. If you do, you get run over.”*
<p>
I never was happy with just what I was using on a daily basis as I knew there is much more happening in the tech world.
Hence I signed up for a course in Angular 2 in Udemy by Anthony Alicea. I felt this course was pretty good (at that time. Now Angular has released v8!). And I could use a bit of Angular while doing an intranet migration project in the company.</p>
<p>
When I reached a point when I felt there is not much more to learn from the company and there were not many interesting projects, I knew it was time to move on. I started applying for jobs again.</p>

<h3>Failures may put you down, but it is worth it</h3>
<p>Getting into the interview stage was easier this time since I had a big media organization’s name on my resume. But that was not just enough to crack the interview.</p>
<p>
The very first interview I attended, I failed miserably. The interviewer only asked C# questions and I couldn’t answer many of them and I felt very disappointed. But I realized before diving into other technologies I need to be strong in what I already know. I started reading more articles on C#, design patterns, architecture, unit testing, etc. In Udemy, I found a course by Mosh Hamedani extremely useful to get my basics right. I signed up for his advanced C# course as well.</p>

<p>In Australia, most companies would throw a coding test at you before they invite you for an interview. I never had to do Unit Tests in any of the companies I worked for and I didn’t know how to write them. But I had to write unit tests for the coding tests which gave me that missing experience! :)</p>

<p>After failing for around 10 interviews/coding tests (or more!), finally, I got a job in a company that pretty much used all the cool technologies out there. They just made sure I had my basics right in C#. They only offered me the same salary I was receiving in my previous role. It was a choice between $$ vs passion and I chose passion which was a turning point in my life I would say.</p>

<h1>Be a fighter</h1>
<p>My new role was very different from what I had ever done before. It was a SaaS company with a big client base. And I was one among 50 developers and I was one of the oldest by age!</p>

*No matter the years of experience you have, if you don’t know something, don’t feel ashamed to admit it.*

<p>This a golden rule that I followed wherever I went. When I joined my new role, I had no idea about even simple things like git commands. I never felt ashamed to ask my colleagues about something I didn’t know. It doesn’t mean I asked around for anything and everything; I relied on Google heavily as well.</p>
<p>There were so many things to learn from there. But always the first focus when you join a company shouldn’t be to get your hands on the technologies you didn’t know but to prove to the company that you were a good hire. In my first week’s catchup with my manager, I made it clear that I would like to get my hands on with front end development eventually, but the first task would be better if it is using something that I already knew.</p>
<p>My first task hence was to develop a windows service to monitor a few external APIs/web services. It was multi-threaded and I used event-driven patterns which I learned from Mosh’s tutorials. I learned git commands, setting up CI/CD using Team City and Octopus Deploy after this project.
The company’s main SaaS application was mainly built using Knockout and MVC 4. Newer modules were starting to use .Net Core and React. And they were starting to migrate everything into AWS. So I was sure moving forward React was the go-to front end library for the company.</p>
<p>To make sure I can survive in the React world, I signed up for a React course in Udemy by Stephen Grider and spent most of the commute time in the train to listen to his lectures and did my hands-on practice sessions at night when my wife and daughter were asleep. This course had the most reviews then and I was impressed by his teaching style. (Last week I signed up for his React Native course on Udemy. I prefer his teaching style over others. But it may be just my personal preference).</p>

<h1>Always be keen to learn</h1>
<p>My next project was to develop an internal knowledge base with some workflows. I could have decided to use React to build this. But I had only 1 month to make it go live and I was the only one assigned to build both the front end and backend. I was sure there wasn’t just enough time to learn and build using React, .Net Core and docker. So I decided to use .Net Core and JQuery and to containerize the application. Takeaways from this project were .Net Core, Docker and Rancher. I was happy and the company was happy. Happy days! :)</p>
<p>Finally, I got my hands on React in my next project. I was assigned to build the front end of a consumer-facing web app and I had to use React with TypeScript. Since I already had a taste of React by doing Stephen Grider’s course, it was a bit easy. But when you use it for a project, you learn a lot more. I also used Redux for the project. (now I realize, I could have easily managed to develop it without Redux). It takes a while to get used to the JSX/TSX syntax. But once you get your head around it, I promise it is fun to build front end using React. Same is the case with Redux, but I would try to avoid using Redux if I can manage with React’s component state.</p>
<p>I didn’t use create react app for the project as I had to use Typescript and was forced to use an older version of React Router. Setting up the project was painful being a starter but the more you struggle, the more you learn. I would advise anyone starting to learn React, to start from scratch rather than using create react app as you get to set things up yourselves.</p>
<h1>Believe in yourself</h1>
<p>After working there for a while, I got an offer for a more serious React/.Net Core/Azure role. I went for it and that allowed me to work full time on React.</p>
<p>But this role was a lot more challenging as I was the only developer in the team and pretty much everyone else was non technical. That’s when believing in yourself is very important. I was stuck at several instances; but I kept digging and digging and in most cases I found gold and then I would have learned something new! This gave me the confidence to build my side project.</p>
<h1>Serverless Days</h1>
<p>In my previous role, I had heard few colleagues talking about AWS Lambdas and I thought it was some kind of scheduled task / event-driven thingy from AWS. I didn’t know the real use case of it.</p>
<p>When the idea for my side project was finalized, the tech stack I chose was naturally React and .Net Core as that was what I was most comfortable with and I thought I’d deploy it as an Azure App Service.</p>
<p>One day as I was researching on the internet, I randomly came across the serverless stack tutorial which is a very comprehensive tutorial on building a simple Note taking app using React, NodeJS, AWS Lambdas and Serverless framework (It even teaches you to set up CI/CD pipelines for Serverless, authenticate using Cognito and a lot more). I highly recommend this to anyone who wants to learn AWS Lambdas / Serverless Framework. 75% of my product was built using this stack. There will be lots of challenges you face when you learn something new… There was a point when I was stuck for around 3 weeks figuring out my VPC configuration without which I couldn’t proceed any further. But if you are persistent and manage to solve the challenges, you will start enjoying challenges.</p>
<p>Now I’m learning React Native to build the mobile app for my side project.</p>

---
<p>I had a manager who was around 62 years old when he was made redundant from his role as an Application and Database Manager after working 30 years for the same company. He was very outdated while working there and was mainly monitoring database resources. I contacted him 2 years back to know how he’s doing and to my surprise, he was working in a tech company and dealing with a bit of DevOps, .Net and was using Octopus Deploy!! How good is that; learning in his 60s! I’m sure it was not a survival instinct as he was financially well off.</p>

---
<p>Even if you are a busy developer, make it a habit to spend some time reading tech posts in medium, dev.to, hacker noon etc. Subscribe to daily/weekly digests so that they send you a list of articles to your mailbox that may interest you. Sharpening the axe once in a while is key to cutting wood efficiently! (That’s not my thought, but Abraham Lincoln’s).</p>
<p>Below are the links to the tutorials I mentioned above:</p>
<p>Tip: In Udemy most of the time, there will be some sort of sale which is when I enrol for courses. I haven’t spent more than A$15 for any of the below courses. So if you see full price, wait till it becomes available on sale.</p>
<ol>
<li><a href="https://www.udemy.com/learn-angularjs/">Angular JS</a> by Anthony Alicia</li>
<li><a href="https://www.udemy.com/course/csharp-intermediate-classes-interfaces-and-oop/">C# Intermediate</a> by Mosh Hamedani</li>
<li><a href="https://www.udemy.com/csharp-advanced/">C# Advanced</a> by Mosh Hamedani</li>
<li><a href="https://www.udemy.com/react-redux/">Modern React with Redux</a> by Stephen Grider</li>
<li><a href="https://serverless-stack.com/">Serverless Stack Tutorial </a>(You will love it) — This is free.</li>
</ol>
<p>
Happy coding!</p>
Follow me on twitter: https://twitter.com/spendwise_io