Skip to content

Success story

I have more than 20 years of experience in IT and studied software development at the best Russian university, not on Youtube like 99% of freelancers today. This matters a lot when it comes to commercial projects, product quality and customer satisfaction. I can offer my clients professionalism, competence and loyalty.

Experience in software development is very important. Choosing inappropriate system architecture and technology stack leads to spending 2-3 times more time and money on a project than it really costs. I often see this rule in action and have never seen an exception to it.

Working on a project isn't just coding, it's collaborating with a client. I'd like to describe one such experience as a use case that outlines my approach.

SiFC project

It was a project for the German Ministry of Education - a system using Vue.js and CouchDB to manage high school curricula.

Before I joined the project, the client had been developing this system for more than a year. He went through several developers, and I can't say that they were all low-paid.

The code was a mess. Each developer tried to do something different. Even as an MVP (minimum viable product) it can hardly be considered. There were no coding, deployment or other standards or conventions. No SRS (Software Requirements Specification) of course, no other documentation.

After clarifying the situation, I discussed with the client their business needs and goals. Then we determined the basic functional requirements for the system. For this I created several UML diagrams - a visual representation is always helpful. Then we developed the appropriate data model.

I convinced the client to use some kind of project management tool (we chose Trello) to track progress and keep everything somewhere other than the Upwork messenger and our heads.

After that, I started refactoring the code according to the newly chosen architecture. I also started writing documentation for the project. Its purpose was to describe the project to make it easier to understand for both new developers and the client. I think that internal documentation is a very important artifact in software development. Many programmers don't document their work because they want to make the client dependent on themselves.

After the new architecture was implemented, the development of new features went much faster. The application became much more reliable, scalable, and maintainable. I set up CI/CD to automatically build projects after every commit to the repository and did some other DevOps stuff. I also set up multiple environments - development, test, staging, production. This saved a lot of developer time.

Many other things were done, and after 6 weeks of work, I got this feedback on Upwork from the client:

After that I worked on this project for almost 1 year.

Other feedback can be found on my Upwork profile although my main projects are on other platforms of offline.