Programming is not just a job for me,
this is my passion.
During my work as a programmer, I achieved lots of obligations, here are some of them that make me feel so proud.
I worked on projects where an essential part of the product is either the admin console or customized desks. Unfortunately, I have no right to divulge information about most of them as they are for internal use only. However, there is one about which I can tell with pleasure. Backendless is a Mobile Backend as a Service (MBaaS) platform which developers use to speed up app development.
After a while, as I started working on this product, the task was to create new Console 4. For that, we decided to use the most modern technology stack: React/Redux, Webpack and NodeJS, and it was the right decision because if you take a look at the statistic of technologies usage in 2019, this stack remains quite modern, suitable and with a vast community around.
At the first stage, I was responsible for creating basic layouts and components along with sections such as Main Dashboard, Manage, Analytics and Date Service. I worked closely with both Frontend and Backend team members. And together, we were able to make the first release 4.0 in a reasonably short time.
On this project, I successfully implemented many complex components such as Charts, SmartTable, DateTimePicker, which can also be reused on other projects. Also, I have successfully done several services and features such as API Generation, Codeless, Push Notifications Designer, Real-Time Logging, etc.
One of my favourite parts in Frontend development is data visualization, uniquely interactive and well-styled visualizations. I have rich experience in building graphs of various types of complexity. I worked with many libraries such as Highcharts, Chart.js, FlotCharts, but also I like to create my own visualizations using D3.js library.
While working with maps, I've been working with various providers such as GoogleMaps, OpenStreetMap, BingMaps. I used D3.js for adding overlay visuals such as Heatmap, Geohash, Points, Lines and Arias.
Typically an integral part of the work was the introduction of interactivity into the visualization like DrillDown, Thresholds Sliders, Time-shifting. Where is was possible, I did Caching, Aggregations, Data Breakdowns on the client to increase performance and responsiveness.
Real-Time Server is one of the dominant services in the Backendless platform. We call it RT, and it is the link between the Backendless Core and the client application for the instant delivery of new data in real-time. The service includes features such as Real-Time Data, Messaging and RemoteSharedObject, etc.
A couple of years ago, I designed this system based on the socket.io library on NodeJS. I also implemented a client module RT-Client that is used both in the JS-SDK and on the Console. The server is capable to work with any Backendless SKD including Flutter-SDK which was added not so long ago. For load balancing, this service is well-scalable and easy to configure.
RT made it possible for our customers to have up-to-date data in their applications and in the Console as well. Throughout the implementation phase, I worked closely with other team members, including CEO, Core team and Android/IOS developers, and together we brought it to life.
Backendless provides customers with an ability to write Cloud Code. And JS CodeRunner is designed to process the code on Backendless' servers. For security, the Code Runner launches each task in a separate process, known as Worker. But for starting a new process and load all the necessary code and modules, NodeJS, takes about 100ms of time.
So, to improve performance, I added workers` cache. Each time when the Code Runner receives a new task, it can determine if there is a corresponding worker to process the job or launch a new one. Once the job is done, the worker goes to the pool of idle workers and will wait time to be profitable again. In case if the pool is already full, the last used worker will be removed to leave the place for a new one.
I also added priority consideration between low and high priority tasks. In general, these improvements accelerated task processing by about 30-40% which has a good effect on overall performance.
Codeless is based on Blockly library provided by Google, and this is an alternative to create Cloud Code in Backendless. Using an intuitive user interface you can represent your algorithm in two minutes. Since each block has an accurate description, the system might be used even by children.
I've built Codeless Designer a few years ago and since that time I've added numerous specific blocks for working with Backendless API and helper blocks as well. There were implemented many further features such as Blocks Search, Frequently Used, Custom Functions and etc.
Codeless became popular not only for customers who are not familiar with programming, but experienced developers and engineers. In the near feature, the Codeless will be used for building logic for Single Page Application in UI-Builder.
I've created the React-Native JS-SDK Patch, which consists of 2 native modules written on Java and Objective-C languages. The patch extends the capabilities of the Backendless JS-SDK in React Native environment.
The API for registering devices was simplified to avoid installing any additional modules for getting device information such as token, OS, version and etc. Additionally, I've added code for receiving remote push notifications out-of-box, along with an ability to use Push Notification Templates and Push Notification Actions.
With this module, Backendless customers have a more straightforward way to set up remote push notifications in their React Native applications. I've written how to use it in this two articles for iOS App and Android App
Getafood is a young Ukrainian startup that is intended for searching and delivering home-made food. The service consists of an API Server, a WEB and Mobile applications.
I've built this project from scratch, starting with the designing database structure and ending with the automation deploy process to several servers. I was responsible for developing the server-side and also the WEB App. Plus, I created an API module that is used both on the WEB and Mobile applications. I've been mentoring a React Native developer, including assigning tasks, giving recommendations about architecture and best practices, and code review as well.
The main tech stack on the server includes Feathers, MongoDB and Redis. Web App is a SPA which is built using React/Redux and Material-UI. Along with typical login via email, a user able to login with Phone Number and Social Networks as well. Real-Time Data updates and Messaging is designed by using sockets and Redis. To improve performance, I've implemented a smart cache on the client-side, which can be updated from the server by necessary. For SEO, I've done server-side rendering with differentiation by GEO locations and languages.
Any successful engineer has lots of professional skills, and here are some of mine.
There are several projects I've started from scratch with a team and personally as well. I like it because every new app is always much better rather than the last one. You can build on your previous experience and bring all the best practices into a new project. It is also a possibility to pick up a modern technology stack.
A well-designed architecture is key to the right product. When I'm designing a system, I always follow the main rule that tomorrow everything might be changed, and the system must be adapted quickly to the new requirements to save time and money. I love to be aware of the entire product's process.
The best interface is one that does not require any additional explanation. In my work, I try to strike a balance between beauty, convenience and productivity. I'm capable to work closely with graphic designers, or you can tell me what you need, and I'll build it for you. I always try to look through the eyes of the end user to make intuitive UI.
It is impossible to build a large project one by one. For this, a strong team is always necessary. I like to share my experience and opinion with other team members and, from time to time, ask for advice on what is the best way for something.
I frequently have to produce my own components, libraries, modules, or services, and I always look at the opportunity to reuse this code in the future. I always try to write code that can be transferred to another project with minimal efforts. It allows you to complete the task much faster and start a new one.
I like to solve complex issues. The more challenging is the task, the more exciting and creative the solution will be. To solve problems, I usually use skills such as Analysis, Research, Creativity, Decision-making and Counselling. I am also able to solve problems quickly.
Well-readable code is always only a big plus. All the teams I've worked in, we had certain agreements on the code style. When there is a stable project style, each team member can easily understand the code, and this increases overall productivity. On all the projects, we also had a robust code-review process.
I’m used to valuing my time and the time of my colleagues. Therefore, before transferring the completed task to QA department, I always double-check everything and try to predict problem areas in the code even if it wasn’t described in requirements. I also write both Unit and Functional tests.
I have quite a lot of experience in integrating various 3rd party services into a project. Sometimes you have to read a lot of documentation, but sometimes you need to dig into the source code to understand how it works from inside and find a solution to get everything working together.
Please take a look at my journey, companies and projects what I worked at.
Backendless is a software development platform designed to streamline and accelerate mobile application development process. The platform consists of a mobile backend-as-a-service (MBaaS) product, API management solution and a hosting environment. Using the platform developers can reach new levels of productivity without focusing on the complexity of the server-side.
Working at this company, I've archived lots of experience with Cloud Code, RealTime, Code Generation, Relational Databases and SQL.
GetAFood is a young startup from Ukraine. Across the globe, there are lots of people who adore homemade food, and the platform helps them to find the best ones and order it in a few clicks.
On this project, I've improved my skills of the entire development process and also gained experience in SSR and SEO for Single Page Applications.
Spirent is the leading global provider of testing, assurance, analytics, and security solutions. From physical and virtual service provider networks and enterprise data centers to mobile communications and connected vehicles, Spirent works with leading innovators to help the world communicate and collaborate faster, better, and more securely to provide a superior user experience.
During this project, I received new experience in building new front-end projects from scratch, designing MVC architecture and working with complex forms with many options and cases.
NETSCOUT Systems, Inc. is a provider of application and network performance management products. Headquartered in Westford, Massachusetts, NETSCOUT serves enterprises community, government agencies and telecommunications service providers. In July 2015, NETSCOUT acquired the communications business of Danaher Corporation, including Arbor Networks, Fluke Networks, Tektronix Communications and VSS Monitoring.
I gained tremendous experience in developing complex, composite and interactive visualizations. Also, I obtained experience in working in an international team which contained developers from countries such as the US, Ireland and Ukraine
Midnight Coders is a leading provider of integration technology that enables universal client-server connectivity for desktop, browser and mobile clients that must communicate with services, data and media located anywhere, including Cloud Computing environments.
Since 2016 I've been working in Backendless team. I'm so proud to work at this company because of bright and intelligent people work here, and also interesting tasks always improve your tech skills.
The militsiya was the national police service of Ukraine from the 1950s until 2015. The militsiya was formed whilst Ukraine was governed by the Ukrainian Soviet Socialist Republic, part of the Soviet Union, and continued to serve as a national police service in independent Ukraine until it was replaced by the National Police of Ukraine on 7 November 2015.
I graduated at 2011 and got Bachelor's degree in Computer Science, and since I've finished military university I was sent to Police Department by distribution. There weren't responsibilities related to programming, however, I gain lots of other skills which are not less important. For instance I was responsible of round-the-clock patrol program, I scheduled duty lists, assigned police officers and gave daily missions for each team. I loved to assign myself into team to see how it works from inside, and determine what I can improve the process to increase productivity of the program.
Working at the Police, I've archived lots of skills such as responsibility, leadership, analytics, planning and fast problem-solving.
The best way to understand who I am is by asking people I worked with.
I've been working as a QA engineer with Vladimir for 4 years at Backandless Corp. I can say that Vladimir has proved himself as an amazing software engineer with clean and bug-free code. His initiative, experience in software development and architecture, clear understanding of UX and good taste in design will enforce any team for sure. Vladimir is a very responsible, hardworking, reliable developer, perfect teammate and simply a VERY good person. I recommend him for senior/leading position without any doubts!
I've known Vladimir since university and I was lucky to work with him on the different projects for 5 years Vladimir is highly experienced in full-stack web development. His strongest side is the ability to develop high-level soft-ware products solo or as a part of the team. He is incredibly attentive to details and focused to provide the best user experience. Vladimir is a nice, open person with a good sense of humor, I was pleased to work with him. I can recommend him as a professional developer, responsible worker, and reliable colleague.
I can recommend Vladimir as a very experienced full-stack developer with a deep understanding of software architecture. Also, Vladimir has greate soft skills, is a very responsible person. Was a pleasure working with him
I've worked with Vladimir for almost 6 years now. He has been a consultant for several companies I've worked at, including InfoVista, Tektronix and Netscout. During this time, Vladimir has demonstrated excellent knowledge of web application technologies as well as a willingness and ability to learn quickly. He is responsive and open to changing requirements, accomplishing his assigned tasks on or ahead of schedule. His work is always top notch and he would be a great addition to any team.
Vlad is very focused on getting the job done, but at the same time takes pride in his work and sets a high standard for maintainable, quality code. Challenging problems need creative development, and Vlad has come up with many innovative solutions. A personable individual with a lot of enthusiasm, he's a great asset for any front-end development team.
I love to share my experience with other developers through my articles and guides.
ReactJS remains one of the most popular hybrid frontend development languages on the market today. In this article, we are going to continue developing a React application using Backendless as the backend by showing how to add real-time alerts to your app.
November 6, 2019 by Vladimir Upirov
Recently we published an article titled “How to Enable Push Notifications Using Backendless in a React Native App (Android)”. Now we are going to continue demonstrating how to enable push notifications, this time for iOS devices.
June 4, 2019 by Vladimir Upirov
March 14, 2019 by Vladimir Upirov
Today we will talk about how to monitor the client’s Real-Time Connections in your Angular application. This tutorial continues the guide on how to build Angular apps with Backendless.
June 16, 2018 by Vladimir Upirov
Please use the form below to contact me