Karthik K S

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: