Verified Expert in Engineering
Anna is an experienced back-end engineer with over five years experience in top IT companies and a BBA in computer science from the American University of Armenia. She has extensive experience creating and maintaining RESTful microservice applications using Node.js and Nest.js and databases with mobile and web payment systems integration. Anna has developed applications that have served over 150 million monthly active users.
The most amazing...
...project I've worked on is a photo and video editing platform with over 20 million downloads. I developed a major part of its subscription and payment system.
Senior Software Engineer
- Designed and developed a microservice for subscription and monetization of the platform using Node.js and NestJS. Separated and refactored the microservice from the main monolith architecture of the app.
- Added RESTful APIs and event handling support for Apple, Google, WeChat, Alipay, Adyen, PayPal, and Docomo purchases and subscriptions.
- Created a Jenkins job based on Kubernetes and Docker for accessing and running needed queries with a database often used for old and new data correction.
- Integrated event tracking for Apple and Google used for saving payment event callbacks, such as cancel, purchase, and on hold, into a database and updating existing order info.
- Integrated Datadog for error handling and viewing data using charts.
- Used Jira for task creation, bug reports, and project maintenance.
- Generated REST APIs with documentation such as Swagger or Postman Collections for client usage and client library generation.
- Integrated external analytical event handling using AppsFlyer, Braze, Facebook events, and other services.
- Transferred repositories from GitHub to GitLab and set up automation pipelines, jobs, and deployments.
- Covered project APIs with unit and integration tests using Jest.
- Architected and developed a back-end application using TypeScript and TypeORM, coupled with MongoDB's large dataset database.
- Developed a generally used uploader for validation and uploading files to AWS S3 using temporary security credentials based on assuming role functionality of AWS SNS.
- Used Apache Kafka for ingesting files or data to one or more targets from multiple data sources such as Kafka, MongoDB, or plain body.
- Contributed to the process of creating and running Airflow DAGs for managing database tasks.
- Covered project APIs with unit and integration tests using Jest.
- Developed a REST API multi-environment server application based on TypeScript and Express.
- Set up Redshift and DocumentDB database schemas, models, and relations using TypeORM. Experienced aggregated queries and complex joins for interaction with large data sets.
- Added machine-to-machine and web server Auth0 authorization for application security in development and production environments. Created user groups, roles, and permissions for user management and ACL.
- Developed and deployed Swagger Docs for the application with basic and Auth0 authorizations.
- Created Dockerfiles for application and Swagger deployment.
- Configured test environment using Jest and added integration and unit test coverage for all of the APIs.
- Created Confluence pages with technical documentations.
- Developed REST APIs based on Koa Framework with Passport user authentication support.
- Designed a PostgreSQL-based database and worked on it with Sequelize ORM and Redis for key-value storing.
- Integrated ACL for role-based access management and permission control for different user roles.
- Designed and developed a small application based on AWS Lambda functions for storing website survey information in AWS DynamoDB Database.
- Integrated many in-app and push notifications services, such as AWS SNS, Socket.IO, and SendGrid for email notifications.
- Created Docker files for app deployment with the combination of Docker Compose Yamls for multi-container running.
- Integrated Stripe Payments for payment transactions.
- Published an article called How to Implement Stripe Connect Payment System on Your Application Using Node.js to Medium.
- Worked on an Agile framework for tracking and fixing bugs on Jira.
- Integrated POEditor for website and mobile localization.
- Created website animations using CSS keyframes, transforms, and transitions.
- Created Grunt and Gulp tasks for handling and automating the front-end build processes and code flow.
For payments and subscriptions, external services with monthly and yearly subscription handling were implemented. We have Apple, Android, and WeChat payments integrated on the mobile end of things along with an external job for renewals and order state change tracking. On the desktop web side, PayPal, Adyen, Stripe, and Docomo are integrated with the support of one-time payments and renewal using jobs.
Analytics are incorporated that fire events into Appsflyer, Braze, FB events, and other services.
I was a back-end developer working from the begging till the platform's successful launch and real user onboarding. I was developing REST APIs on Koa with Passport user authentication. For the database, we used PostgreSQL with the support of Sequelize ORM and Redis for key-value storing.
For file management, server, in-app, and push notifications, AWS services were used, such as S3 and SNS combined with Firebase for mobile side integration. For real-time website notifications, Socket.IO was used. Also, we were using mail listeners and mail sending services for in-time notification such as SendGrid.
For deployment and multi-container running we were using Docker Compose.
On the payment side, for one-time payments, I integrated PayPal and Stripe, on which I have a published article on Medium.
I developed a generally used uploader for validation and uploading files to AWS S3 using temporary security credentials based on assuming the role functionality of AWS SNS. I also used Apache Kafka for ingesting files or data to one or more targets from multiple data sources such as Kafka, MongoDB, or plain body. I also contributed to the process of creating and running Airflow DAGs for managing database tasks and covered project APIs with unit and integration tests using Jest. This ensured the reliability, scalability, and maintainability of the project.
Express.js, Koa, NestJS, Swagger, Kube, Bootstrap
Node.js, Lodash, Passport.js, REST APIs, Socket.IO, Android Pay, Stripe, Winston, jQuery
Mongoose, Slack, Sequelize, Adyen Payments, Jira, GitHub, Git, Confluence, GitLab, GitLab CI/CD, Postman, SendGrid, AWS Simple Notification Service (SNS), WeChat, Docker Compose, Auth0, ACL, Grunt, Gulp, Apache Airflow, Amazon Virtual Private Cloud (VPC), Kafka Streams
REST, Unit Testing, Mobile Development, Microservices
PostgreSQL, Amazon S3 (AWS S3), PostgreSQL 10, NoSQL, MongoDB, Amazon DynamoDB, Redshift
Web MVC, Payment APIs, ESLint, Back-end, APIs, Integration, Integration Testing, Web Development, API Integration, RESTful Microservices, PayPal, WeChat Pay, Apple Pay, TypeORM, Lambda Functions, CI/CD Pipelines, Amazon RDS, Kubernetes Operations (kOps), DocumentDB, Artificial Intelligence (AI)
Kubernetes, Docker, Firebase, AppsFlyer, Amazon Web Services (AWS), Amazon, Apache Kafka, AWS Lambda
Bachelor's Degree in Computer Science
American University of Armenia - Yerevan, Armenia
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.Start hiring