Top 1%; part of the UpWork's Expert-Vetted program.
✅More than 100 completed projects on UpWork
🇺🇸Available for calls during business hours
🎓4 AWS Certifications: Professional Solutions Architect (result is 945 out of 1000), Professional DevOps Engineer (915), Machine Learning Specialty, Cloud Practitioner
In short, the solutions I created are used by millions of users every day. I could build a web, mobile or desktop application using Serverless Computing, conforming to the principle of the least privilege under version control for each function (Pay-per-use AWS or Google Cloud infrastructure that scales indefinitely).
When I code either the Frontend or Backend solutions, the experience I have defined the prioritization of the characteristics for the product:
1. Simplicity (readability).
---- all frontend services I create are event-driven with the FaaS infrastructure or in rare cases BaaS.
2. Technical scalability
---- Comparing to containerized microservices, where parts are connected to each other, FaaS development allows to create completely independent functions. It is easier to manage and to make changes as you split the functionality into much smaller blocks.
---- FaaS can scale indefinitely, so any load the cloud provider (such as AWS) could handle is supported.
-------- If you have 0 customers today, your bill is $0, comparing to microservices, where you have to have at least one container running $25/month. A typical project is eight containers.
-------- If you have a billion customers tomorrow, FaaS auto scales horizontally to handle the new load automatically, with the pricing of an optimized solution close to $2-5/million requests for ALL infrastructure combined.
---- The size of the bundled assets needs to be small as it affects the operating costs (you are charged by millisecond).
-------- and even the updating process of the objects in a file hosting (such as AWS S3) to upload only those assets that have changed.
-------- I have worked on many projects, every time trying to find something else to improve, so the solutions are extremely well optimized.
---- when I had projects to optimize for performance, I have created a lot of custom solutions as public solutions are for everyone and, therefore, typically suboptimal for a particular case.
I create SPAs, conforming to PWA standards, and frontend plugins using React.js.
I follow Component Driven Development (CDD) together with Visual Test Driven Development.
For that, I use PlayWright and Storybook.
When writing styles, I use CSS-in-JS (primarily using Emotion library).
The Desktop app development involves also Electron, but the overall process is the same. That is the reason why it is easy to convert my solutions to distribute as a desktop app.
When creating mobile apps, I use either React Native or create hybrid web-based solutions with Capacitor.js.
I am a strong proponent of Serverless Computing, who has extensive experience with FaaS and BaaS, automatically generating IAM rules and cloud services, and conforming to the principle of the least privilege for each function/service.
In regards to HTTP APIs, I create:
- RESTful APIs covering them in tests and preparing for adoption by frontend devs via password-protected documentation over web endpoints where the frontend devs are able to observe and interact with Swagger UI that conforms to the OpenAPI 3.0 specification.
- GraphQL. Created in all possible ways: custom with plain GraphQL library (no Apollo or other wrappers), with Apollo; in Programmatic and Declarative ways
I automate provisioning of infrastructure (IaC) using AWS CDK and Google Deployment Manager configs, so that it takes one CLI command to create the defined as code cloud infrastructure.
I am used to daily reporting and knowing that communication is the key, I constantly try to improve clients' experience.
I know best methods in version control and I conform to them, doing PRs, releases, keeping multiple branches, and using stashes.
---- I have automated branching & PR requests, as well as connected bots for notifying about changes in corporate chats.The code I write goes through automatic code-styling processing that improves readability and overall quality of the provided work.
I use: ESLint and Prettier for all automated code formatting needs.