Although I specialize in Dashboards and Admin Panels building, I’d be happy to help to develop any web application or web site to make the life of my clients from around the world easier.
Currently for the full-stack development I prefer to use:
React / React Native for frontend
Node.js / Express.js for backend
Other tools and technologies, that I use, include:
Databases: PostgreSQL, MySQL, MongoDB
Frontend: TypeScript, HTML, (S)CSS, JavaScript
Version Control: GitHub, BitBucket
PWA (Progressive Web App), Maven, NPM, Webpack, Yarn, Redux
When not coding, you can find me playing the piano or the guitar , listening to Finish or Dutch metal, watching football (soccer) , tennis or biathlon, reading a nice book , or just hanging out with my family .
My long story of how I changed careers from bank employee to developer
Banking Career
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.
Switching to Programming
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.
Java Course
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 frontend 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.
Start-up Projects
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.
Then the project's mentor suggested using Vaadin framework for admin panel development. That's how I knew that you can develop front-end parts in Java too! So since February 2019, I've started to learn Vaadin intensively. For the first time, I was reading technical documentation a lot, as this framework is not widely used, so there are very few tutorials on it. It was hard, especially to grasp front-end concepts without almost zero background in classic front-end technologies, like HTML, CSS, and Javascript. But in 2 months of hard work I've developed an admin panel for the project. I was proud of my job, but now looking back, the quality of the code was low and the architecture of the project was not good. But it was a really useful experience and it was my first full-stack Java project. And more importantly, the admin panel was doing its job just fine.
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
Learning Javascript
In the meantime, I was starting to look at freelance job opportunities. But with my tech stack (Java) it was practically impossible to compete with experienced developers. So I decided to switch my programming language preferences and start learning front-end technologies: Javascript and then React.
At the end of October 2019, I've started to learn Javascript. For me, it was way easier to learn Javascript than Java. Maybe because it was a second programming language for me. But overall after "heavy" and strict Java, Javascript was like fresh air. And you can use Javascript (Node.js) for a back-end too!
After learning Javascript fundamentals I moved to React.js. Why did I choose React.js? Once again, because it's the most popular Javascript library.
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.
Preparing for Freelance
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.
Freelance Job
So, after learning and practicing Javascript (React.js, Node.js / Express.js) for about 6 months (while still doing some minor work for start-ups), I felt sure enough for trying to get some freelance jobs. I've created accounts on freelancer.com and upwork.com. I was bidding only on projects where development or update of a dashboard needed. And to my surprise, I was able to get a customer in a couple of days!
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
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!