This blog post is about my path so far, which I went from being a bank clerk to a freelance web developer.
After graduating from Belarussian State Economic University with a Bachelor's degree in finance and credit in 2004, I've spent the next 14 years working as a bank clerk. I've worked in two banks and changed 5 departments in the meantime. Retail and corporate lending, collateral evaluation, financial analysis, credit risk assessment, accounting reports are among the things that I was doing. But gradually my work became like a "Groundhog Day" - every day was the same as the previous one. I liked my work in general and my working team, the boss was great and the salary was good, but I wanted more. I wanted to learn every day, to move forward, and to have more freedom (as a bonus). To look forward to Mondays and not to drag my feet to the office every day.
I always dreamed to have my own business someday, or at least be my own boss. At the same time, I was prone to the automation and optimization of all processes in my banking career. And besides, the tech industry is booming in Belarus for the last decade.
So, at 35, with no relevant degree, I've decided to completely change my professional life and to become somebody like a programmer. At the time I didn't have a clear idea of what exactly I'd like to do. I had no friends in the tech industry, nobody who could become my mentor in this journey. So my learning path was very curvy with lots of trials and errors.
While still working at a bank, I've decided to learn a programming language. Simply googling this topic, I've found out that the most popular language at that time was Java (it was 2018). So, let's try to learn it! I've started to do an online free course, but my progress was extremely slow. Working full-time and having a family with a small kid, I literally had a very small time and even less energy to study.
So, together with my husband, we made a decision that I'll quit my banking job and will study full-time. My last working day in the bank was July 13th, 2018. Since then my long and heavy road in development began.
I've wanted to start with a beginner level of Java off-line course. But for that, I needed to have a basic understanding of web technologies (HTML, CSS, how the Internet works, and so on). So I had a crash course on that.
Then during the next 6 months, I've successfully completed the Java Fundamentals course and Java Enterprise course in the Educational Center of HI-Tech Park Belarus (IT Academy). There were lots of hard studies during these 6 months. I'd say that it was 95% of self-studies and only 5% of classwork. By the way, I was the only female in the advanced section of the Java course and finished it as the best student in the class!
I understood that I really like programming, all this problem-solving thing. But at the same time, it was obvious that Java is mostly required in big tech companies and I definitely didn't want to go back into the corporate world. Besides, when I was working on my final project of the course, I wanted to have a "normal" front-end, although due to assignment it was enough to display results of the back-end queries in a console. I guess I've tried to use some Java front-end tools like JSP and it was awful!
When the Java course was coming to an end, I've started to think about what should I do next? I had an idea that it would be great to work in a small start-up team. But the problem was that nobody needed a developer with a zero experience. Start-ups require an experienced developer who can bring results fast.
Luckily I've found out that there is a lab for IT Academy graduates where junior developers can improve their skills working on a real project in a small team. I was accepted on a project called naakcii.by. It's a service that helps to find groceries and other goods with the best prices among Belarussian stores. By the time when I joined this project (January 2019), it was in a development mode for 8 months. My first assignment was to develop Swagger documentation of the project. After that, the team decided that an admin panel is really would be useful to implement CRUD operations on the database. And once again there was a problem - Java is not a front-end language and we were short in front-end developers.
In April-May 2019 a new start-up project was presented to the lab - weekmenu.by: the app for helping families to make a menu for a week (with recipes) that generates a list of ingredients to be bought once in a week. It was decided to join this new project (weekmenu.by) to the existing project (naakcii.by) and start building an ecosystem Happy Family.
By that time most of the team members found jobs in tech companies, so a new portion of IT Academy graduates joined the team. I wasn't looking for a job on purpose. I wanted to gain experience in this start-up world and eventually start my own project. BTW, in April-May 2019 I've attended a Project management course, as I wanted to improve my knowledge base on how to build a process of tech product development in a team.
Work on a new project started very enthusiastically. UI/UX design, user stories, app architecture, ideas about integration of two services, and into 3rd parties API. But unfortunately, it lasted not for long. The lab wasn't paying anything to its members. So people were founding a real job pretty quickly and leaving the project.
The funny thing is that I was the most "experienced" developer of the team at the time. So my responsibilities include app architecture, code review, assistance to other developers. And of course, once again I was developing an admin panel for the project using the Vaadin framework. By the way, in December 2019 I passed an exam and got Vaadin 14 Developer Certificate.
Well, things were moving very slowly. More and more people were leaving the project as they were lacking motivation. The most problem was in finding front-end developers, specifically Angular developers, as the first project (naakcii.by) was developed with Angular, so our mentor had a strong opinion that to integrate two projects they should use the same tech stack (I completely disagree with that). Unfortunately, gradually, the work on the projects completely stopped.
What I've learned working on two start-up projects:
- improved my tech skills in Spring Boot, Vaadin, PostgreSQL, Git, Bitbucket, Jira
- gained experience in remote work with a team of developers on real projects.
- saw how does Scrum methodology looks like in practice.
- meet a lot of new really nice people.
I was having sooooo much fun learning React! You know, in Java you can't see the results of your work visually. And React is all about UI.
I've read several articles of experienced freelancers, where the main message was that you should start to find jobs as soon as possible and learning during the process of working on it. I didn't feel that it's the right way for me. I can't take a job if I don't feel that I can accomplish it.
I've decided to practice my front-end skills while developing apps and tools, that I needed in my everyday life. For example, a fitness app (Tabata App) for my personal training, a Financial manager app - to keep track of our family incomes and expenses, a Celebrity recognition app just for fun.
Later I've decided to try to develop a well-know for me thing - admin panels and dashboards. But this time using React. Vaadin is a great tool. You can create a nice dashboard pretty easy and fast using an array of Vaadin's components. But it's become quite challenging to create a dashboard with more custom design. With React you can build whatever you like (UI wise), the sky and your imagination is the limit. So, I've developed several dashboards, like GitHub Dashboard, Coffee Shop Dashboard, Google Analytics Dashboard.
After completing a few small freelance jobs, I've got an invitation for a job interview on Upwork. The job was to develop a web app based on the existing mobile app. During the interview, my previous banking experience was discovered. As the app is at the intersection of technology (blockchain) and banking, I received an offer to join a team in the role of Product Manager. So, for the last 3 months, I'm trying to do my best on a wonderful project Sikoba as a Product Manager. As the team is pretty small, sometimes I do the coding too (BTW, I had to quickly dive into React Native).
So, my current activities include:
- work in Sikoba Ltd. as a Product Manager / Developer
- small freelance projects
- open source contribution
- personal projects (for practicing web development skills)
- tech blog posts writing
So, this is my professional journey so far. I can truly say that I am completely happy in my career. I do enjoy my daily job, that I have to gain new knowledge every day, meet new people from around a world (online, of course). And I'm my own boss! I'm free to choose a project, free to make my daily schedule, and free to work whenever I want.
My path to development was not easy and not the shortest one. But I wouldn't change a thing. Everything was (and is) as it meant to be.
And remember, it's never too late to pursue your dreams!