When I was switching a job, it opened up some new opportunities for me. There were some positions for iOS (Xamarin or native) developers, which I was doing for more than three years, but I felt like I want to try something new for me. I became to feel a little bit bored, with the stereotype work that I've been doing during past months and that have no longer been a challenge for me.
I've been working on the same platform for about 3 or 4 years. I really enjoy a mobile development (with iOS being platform, that I'm most passionate about), it's always good to make a switch from time to time. At least for a while.
App development is something, that I'm mostly interested. I like that I have all control over the app lifecycle. I can do (almost?) everything I want, whenever I want. It's 100% controlled only by myself.
On the other side, a web was something that I've done before a little bit, and I've always been wondering to try to specialize more on it. I've created a couple of backends in PHP and Python, but that was a few years ago. I feel like there is something interesting about that, and also, it's popularity is huge during the last years. It definitely wouldn't be a step back!
So I've decided to do a switch and force myself to learn something new. The new platform, domain, and everything. It's been a great experience, to work on new project, starting from scratch. I could create and design an architecture as great as possible.
After I made a switch, I've been happy and excited. But there have been some blockers from the beginning, that I had to overcome. I'm using the same language as I've primary been for the last four years, but the platform itself was completely different.
I have no longer had full lifecycle support. I have to design communication with "process and return" functionality in mind, as a whole MVC is based on HTTP requests and AJAX calls.
based on the point above, I had to carry in mind when designing an app workflow a cookies, session, routing and all the web related things that didn't exist in mobile development.
also, authentication is a bit different. It's definitely something, that I had to investigate. The key difference is, that you have to have in mind that every single route should be protected.
It's not that bad after all
It took me few days to get used to it. Before the real project, I wrote a small blogging app backend, just to get an overall feeling, see the details, try the workflow and overcome initial problems.
Since I became working on the project from the ground (no codebase to learn) I had all the space to actualize. Day after day, I've always learned something new, and include those knowledge to the code that I wrote previously.
After about a month, I could say, that I've been completely confident to code in Asp.Net MVC. I managed (and worked hard!) to switch my mind and start thinking about the problems from the web perspective.
It was an interesting transition for me, with an opportunity to extend my skill set and learn new things. It's never bad to know more and be able to switch between languages and platforms seamlessly.
I'm enjoying the project and the platform, and the difference from my previous daily job. I love to learn new things, but I'm also happy with the fact, that I can use my favorite language, C#.