Skip to content

Connect Improvement

Project name: Connect Improvement🔗

Datamart (Web page)

Team:🔗
Connect
Client:🔗
Datamart (Web page)
Role:🔗
Backend developer | Cloud developer

July, 2022 – August, 2022

Havana, Cuba

This project is related to increase the systems functionalities of datamart clients. The basic idea of this project is to improve a SaaS platform that could be used by datamart clients employees. This platform offer multiple information (generally financial information) about people, most of this information is public but Connect offer it in a single place and in a easy to access, easy to consume way. My work was about to help in the platform's improvement process proposing and implementing ideas to reduce the system response time or refactoring the code to gain readability and stability. The platform was already created. I had not many experience about how to implement the tasks requested but thanks to my excellent education in Havana University and my quick learner skills I was able: to understand the platform code, to propose ideas to reduce the platform response time, to migrate part of the codebase of the platform from one technology to another one, to learn about AWS Lambda functions, AWS Aurora MySql database AWS Appsync, Velocity Template Language (VTL) used in AWS Appsync functions, Serverless Framework and others AWS and cloud technologies to implement all the necessary tasks using Infrastructure as Code (IaC).

Hard / Technical achievements🔗

  • Analyzed more than 10k lines of code (undocumented) in Python to created a base architecture diagram of the system. This help to newcomers teammates to understand the microservices of the system, the interactions between them and the information flow between them.
  • Migrated more than 5k of lines of code (undocumented) in Python to Velocity Template Language (VTL) in AWS Appsync.
  • Transformed AWS Lambdas code in AWS Appsync pipelines, migrating the code logic from lambdas to appsync endpoints. This help to delete the lambdas cold start and reduce the response time from 6-5 seconds to 3-2 seconds.
  • Researched about the possibility of use SQL Functions and Procedures to implement the AWS Lambdas functionalities in the AWS Aurora MySql database. The idea of this research was to migrate the lambdas code to SQL and reduce the system's response time.
  • Integrated AWS Appsync with AWS Aurora RDS MySql database using VTL.
  • Participated in pair programming sessions with teammates to fix bug or reviewing code, improving code quality and readability.
  • Open hotfixes to directly patch bugs in production code (on Fridays 😁).
  • Used AWS SSM to read and store parameter to guarantee parameters passing between AWS Stacks.
  • Used the branching model of git flow to get a better organization in the project development.
  • Extended the system capabilities adding new Python classes to a class hierarchy following Object Oriented Programming best practices and helping to encapsulate, extend and reutilize the new code in the future.
  • Periodically monitored AWS SQS queues to alert about possible issues in the system helping to solve errors before users reported them.
  • Tested VTL AWS Appsync templates using AWS SDK to guarantee the correctness of the solution and to improve code quality and readability.
  • Reported found bugs to front end developers to be fixed before users reported them.
  • Received issues found by others team members to be fixed for me before users reported them.
  • Used Postman to make queries to AWS Appsync endpoints.

Soft achievements🔗

  • Attended to daily meetings with the team to coordinate tasks and find potentials problems in the development of the solution.
  • Used Jira to organize and track the assignee tasks.
  • Followed the scrum methodology guaranteeing an agile development process.
  • Asked for help to others more experienced developers to solve difficult issues in my implementation/code.
  • Asked the details about the system architecture/information flow/microservices integration to others more experienced developers to have a better understanding of the system.
  • Exposed in the daily meetings the progress of my tasks, helping to others to understand my progress and the implementation of my tasks.
  • Proposed the use of SQL Functions and Procedures to implement some backend functionalities to help to reduce the system's response time.
  • Tested the new system capabilities with the Scrum Master and Product Owner.
  • Received questions and help request from others developers and helped to fix their issues making suggestions about how to test/implement a specific functionality.

Others team members:

Stack:
Draw.io, Amazon Web Services (AWS), Python, Velocity Template Language (VTL), Serverless Framework, BitBucket, GraphQL, Boto3, GQL (GraphQL client), PyTest, AWS Appsync, Postman.
keywords:
Architecture Diagrams, AWS Lambda Functions, AWS Step Functions, AWS AppSync, AWS DynamoDB, AWS CloudFormation, AWS ApiGateway, WebSockets, Code Migration, Infrastructure as Code (IaC).