- Overall AWS architecture design
- Domain Nameservers (DNS) configuration
- DNS rule configuration Cloudflare
- Site Reliability Monitoring on Cloudflare
- AWS Billing and monitoring
- Checking and monitoring CloudWatch and its logs every week.
- AWS IAM management
- IAM user permission configuration
- AWS Elastic Compute (EC2)
- EC2 custom AMI for quick instance creation in the future.
- Setting up proper EC2 security groups for HTTP/HTTPS applications
- Setting up proper EC2 target groups to make it scalable in the future.
- Set up a load balancer for the EC2 target groups (Refer to the ABL section)
- Nginx setup inside the EC2 to redirect to the proper port based on host headers. This allowed us to cram everything into one single EC2 instance and save costs.
- AWS Application Load Balancer (ALB)
- Setting up a proper HTTP/HTTPS load balancer
- Setting up a static IP address for the ALB (aka. Global Accelerator). I removed it later on, to save costs.
- ALB rule configuration with automatic HTTPS redirects. Used Cloudflare later on to achieve the same effect.
- ALB health check endpoint setup
- Associating the right SSL certificates to the ALB. Certificates were generated using ACM.
- Occasional ALB monitoring and tweaking
- AWS Certificate Manager (ACM)
- Generating and verifying SSL certificates using ACM. (Saved costs on SSL certificates)
- Linking ACM certificates to the ALB
- DynamoDB
- DynamoDB table setup and configuration (including GSI and LSI config)
- DynamoDB manual scaling (Cost Optimization)
- Writing consumers for DynamoDB streams using AWS Lambda
- DynamoDB table wide field remapping scripts
- Various scripts to upload and download DynamoDB in JSON and CSV format
- Setup continuous backups and Point-in-Time Recovery for DynamoDB
- Frequent DynamoDB monitoring and tweaking
- ElasticSearch (ES)
- ES index setup and configuration
- ES index schema design
- ES zero downtime index switching with no lost data (Usually needed to do this when there was a schema change)
- AWS Lambda function to read from DynamoDB stream and write it to ES
- ES & dynamodb sync script
- ES load testing
- Frequent ES monitoring and management
- ElasticSearch - Kibana
- Setup beautiful dashboard on Kibana for various metrics
- Setup read-only users for ES and Kibana, so that non-tech team members can access the dashboard
- Various other small things on Kibana
- AWS Simple Could Storage (S3)
- S3 bucket config and setup
- S3 bucket policy management
- AWS Simple Notification Service (SNS)
- Setting up a proper SNS SMS service over local routes rather than international routes (Saved our SMS costs by a factor of 10)
- Registering out DLT information with AWS, though customer support
- Checking SNS error logs in case of failures
- Frequent SNS monitoring to make sure OTP login is working properly
- AWS Kinesis Streams
- AWS Kinesis Stream setup and configuration
- Writing Kinesis stream consumers for various services
- AWS Kinesis Stream monitoring
- Ended up scrapping it, since it was not available in the free tier and was quite expensive.
- Probably countless other small things on AWS which I am not listing here.
- Extensive research on the best frameworks before starting the project. Ended up choosing Node.js and Express with typescript.
- Setting up proper folder and file structure for the project
- Typescript build configuration and setup
- Writing API controllers and routes
- Local testing, production testing, and documenting of each and every API upon completion.
- Beautiful API documentation in Postman with examples and comments for some of the JSON parameters.
- Wrote postman scripts to automatically refresh auth tokens to make testing API's a breeze
- Setting up the Google play console
- Google Play store, store listing configuration.
- Google Play Console dashboard setup. Basically choosing the right metrics to track for our app.
- Generating and safeguarding various private keys, required for app deployment on the play store.
- Deployment of Android app to Google Play Store.
- Deployment of iOS app and Apple App Store configuration
- Deployment of Backend API
- Deployment of all Frontend Webapps
- Scraping data from third-party website's API for various reasons.
- Scraping data from Google Maps using Selenium to generate leads for the sales team. Divided Bangalore into small 16 sq. km grids and ran a google map search for each grid.
- Can't comment on the scale of data scraping due to the grey nature of it.
- Data analysis using python juptyer notebook
- Visualization of various data sets collected.
- Extensive research on the best frameworks before starting the project. Ended up choosing React, Redux, Material UI with Typescript.
- Setting up proper folder and file structure for the project
- Typescript build configuration and setup.
- UI/UX design for all webapps.
- Writing components, layouts and styling using React and Material UI.
- Properly setting up Redux toolkit for the project keeping best practices in mind.
- Writing Redux actions and reducers for the project.
- Writing HTTP middlewares with Axios to handle automatic token refreshes.
- Vernacular support for all major Indian languages on our landing page using i18n
- Thorough testing of page layouts and responsiveness of various components.
- Running Chrome lighthouse audits to ensure a decent score across all its metrics.
- Registering SMS headers on a DLT platform. Chose Jio true connect as our DLT platfrom as it was free.
- Registering SMS templates on a DLT platform
- Managing user roles and access across AWS, GCP, Firebase, Postman, Discord, LinkedIn, Github, Internal Dashboard, etc.
- Github code reviews on the pull request made by interns.
- Working closely with 1 flutter developer, 1 frontend developer and 1 frontend intern.
- Keeping track of project specs, features, bugs, completed and to-do tasks on a Trello Board.
- Setting up and configuring our primary communication channel which was Discord. Added some nice custom emojis and bots to make it fun and interactive.
- Various company-wide announcements and updates.
- General motivation and pep talks with the team. Helping my team members be the best versions of themselves.
It was nice working with you, learnt a lot technically and Personally!