I am a software engineer and I love coding…
As a developer,
- Developed the backend for payment, website, dashboard(CMS), RESTful APIs & chatbot.
- Scaled the backend for the throughput of 1 million+ requests per minute with 15ms of API latency.
- Scaling is not an easy task to identify scaling issue before deployment, started load testing to fix the scaling issue for the peak condition.
- There is a lot of tuning has to be done for scaling i.e SQL tuning, Caching, Nginx tuning, MySQL server tuning, vertical scaling for CPU & Memory, Horizontal scaling to increase app server, load balancing, everything non-blocking asynchronous, even non-blocking event-driven communication between micro-services etc.
- Integrated many third party services because we can not develop everything in-house 🙂 so here is a list – Email, SMS, payment, CRM, Chatbot, Phone call, Email marketing, slack command etc.
- If any bugs occurred on production then it will hurt you very badly so I have integrated many tools & services to improve debugging i.e logs monitoring through ElasticSearch/Kibana, APM monitoring through NewRelic, time-series metrics & monitoring through Prometheus/Grafana, Error tracing through Sentry, Alerting through Slack & Pagerduty etc.
- I love coding so code quality is my first priority hence to ensure code quality. I utilized tools for code linting, static type checking, dead code removal, smelling code refactoring and code review.
- Coding is art so implemented patterns and principles like Gangs of Four(GOF) pattern, SOLID principles etc.
- Now our coding complete and it must be deployed on many environments like staging, pre-production, production so used CI/CD rolling deployment for zero downtime and used tools like GitLab & Jenkins.
- If code is deployed then it should work without error or with max 0.1% error rate so testing is important either manual or automated testing but manual testing will slow your development so the automatic test will save your time so written unit & integrations test with coverage report above 80%.
- If any bugs found on production there must be an incident report which should include route cause, corrective step, reported by, durations, impacted system & users, metrics etc.
- For every deployment, there must be proper checklist like test cases, schema migrations, data migrations, downtime, code review, Revert strategies, monitoring step, data sanity check, backward compatibility etc.
There is a lot to be written in the blog.