About:
Software engineer with around 5 years of experience in web app development. I have worked with various technologies (backend, frontend, and DevOps/cloud).Self-learner with the ability to work well in teams or as an independent contributor and can provide solutions to problems without prior experience or knowledge. I am looking for new opportunities where my skills can be used. Can learn and work with other technologies too.
Technical Skills:
- Programming Languages : Java, Python, Typescript/Javascript, C
- Frameworks/Libraries : Spring Boot ,Spring Security, Spring Web, Spring Webflux, SpringData JPA, Angular, GraphQL, Spring Cloud Gateway
- IDEs/Tools : Git, Maven, Gradle, IntelliJ
- Basics knowledge of PostgreSQL, MongoDB, Data structures, Docker, Design Patterns, HTML & CSS, Terraform, Oauth2 Protocol, Kubernetes
- Familiar with cloud services like AWS S3, EC2, ECR, RDS, Lambda, SQS, SNS, Cognito, ALB, AWS-CICD-Services, EKS & SonarQube, Jfrog
Professional Experience:
NagraVision India Private Limited[Sept-2021 - Present]
Project: Nagra{-=-=-}
-
Independently designed & implemented Server Sent Events feature from Backend & Infrastructure side as per requirement.
- Implemented solution using redis pub-sub to push events to clients even when server scales up horizontally(Client receives event from server it is connected to even when the event is triggered in different server pod)
- Written two implementations to handle events to work with & without redis. (to avoid costs in development environments)
- Had proposed new microservice called event-service responsible for mainly sending different kinds of events to clients and it's communication with main monolith server. How to route requests to it using ALB.
- Written module test cases to verify events are pushed to clients on trigger.
- Even found out fault in the golang library used by embedded team for development & suggested working library.
- Implemented generic global exception handling logic to catch exceptions(even new exceptions that will be added in future) & return internal error code instead of default spring error response with correct http status
- Wrote code to dynamically generate html table which explains the meaning of internal error codes(handles addition of new error code without code change) & embed it inside Swagger documentation.
- Worked on terraform configuration to disable elasticache resource creation & Configured spring application server to work with or without redis.
- Implemented solution to block external known client with valid token from accessing our server APIs except few which it is allowed to access.
- Created aws lambda to create different database credentials on environment creation & configure them in different services with terraform code.
- Proposed simplified & easily understandable solution to complex business feature(M__ random______) and implemented solution with module test cases. Module test cases written were of better quality than existing module test cases & focussed on code reusability.
- Built from scratch a python tool to stress backend server which was used by operations team to perform performance tests. Provided solution to run multiple containers of them on same ubuntu instance & control them using python script.
- UI work: Worked on improving styling & functionalities of spring-mvc & thymeleaf based dashboard application.
- Implemented cognito Userpool migration lambda to support case insensitivity.
- Had identified cause of high response time of most called API. And refactored code by removing extra loops & fetching only required data. Also indexed column as suggested by Senior Developer.
-
JFrog Integration:
- Independently Worked on JFrog integration in project CI/CD pipeline to manage packages.
- Assisted Tools Team member to create correct type of repositories for our projects by going through Jfrog documentation & tutorials myself.
-
Worked on SonarQube integration in our java applications
- Independently listed requirements of our project & communicated with Other Team who manages Sonar projects.
- Fixed few critical/blocker issues.
- Documented steps to setup SonarQube locally so that new issues can be avoided during development phase
- Written script that runs after sonar analysis & sends result in email to team members.
-
Identified incorrectness in existing code(Feature-1, Feature-2) & fixed it(Feature-1).
-
Independently worked on breakdown of an existing feature in monolith service into a microservice by taking requirement.
- Analyzed existing dashboard feature & old code and explained the PO & Architect about its working using Flow Diagram & Discussed how i'm going to implement the solution based on thier expectation which helped then to create user stories.
- Created spring webflux project with some improvement to serve rest response & html views. Had used latest spring features.
-
Configured security configuration to achieve single-sign-on.
[Had explained multiple solutions(shared session using spring-redis, path based routing using SpringCloudGateway/ALB & subdomain) to achieve single-sign-on features & thier limitations ] - Configured service to connect to both Redshift & Postgres data sources.
- Updated infra code to deploy the new microservice & configured path based routing for the service
- Sprint activities also involves Bug fixing, Application Deployments, Supporting App, Embedded & QA teams.
- I also help other team members even seniors regarding technical & project related work.(Not just take help)
- Created APIs as per specification defined by Architect. Also used to provide feedback based on my analysis.
-
- Had got opportunity to directly communicate with other company people regarding their new API integration.
- After verifying new API, informed them & our Architect about concerns related to API authorization & response. Explained high-level implementation of existing feature(not done by me) which uses the their old API. Feedback provided by me helped Architect to have discussion with other company members on API contract.
-
UI work:
- Updated dashboard reports to show different views based on user role & minimal modification to backend API to work with both views.
- Added input validations & other improvements which were not told as requirements.
Happiest Minds Technologies[Jan 2019 – Sept 2021]
Project: Savvas-Realize (Pearson Schools)(Aug-2019 - Sept-2021)
- Worked in multiple backend services & frontend applications as per client requirement.
- Worked in all phases of software development from analyzing requirements, Implementing features with unit test cases, testing, identifying root cause & fixing bugs.
- Involved in migration of monolith applications into micro-frontends & backend-for-frontends.
- Designing & implementing REST & GraphQL APIs.
- Implemented Angular components.
- Have experience in integrating external services & tools.
- Wrote scripts to migrate data & configured caching & AWS services like SNS & SQS.
Project: HM internal Projects (Feb 2019 – Jul 2019)
-
Worked in two internal web applications which are being used by management & employees. Was involved in enhancing, implementing & testing features such as
- Scheduling emails to employees.
- created UI components & Jasper reports
- Employee data migration using spring batch job.
- Support & bug fixing
Education:
Degree: B.E [Electronics and Communication Engineering] [2013-1017]
Institute: Sir M. Visvesvaraya Institute of Technology, Bengaluru (VTU)
Contact:
- Email:kskarthik.k8s@gmail.com
- Linkedin:kskarthik08