Yevhen Stienin

Yevhen Stienin

Full-Stack Software Engineer in Ukraine, Ivano-Frankivsk, He/his

About

Seasoned software development professional with over 9 years of experience crafting robust, scalable software solutions and over 30 prosperous projects. Results-driven by nature, I immerse myself in the client's business, striving to contribute to their objectives. My expertise lies in creating reliable systems that are easily configurable, easy to test, and maintainable. Software development is not just a job for me; it's a passion where I find fulfillment in both the process and the outcome.

Projects

2024

Project motto: cache all and everything or die!

A new team, a new project from scratch.

One of the most interesting and definitely the most intense projects I’ve had the honor of participating in!

It was a precious experience because the number of mistakes and wrong decisions made on this project and the lessons learned had a tremendous impact both on me and the overall team. It was a great opportunity to learn the hard way, and I took full advantage of it!

Despite all the challenges, the work was completed on time and with the required level of quality. The team proved to be highly cohesive, professional and focused on a common goal.

I have participated in the design and implementation from scratch of a revolutionary news portal with extensive use of AI. It is a highly loaded system capable of processing, storing and managing huge data sets (millions of interconnected records) with minimal delays.

This was my first experience conducting the Discovery phase for a project, during which the requirements and wishes of the customer were clarified, the system architecture was developed and a detailed plan of further implementation actions was created. An active phase of system design and development followed this. I served as the technical lead of the backend team.

The first iteration was completed in less than 5 months by a team of 10 people. The result was a successful release of the product's first version.
Currently, the system has more than 160K unique users per month, some of whom have subscribed to paid plans.

Some of the most challenging points were:

  1. Implementing data retrieval algorithms that lead to complex queries.

  2. Processing and managing massive amounts of data (tens of millions records).

  3. Strict performance requirements and corresponding attempts to optimize work with database and overal performance of all components of the system.

  4. Tight deadlines.

I have experience working with AI and model integration. We built our own vector database using OS and knn algorithm for our purposes.

Main responsibilities:

  1. Discovery phase conducting. The step includes helping the customer understand the main goals and solution scope, documenting requirements, technical stack and toolkit selection, database structure, developing algorithms for data retrieving, and documenting everything above.

  2. Lead and support the backend team.

  3. Developing algorithms for data retrieving.

  4. Roadmap and sprint plannings, sprint reviews.

  5. Tasks creation and enriching.

  6. Helping the team make architectural and technical decisions.

  7. Code review.

  8. Technical debt management.

  9. Collaboration with customer team and data team.

  10. Documenting everything we built or are going to develop.

The following technical stack was used:

  1. Languages: TypeScript.

  2. Backend: NestJS, TypeScript, TypeORM, AWS SDK, Stripe, PayPal, langchain, AWS SDK, passport.

  3. Frontend: Tanstack React Query, Zustand, Sentry, React Hook Form, Axios, Redis, Zod, Chart.js, clsx.

  4. Database: PostgreSQL (TypeORM), OpenSearch, Redis, Redshift.

  5. AI and NLP: Bedrock (Claude 3 Haiku та Claude 3.5 Sonnet, Cohere Embed for embeddings).

  6. Cloud: AWS: EKS, SES, S3, OpenSearch, RDS, CDN, Cognito, System Manager, Redshift, Data Firehose, Grafana.

2023

It was one of the most interesting and complex solutions I've ever participated in. About 50 people are being working toghether to build something so useful and helpful for thousands of companies to manage their expenses and helps to finally bring order where it's the hardest to achieve.

All the people involved in the project were constantly receiving real feedback from end consumers (where large companies were included), where they enthusiastically shared how much this product had improved their expense management experience.

Description:

It provides a powerful yet easy expense management solution, including real-time expense tracking and reporting through Center Expense. Manage travel and expenses in one place. Get visibility and control of all travel, including off—platform bookings.

Team structure and interaction: up to 6 teams that closely interact with each other and with the POs and UX teams directly, using Scrum with subsequent transition to SAFe.

Tools and technologies:

Microservices Architecture, JavaScript, TypeScript, NodeJS, Web (ReactJS, GraphQL, Apollo, AntDesign), AWS (Lambdas, API Gateway, SNS, SQS, S3, Event Bridge, Cognito, CloudWatch, ECR, Appsync), Databases (ElasticSearch, MongoDB, DynamoDB), Kubernetes, Health and Performance (Sentry, FullStory), Testing (React test library, Mocha, Chai, Selenium WebDriver, Allure), CI/CD with Jenkins and GitHub pipelines, infrastructure as code approach (Pulumi).

Responsibilities:

  1. Leading a team of 7 developers for 3 years.

  2. Participated in planning, development, and delivery of new functionality

  3. Involved in long-term planning.

  4. Support and enhancement of existing functionality.

  5. Code review.

  6. Technical debt management.

  7. Collaboration with DevOps and other Engineering teams.

  8. Team extending, candidates interviewing, and new team membes onboarding.

  9. Creation and maintenance of all types of testing.

  10. Support for system viability and improved productivity.

  11. Product end-consumer support, rapid resolution of their issues.

  12. Migration to new technologies, approaches, framework versions, and tools.

  13. Documentation support and expansion.

Challenges:

Supporting system reliability and performance while continuously adding complex functionality, performing a large number of computations and data mutations per each user request, optimizing database queries, synchronizing with a large number of third-party systems and service providers.

Results and achievements:

  1. I gained my first experience in the role of a team leader.

  2. Led design, development, and delivery of a large amount of new functionality.

  3. Recorded a significant number of satisfied end-users, increased the level of consumer satisfaction.

  4. Successfully migrated to new versions of lambdas, integrated Elastic search, migrated data from DynamoDB.

  5. Created and used data migration mechanisms for users to support the new product functionality.

  6. Team members continuously grew professionally. I'm proud of the fact that during the project some engineers had grown from junior/middle up to senior level in pretty short terms.

2021
Smart Parking Spaces at Akvelon, Inc.

Description:

Machine learning-based application with user-oriented UI. The goal of the project is to detect available parking spaces and predict the approximate availability of new parking spaces.

Tools and technologies: TypeScript, React.js, Redux, Websockets, NodeJS, PostgreSQL, SQLite, Jest.

Responsibilities:

Designed and developed all the system from scratch, provided feature estimation, integrated with ML solution, bug fixing, communicated with customer engineers, build and support unit, functional, and integration tests.

Results:

The system was successfully designed and created within the specified timeframe. It was tested on real cameras located in large municipal parking lots in different cities in the USA.

2020
Meeting Summarizer Bot at Akvelon, Inc.

Description:

Bot for Skype and MS Teams that, after adding to a conference, analyzes the conversation, separates it by individual participants, generates a textual transcript of the entire call, and separately creates a summary with the most important information.

Tools and technologies:

TypeScript, React.js, NodeJS, .Net Core, Microsoft bot framework, MS Graph API.

Responsibilities:

  1. Design and develop the overall system from scratch.

  2. Create and support tests.

Results:

Developed the idea into a concrete implementation and conducted a presentation of the MVP of the product.

Work Experience

2024 — Now
Ukraine, Ivano-Frankivsk

A new team, a new project from scratch.

Have participated in the design and implementation from scratch of a revolutionary news portal with extensive use of AI. It is a highly loaded system capable of processing, storing and managing huge data sets (millions of interconnected records) with minimal delays.

This was my first experience conducting the Discovery phase for a project, during which the requirements and wishes of the customer were clarified, the system architecture was developed and a detailed plan of further implementation actions was created. Many mistakes were made, but an endless amount of knowledge was gained! An active phase of system design and development followed this. I served as the technical lead of the backend team.

The first iteration was completed in less than 5 months by a team of 10 people. The result was a successful release of the product's first version.
Currently, the system has more than 160K unique users per month, some of whom have subscribed to paid plans.

Some of the most challenging tasks were implementing data retrieval algorithms, processing and managing massive amounts of data (tens of millions records), strict performance requirements, and tight deadlines.

I have experience working with AI and model integration. We built our own vector database using OS and knn algorithm for our purposes.

Main responsibilities:

  1. Discovery phase conducting. The step includes helping the customer understand the main goals and solution scope, documenting requirements, technical stack and toolkit selection, database structure, developing algorithms for data retrieving, and documenting everything above.

  2. Lead and support the backend team.

  3. Developing algorithms for data retrieving.

  4. Roadmap and sprint plannings, sprint reviews.

  5. Tasks creation and enriching.

  6. Helping the team make architectural and technical decisions.

  7. Code review.

  8. Technical debt management.

  9. Collaboration with customer team and data team.

  10. Documenting everything we built or are going to develop.

The following technical stack was used:

  1. Languages: TypeScript.

  2. Backend: NestJS, TypeScript, TypeORM, AWS SDK, Stripe, PayPal, langchain, AWS SDK, passport.

  3. Frontend: Tanstack React Query, Zustand, Sentry, React Hook Form, Axios, Redis, Zod, Chart.js, clsx.

  4. Database: PostgreSQL (TypeORM), OpenSearch, Redis, Redshift.

  5. AI and NLP: Bedrock (Claude 3 Haiku та Claude 3.5 Sonnet, Cohere Embed for embeddings).

  6. Cloud: AWS: EKS, SES, S3, OpenSearch, RDS, CDN, Cognito, System Manager, Redshift, Data Firehose, Grafana.

2021 — 2024
Ukraine, Ivano-Frankivsk

During this stage of my work at the Akvelon, I had only one active project in financial accounting and monitoring, in which I served as the technical lead for a newly formed team consisting of six senior full-stack engineers. My new responsibilities included participating in technical and architectural decision-making at the level of major features and the overall product. I was also involved in both short-term and long-term planning, as well as interacting with other teams.

Main responsibilities:

  1. Lead and support a team of 6 senior engineers.

  2. Both short-term and long-term planning using Scrum and SAFe. Sprint planning and reviews.

  3. Helping the team make architectural and technical decisions.

  4. Сloser collaboration with the UX team and the product owner team.

  5. Code review.

  6. Technical debt management.

  7. Collaboration with DevOps and other Engineering teams.

  8. Team extending, candidates interviewing, and new team membes onboarding.

  9. Technical support for consumers.

The following technical stack was used:

  1. Languages: JavaScript, TypeScript.

  2. Backend: NodeJS, Serverless wit AWS Lamdbdas.

  3. Frontend: ReactJS, Apollo, AntDesign, Sentry, Fullstory, AWS Appsync.

  4. Testing: Manual testing by developers, Unit and integration tests (Mocha), and Automated tests (WebdriverIO, Allure Reports).

  5. Databases: DynamoDB, MongoDB, ElasticSearch.

  6. Cloud: AWS (Lambdas, SQS, SNS, ServiceBus, ElasticSearch, DynamoDB, k8s, Appsync, API Gateway, CloudWatch), GCP (Google Maps Service).

  7. Other: Corpay/Comdata, Google Maps API.

2019 — 2021
Ukraine, Kharkiv

After gaining some experience and according to the company's internal competency matrices, I advanced to the next level.

At this stage, I primarily participated in large, long-term projects instead of quick and small ones. The main and most extensive project was in the finance sector, where I gained experience working with bank cards and transactions. I worked with the Corpay and Comdata interfaces. The main challenge was consistently meeting the reliability and security requirements, considering the specific nature of working with finances. Also, within a small team of 2 engineers, I designed and built from scratch a system to manage parking spaces on municipal parking lots in the USA using a micro-services approach.

Main responsibilities:

  1. To be a part of team of full-stack engineers.

  2. Delivering features including steps from reviewing description and UX, chosing technical solutions, implementing, manual testing, and automated tests creation.

  3. Creating new microservices, and modifying existing ones.

  4. Collaboration with DevOps team to integrate and support news system's units.

  5. Participating in sprint plannings, sprint reviews.

  6. Data migrations.

  7. Technical support for consumers.

The following technical stack was used:

  1. Languages: JavaScript, TypeScript.

  2. Backend: NodeJS, Serverless wit AWS Lamdbdas.

  3. Frontend: ReactJS, Apollo, AntDesign, Sentry, Fullstory, AWS Appsync.

  4. Testing: Manual testing by developers, Unit and integration tests (Mocha), Automated tests (WebdriverIO, Allure Reports).

  5. Databases: DynamoDB, MongoDB, ElasticSearch, MySQL, SQLite.

  6. Cloud: AWS, GCP.

  7. Other: Corpay/Comdata, Google Maps API, Image processing with custom AI model.

2017 — 2019
Ukraine, Kharkiv

This was just the first phase of my work at Akvelon.
I joined the R&D department, where there were many diverse projects that changed quickly, constantly pushing me to learn new technologies and approaches. I developed several interesting MVPs from scratch, including as a Microsoft vendor. One of successfully completed projects, a demo application for the new version of MS Graph API, was showcased as a demo at the Microsoft Ignite 2018.

Additionally, I got familiar with the Bot Framework and gained experience working with speech recognition using the service, as well as message context recognition using LUIS Cognitive Services. I also worked with MS Azure. Among databases, I had the opportunity to work with MS Azure Storage, Cosmos DB, MS SQL Server, and many others.

Main responsibilities:

  1. Implementation of projects from scratch, including architecture and selection of technical solutions.

  2. Support and expansion of functionality of existing projects.

  3. Writing and supporting tests.

  4. Participation in short-term MVPs and POCs.

  5. Preparing reports and presentations upon completion of sprints/releases.

The following technical stack was used:

  1. Languages: C#, JavaScript, TypeScript.

  2. Backend: .NET Framework, NodeJS.

  3. Frontend: ReactJS, Angular 2+.

  4. Databases: MS SQL Server, MongoDB, SQLite, MySQL, Azure Storage, Cosmos DB.

  5. Cloud: Azure, AWS, GCP.

  6. Other: Microsoft Bot Framework, LUIS Cognitive Services, MS Graph API.

2015 — 2017
Ukraine, Kharkiv

Over the course of almost two years, I participated in more than five different projects, gaining a wide range of experience. Most of the projects used .NET on the backend. It was also here that I first discovered that the backend could run on JavaScript (referring to Node.js) and gained my first experience writing a backend using Node.js. I also dealt with backend scaling using the pm2 tool.

Main responsibilities:

  1. Implementation of projects from scratch under the guidance of an experienced mentor.

  2. Support and expansion of functionality of existing projects.

  3. Writing and supporting tests.

  4. Preparation of reports and presentations upon completion of sprints/releases.

Participated as a part of team in the following projects:
- Online interface for converting information for a manufacturing company. Technologies: .Net Core MVC6, ExtJS and Sencha, MongoDB.
- Several projects using MEAN stacks lasting 1.5 - 2 months each.
- Application using ASP.NET 4 MVC5, Knockout JS and MSSQL.

Completed myself following projects:
- Migrating the application from MVC4 to MVC5.
- Migrating part of the site from Knockout to Razor (SEO-centric site).
- Mobile application for the iOS and Android for the customers of the manufacturing company. Technology: Ionic 2 (Angular 2).
- The editor for presentations using the stylus. Technologies: Electron, ReactJS.
- Organizer for projects with the integration of Google services (Google Drive, Maps, Calendar). Technologies: Electron and Angular 2.

Education

2016 — 2018
Ukraine, Kharkiv
  • Field: Computer Systems and Networks

  • Degree: Specialist

  • Qualification: Computer engineering

  • Date of graduation: 2018-02-28

  • Diploma number: C18 005426

2013 — 2016
Ukraine, Kharkiv
  • Field: Computer Systems and Networks

  • Degree: Bachelor’s Degree

  • Qualification: Computer engineering

  • Date of graduation: 2016-06-30

  • Diploma number: B16 136908

  • Diploma with honours

2009 — 2013
Ukraine, Pavlohrad
  • Field: Maintenance of computer systems and networks

  • Degree: Junior Specialist

  • Qualification: Technician programmer

  • Date of graduation: 2013-06-30

  • Diploma number: HP 45641312

  • Diploma with honours

LinkedIn
GitHub
Facebook
Instagram
Unsplash
Telegram