From C++ to Haskell
I first heard about Haskell in 2012. At that time I was working on C++ and was pretty shocked when started to learn the language without an assignment operator. Time passed and my interest got stronger and later completely replaced my love to C++. Year and a half later I was working on the backend of an e-textbook service. To my suggestions to introduce Haskell into our project my manager replied that it is a strange language, strange math and that we would never find a specialist, so it is better to stick to the tried-and-true C++.
At that time functional programming was just my hobby. Haskell was much less common in russian-speaking communities than today. It was hard to find adequate books and learning materials. And when I say adequate I mean those that are suitable for beginners. The majority of materials were for those who already know a lot and have strong mathematical background. An ordinary developer who wanted to switch from another language, paradigm and philosophy understood neither terminology nor what is the purpose of those difficulties and their practical use and advantages in development. Learning about Haskell I started to gather materials. As a result I wrote a small book for complete beginners - "Talking about Haskell in a comprehensible way
In 2015 when our project ceased to exist I ventured to find a remote job with Haskell as my main language. That was my first step into an international job market. Now I work for a company registered in Hong Kong.* However its location is purely a formal matter. Nowadays many IT companies have teams distributed all over the world. My colleagues work from more than 11 countries and our company's executives live in the USA.
*Input Output HK
— is a research and development company and industry leader in the fields of cryptography and distributed systems. It builds cryptocurrencies and blockchains for academic institutions, government entities and corporations. Cardano
is the first cryptocurrency to be based in Haskell code, it is 11th biggest cryptocurrency
by market capitalization.
I had no difficulties with integration into an international company. IT professionals are basically the same sort of people no matter whether they are from America, Russia, France or Japan. We all use the same terminology, similar stacks and instruments. The main problem was with speaking English.
Transition to Haskell was rather risky move in terms of my career. At that time I was already a senior developer with 7 years of commercial experience in C++ development. With Haskell I became an inexperienced junior developer who had to start everything from scratch. It was risky not only because of lower salary but also because most of my experience was no longer needed. But in general it doesn't really matter whether you switch to a new language in Russia or Armenia.