Long story short

Hello everyone!

My name is Alexei and I am a mobile developer at Akveo. Recently our company has released the new version of our UI framework - React Native UI Kitten and also a demo application based on this framework – Kitten Tricks. Both are free and open-source and have already gained over 3000 stars total on GitHub. It’s a big thing for me because the project has been my initial step in the world of open-source. That’s why I decided to tell the community more about myself and my journey in software engineering. I hope somebody will find it useful for their careers or will just have fun reading it. So let’s get started.

My career started 7 years ago. If someone told me back in the day that I would find myself working with cross-platform solutions for mobile devices, I would have not believed it. Well, funny things happen in life :)

My professional way started from ASP.NET WebForms. It was not an easy time, ‘cause in order to write JavaScript I had to call ugly constructions and make AJAX calls with magical component UpdatePanel in WebForms or using $.ajax. Back in the day Google was just about to release Ice Cream Sandwich. That’s when I got into serious development. I kept on adding MSDN and StackOverflow bookmarks to the browser and fighting with IE6 and float: left at the same time. Probably because of the last one I still don’t like CSS.

I can also say that the experience with WebForms probably made me feel very sceptic about JavaScript in general and its place in mobile world in particular.

After 4 years of web, I finally figured out that I want to try out something new. My managers suggested me several options, but for some reason I decided to switch to desktop development. At that time WPF seemed like a promising technology to me and I decided to give it a try. Also, at that period of time I really got into architecture and design. So the project of mine consisted of a huge pack of view models, abstract factories and other fancy abstractions. Obviously, it was over-engineering for a relatively small codebase we had :)
When my colleague joined the team, she was like:

After WPF I had two paths: to move back to web or try “something completely new, very promising and interesting” as my manager said. Well, he was right – Xamarin was fun. So I switched to it undoubtedly. Xamarin.Forms were poor and unstable but it had XAML, data binding and MVVM like in WPF. These things helped me to jump into this technology very quickly.

Since the time I started working with Xamarin, a lot had happened. The Organization was acquired by Microsoft and the technology became free and open-source. Some useful and cool features were introduced as well, like Profiler, Inspector etc. Frankly speaking, I had everything mobile engineer might need to create amazing apps. In fact, good technologies is what we need to feel truly happy. Anyway my soul wanted to try out something fresh, more than a new technology - kind of a new career way.

Since I joined Akveo, I am responsible for mobile development in the company and for several open source projects. When I started working here I was absolutely sure that I would develop mostly in Xamarin. Yet, guys suggested me to try React Native. I’d heard about it before but never tried for real. Moreover, I was scared by JavaScript. My knowledge about js remained at the level of getElementById and $.hide(). All cool stuff like ES, modules, promises etc were completely new (some of them are still a bit mysterious) to me.

Nearly 4 months ago we decided to improve React Native UI Kitten that had already existed and make a good demo for it. By that time I came to the conclusion that React Native is really great for UI and (I can’t believe that!) you don’t need to rebuild application each time you change something. This great feature saves tons of time! Of course, not everything in learning curve went smoothly. I was “surprised” by flexbox, disappointed by out of the box navigators, and unsatisfied with frequent breaking changes. I believe that’s why React Native has 0 as a major version. Also an outstanding point was, you know, node_modules.
When a couple of days were left before the release, I turned on “berserk” mode – I had a lot of job to do and no time at all. In addition, I had such a bad sleep, I was super nervous. Thankfully, colleagues helped me a lot. So big thanks to them!

Right now, when both projects (React Native UI Kitten and Kitten Tricks) have been released I feel satisfied with the work done. They are my first big open-source projects, and I can't describe how does it feel when your work gets appreciated by so many people. I'm really grateful to everyone supporting us. I am willing to improve these projects and probably create something new in nearest future.

Anyway, thanks for reading this and supporting me all the way. May The Force be with you!

Alexei