About me

I love to find root cause of the problems and solve them through technologies. I love to find multiple ways to solve a problem and analyzing the trade-offs between each solutions.

In school my favourite subject was zoology, however my love for new technologies and programming brought me into the world of Software Engineering. I have done my graduation on Electrical engineering.

I love to do volunteering on causes related to Education and Poverty eradication.

If you do not see me programming, either I will be volunteering or sleeping ;) .

My Resume

  • Work Experience

  • AIOps Platform squad lead

    IBM - Oct 2019 - Present
      I am currently leading the development of a world class AIOps platform tool I, with the help of my brilliant squad, have been building the Multi-Tenant core AIOps platform for IBM GTS Labs. My responsibilities include but not limited to:
    • Implementing Multi-Tenant architecture across different data forms on AIOps Multi-Cloud platform
    • Implementing both user authentication and authorization
    • Performance improvement and tuning
  • AIOps senior development engineer

    IBM - Dec 2018 - Oct 2019
      I was working in IBM Global Technology Services Laboratories as a member of AI solutions and Transformation team . My work mainly revolved around:
    • Interacting with multiple teams to gather their product architecture and pain points and broke down complex products into simplified charts for a real understanding of concerned stakeholders. Picked the technology stack and architecture from multiple similar products to merge them into a robust product with a single pane of truth.
    • Designing and Proposing multiple transformation options for a unified ingestion and analytics framework for high volume batch and real-time data analytics, providing end to end capabilities.
  • Technical Lead

    Wipro Holmes - Dec 2017 - Dec 2018
      Soumendra was leading a team of around 10 developers and QA engineers to develop an enterprise-grade cognitive search engine. He was actively working on the following technical stacks
    • Deploying the product from PoC to Production level
    • NLP to SQL conversion
    • Cache management using Redis DB
    • Nginx for load balancing through reverse proxying
    • Multithreading implementation in Python
    • Transforming memory and time-consuming functions to optimized ones
    • Performance/Stress testing of the product
    • Unit test case preparation
    • Developing a CI/CD pipeline with the integrated test cases
    • Other than these he was guiding the following stack:
    • Support (English, Spanish, German, Portuguese)
    • Metadata management to optimize the search results and performance
    • Knowledge graph preparation to enable context based search
  • Senior Software Engineer

    Wipro Holmes - October 2016 - December 2017
      As a Senior Software Engineer of in a newly assembled team with mostly entry-level developers, Soumendra has to work on many different aspects of the product development:
    • Interact with other stakeholders to understand the business requirements/use-cases and convert them into technical requirements.
    • Analyze both the business and technical requirements for a software program and develop design solutions and task specification to meet those needs.
    • Work closely with other team members, project managers, and stakeholders to ensure that all requirements are met and work as per specification.
    • Design and implement scalable, maintainable, well documented and high quality solutions to solve customer requirements/problems.
    • Providing efforts, estimate, feasibility and resources need for RFPs and PoCs.
    • Write unit test cases with complete code coverage. Perform dev testing to ensure minimal bug slippages to QA/Production.
    • Review the code of the other engineers in the team.
    • Shipping/Deploying the code developed at vendor location to client restricted location.
    • Provide support for UAT activities as well as production support including fixing of any defects.
    • Mentor new as well as junior team members in the team.
    • Coordinating with IP license team, pre-sales team, testing team and customers.
  • Application development analyst

    Accenture - May 2015 - September 2016
    • Gathered requirements and designed solutions
    • Analyzed and developed the solution for client
    • System Integration Test and Unit Test
    • Analyzed production issues and built fixes
    • Worked with multiple teams based on the requirements
    • Value added to the Client by automating complex screen manual entries by VB Script
  • System Engineer

    Tata Consultancy Services - June 2012 - May 2015
      I was working on a production support project for a
    • Analyze the production issues and do the necessary steps to correct it.
    • Coordinate with the stakeholders including the onshore team.
    • Study the BRD and HLD to understand the business, technical and functional requirement.
    • Support the onshore team on month-end production run in real time (Level-1 support).
    • Designing test plans for UAT, Unit testing and/or System testing for the components created.
    • Organize and participate meeting with the team to create the strategy to be followed for the enhancement and come up with the optimum plan.
    • Guide and delegate work to my junior associates.
    • Analyzed and documented huge programs and documented their functions with flow-charts to decommission a system.
    • Review and verify the documents prepared by the offshore team to send defect free deliverables to the client
    • Learnt the A, B, C D of IT industry and corporate life.

  • Education

  • B.Tech in Electrical Engineering

    ITER, S 'O' A University - 2008 - 2012
    • Learnt C, C++
    • Did major project with MATLAB software

Skills

Python85%

GoLang15%

Javascript20%

HTML/CSS50%

Git80%

Docker80%

ELK stack75%

MongoDB/Redis/RabbitMQ/PostgreSQL70%

My Blog posts

I ♥ to write. I maintain few technical blogs across multiple platforms.

March 31st 2019

Circuit breaker pattern

A Circuit breaker is a design pattern used in modern software development. It is used to detect failures and encapsulates the logic of preventing a failure from constantly recurring, during maintenance, temporary external system failure or unexpected system difficulties.

Feb. 3rd 2018

Run Nginx as a service on windows

Nginx can be used for multiple use cases like reverse proxying, load balancing, etc.

Jan. 7th 2021

Code refactoring

Code refactoring is an ongoing process like putting air into tyre.

My current location