profile-pic
Vetted Talent

Zafar Mansuri

Vetted Talent
As an Engineering Manager, I bring extensive experience in leading and managing cross-functional engineering teams to deliver complex projects on time and within budget. With over years of experience in the field, I possess deep understanding of software development methodologies and practices. Throughout my career, I have successfully managed large-scale projects and teams, utilizing Agile and Waterfall methodologies. I have proven track record of implementing best practices and processes that have resulted in increased productivity, improved quality, and reduced costs. I am highly skilled in technical leadership, providing guidance and mentorship to my team members to develop their skills and achieve their career goals. I am well-versed in software development life cycle (SDLC) processes, including requirements gathering, design, development, testing, deployment, and maintenance. TECHNICAL SKILL SET
  • Role

    Associate Engineering Manager

  • Years of Experience

    9.5 years

Skillsets

  • HikariCP
  • Bash
  • Capacity Planning
  • CloudWatch
  • Cqrs
  • Distributed Systems
  • distributed tracing
  • EC2
  • ECS
  • event-driven architecture
  • fault tolerance
  • Gradle
  • Helm
  • ArgoCD
  • JPA
  • Lambda
  • Maven
  • Mockito
  • Quartz Scheduler
  • RDS
  • Redis streams
  • Resilience4J
  • S3
  • Saga pattern
  • SonarQube
  • Spring Security
  • GCP
  • Java - 8 Years
  • AWS - 1 Years
  • Spring Boot - 8 Years
  • Docker
  • Elasticsearch
  • GitHub Actions
  • Grafana
  • Jenkins
  • JUnit
  • Kibana
  • Kubernetes
  • Microservices
  • Java - 7 Years
  • Hibernate
  • MySQL
  • Prometheus
  • Python
  • RabbitMQ
  • Redis
  • Spring Cloud
  • SQL
  • Terraform
  • REST
  • Apache Kafka
  • Api contract

Vetted For

13Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior AI Engineer (Remote)AI Screening
  • 70%
    icon-arrow-down
  • Skills assessed :AWS Lambda, Expo, graph database, GraphQL, Next Js, react (js+native), Serverless, LangChain, Prompt Engineering, Vector databases, Leadership, Postgre SQL, Type Script
  • Score: 63/90

Professional Summary

9.5Years
  • Dec, 2022 - Present3 yr 6 months

    Associate Engineering Manager

    Rakuten Symphony India
  • Oct, 2016 - Nov, 20226 yr 1 month

    Senior Software Engineer (Module Lead)

    InnoEye Technology

Applications & Tools Known

  • icon-tool

    Java 8

  • icon-tool

    Jira

  • icon-tool

    Microsoft Project

  • icon-tool

    Git

  • icon-tool

    SVN

  • icon-tool

    Jenkins

  • icon-tool

    Docker

  • icon-tool

    Microsoft Project

  • icon-tool

    Kubernetes

  • icon-tool

    Redis

  • icon-tool

    Elasticsearch

  • icon-tool

    Grafana

  • icon-tool

    Kibana

  • icon-tool

    GitHub

  • icon-tool

    IntelliJ

  • icon-tool

    Confluence

  • icon-tool

    Miro

Work History

9.5Years

Associate Engineering Manager

Rakuten Symphony India
Dec, 2022 - Present3 yr 6 months
    Lead and mentor 20+ backend engineers across multiple concurrent product tracks within the Symworld Service Desk ecosystem. Conduct weekly 1:1s, define quarterly OKRs, run architecture review boards, and coordinate delivery across cross-functional squads sustaining 99.5% production uptime. Own end-to-end system design for all major platform capabilities producing HLD documents covering service topology, data flows, API contracts, and failure modes, followed by LLD artefacts detailing class structures, DB schemas, sequence diagrams, and concurrency strategies. Designed and delivered the end-to-end ITSM Change Management module for the Symworld Service Desk platform, aligned to ITIL v4. Architected core components including Change Request microservice (Java/Spring Boot) with full CR lifecycle, Approval Workflow Engine, CMDB for CI tracking, automated Risk Assessment Engine, SLA Tracking Service, and an immutable Audit Trail for compliance. Introduced a self-service Standard Change catalogue, reducing CAB review load by 50%. Integrated change workflows with CI/CD pipelines to auto-create change records on deployment. Redesigned Emergency Change fast-track path, cutting resolution time from 4 hours to 45 minutes. Improved change success rate from 78% to 94%; reduced change-related incidents by 30%; achieved 100% audit trail compliance. Designed and maintained multi-stage Jenkins and GitHub Actions pipelines covering build, unit tests, integration tests, SonarQube static analysis, Docker image build, Kubernetes deployment (Helm), and post-deploy smoke tests. Introduced blue-green deployment strategy for zero-downtime releases, cutting deployment cycle time by 40%. Defined and implemented a layered caching architecture using Redis local in-process cache for hot data and Redis cluster for shared state. Applied cache-aside, write-through, and TTL-based invalidation patterns, achieving a 35% reduction in average API response time on high-traffic endpoints. Applied circuit-breaker patterns (Resilience4j), idempotency keys, and dead-letter queues across Kafka consumers to ensure at-least-once delivery with safe retry semantics. Defined SLOs and runbooks for each critical service; conducted quarterly failure-mode reviews with the team. Received the Individual Excellence Award (2024) for sustained engineering leadership and measurable cross-team delivery impact.

Senior Software Engineer (Module Lead)

InnoEye Technology
Oct, 2016 - Nov, 20226 yr 1 month
    Designed and developed scalable Java 8/Spring Boot backend services for multi-tenant telecom management systems handling 100K+ concurrent users. Applied distributed systems principles, partitioned data models, stateless services, and asynchronous workflows ensuring horizontal scalability and resilience under peak load with p95 API response times below 500ms. Participated in and progressively led HLD and LLD sessions for new modules defining service boundaries, RESTful API contracts, database schemas, and integration patterns. Produced sequence diagrams and component diagrams used as shared references across frontend, backend, and QA teams, reducing ambiguity and rework in sprint cycles. Championed and introduced Apache Kafka as the backbone for inter-service communication, replacing synchronous REST calls between critical services. Designed producer/consumer topology, partitioning strategy, and consumer group configuration improving overall service throughput by 25% and enabling independent scaling of downstream processors. Led the design and implementation of versioned RESTful APIs consumed by web clients, mobile apps, and third-party integrations. Applied RESTful best practices and documented contracts via OpenAPI specs, reducing integration errors between teams. Built and maintained Jenkins-based CI/CD pipelines for multiple services automating unit tests, integration tests, Docker image builds, and Kubernetes rolling deployments. Introduced environment-specific Helm configurations for dev, staging, and production, reducing manual release effort significantly. Designed relational schemas for multi-tenant data isolation using MySQL, applying row-level security, composite indexes, and query plan analysis to sustain sub-100ms query times. Introduced connection pooling via HikariCP to eliminate thread starvation under concurrent load. Deployed centralised logging pipelines (Elasticsearch + Kibana) aggregating structured logs from all microservices. Created dashboards for error rates, latency percentiles, and business KPIs enabling the team to detect and diagnose production issues within minutes. Mentored 5 junior engineers on distributed systems patterns, SOLID principles, and production readiness running weekly design review sessions and structured code reviews. Two mentees were promoted to mid-level engineer within 18 months. Architected a Java/Spring Boot microservice platform enabling real-time, zero-downtime configuration updates across all Symworld services. Designed with event-sourcing principles every change is versioned, auditable, and revertible via one-click rollback. Eliminated manual config drift incidents that previously caused ~15% of production incidents. Designed and led the Java-based build of an event-driven fault detection platform using Apache Kafka for high-throughput event ingestion and Redis Streams for stateful, low-latency stream processing. Implemented rule-based and threshold alerting with automated escalation workflows, reducing MTTD by 60% and improving system stability by 45%. Built a distributed Java job scheduling service using Quartz Scheduler with cluster-aware execution to eliminate duplicate job runs across nodes. Replaced fragile cron-based legacy processes with a dynamic, API-driven scheduling model reducing scheduling failures to near zero.

Achievements

  • Individual Excellence Award

Testimonial

Rakuten Mobile

Collaborating with Rakuten Mobile has been nothing short of outstanding. The commitment to innovation, efficiency, and customer satisfaction is truly commendable. From the very beginning, it was evident that Rakuten Mobile values excellence and strives for continuous improvement in all aspects of their operations.

Major Projects

5Projects

AI-Powered Change Management Platform

    Integrated LLM and RAG pipelines with backend workflows for automated validation and anomaly detection. Built modular APIs for AI agents and implemented agent task routing and state persistence mechanisms. Developed an AI-driven ChatBot integrated into Rakutens Change Management system.

Smart Scheduler Platform

    Designed backend engine for dynamic job scheduling using Quartz and async queues. Added audit and observability layers for real-time job tracking and reliability.

Configuration Management System

    Engineered a microservice-based backend for real-time configuration updates across distributed network systems. Implemented version-controlled configuration deployment pipelines with rollback and validation capabilities.

Fault Management System

    Developed event-driven fault detection and correlation service using Kafka and Redis Streams. Implemented real-time alerting and anomaly aggregation for network and application faults.

Performance Management Dashboard

    Designed backend data pipelines for collecting, aggregating, and visualizing system KPIs in near real-time. Implemented asynchronous processing to handle high-volume telemetry data using Spring Boot and PostgreSQL.

Education

  • Bachelor of Engineering (BE), Computer Science

    Shri Yogindra Sagar Institute of Technology and Science (2015)

Certifications

  • machine Learing

    Scalar (Aug, 2023)
  • Data science & machine learning certification

AI-interview Questions & Answers

My background is in computer science, and I'm currently working as an associate manager at Rakuten Symphony. My full resume is 7.9, my total experience. I work on main Java, Python, Kafka, and some other technologies including Spark. Currently, we're working on AI, TypeScript, and machine learning parts, as well as neural network libraries in this area. I manage the technology team in India, and I'm handling three projects based on our ITSM. One is chain management, one is leasing management, and one is ticket management. This is about my background.

What strategy could you use to handle a vector database schema changes in a TypeScript code base? What strategy could you use to handle vector database schema changes in a TypeScript code base? Okay. There are several strategies to handle vector database schema changes in a TypeScript code base. Define an interface for your database that specifies the expected structure, including dimensioning on the database. Use generic functions and classes to operate on vectors of any supported type based on the interface. When the schema changes, for example, by adding a new dimension, update the interface to reflect the new structure. Existing code using a generic function will automatically adapt to the changes as long as the new data column is edited. Implement a version system for your vector schema, storing schema versions alongside the vector data. Specify the encoder and decoder for each schema version. During data retrieval, use the version information to identify the appropriate queries and let the decoder decode the data. When the schema changes, create a new version with new queries, and existing data can remain in its original format while new data use the updated schema. Prepare a migration script to handle schema changes, which can update the existing data to the new format when the code base is upgraded. This approach requires careful planning and testing to ensure data integrity during migration. Consider utilizing a schema management tool to specify the design of the vector database. This tool can automatically handle schema versioning and data migration, ensuring type safety across different schema versions.

Could you propose a method for integrating prompt engineering? Yes, I'd be happy to. This is a very good question. There are many possible methods available to integrating a prompt engineering feedback into a vector database using a TypeScript. 1st is a data model with a feedback field. Design your data so that your vector data model in TypeScript includes fields for sorting a prompt's engineering feedback. This will use to be a string or JSON object containing a detail like user annotation or label restricting prompt efficiently, and metric like prediction, recall, or a F1 score to qualify a prompt's performance. 2nd is feedback collection and preprocessing. In this feedback collection and preprocessing, they look at functionality in TypeScript to collect a prompt's engineering feedback, and this would involve first, is a user interface for manual annotation, interaction with the external evolution tool for general metrics. And next, is the preprocessing the collected feedback data and before storing it in a vector database, might involve text cleaning and normalization of the user annotation and data normalization for performance metrics. 3rd point is a feedback embedding storage, which means encode the preprocessing feedback data into a representation suitable for the vector database. The text annotation could be transformed using technology like TF-IDF, or vectorizing performance metrics could be directly stored as a numeric vector. And do you look at functions in JavaScript to store vectorized data feedback data along with the corresponding vector data in a database. If we go to the 4th point, the relevant feedback integration, modify your vector relevant function to consider the feedback during information retrieval. This could involve 1st ranking the vectorizer based on a combined score that incorporates both the vector similarity and feedback metrics. And 2nd is utilizing the feedback and vector to redefine the search query itself accurately. And I think, and we also use the leverage of NLP and many other libraries.

In what way can the TypeScript interface enhance the development and maintenance of langchain dot JS based application. And the TypeScript interface can significantly enhance the development and maintenance of the langchain in, there are many ways. Firstly, improve the type safety: The TypeScript interface defines the expected structure or data type of the object used in the langchain.js application. This helps to catch errors earlier during development and prevents issues like passing incompatible data to engine functions, and manipulating objects with unexpected properties. TypeScript type checking ensures the code works as intended and reduces bugs, leading to more robust integration. Secondly, enhance the readability and maintainability. The interface improves code readability by clearly documenting the structure of data used throughout the application, making it easier for developers to understand what data and functions are expected or what properties an object has, as reflected by the interface definition. This also improves code maintainability as changes to the interface are reflected throughout the codebase where it's used. The second is auto-completion and refactoring. The TypeScript interface provides a code completion feature based on a defined interface. This helps developers write code faster and with fewer errors by suggesting relevant properties and functions when working with the langchain object. Additionally, the TypeScript refactoring tool can automatically update code that uses an interface when its definition changes, saving time and reducing the risk of introducing bugs during code modification.

What TypeScript best practice ensures a safe consumption of data from a vector database in a context AI? There are some best practices to ensure this safe consumption of data from a vector database in an AI context. Firstly, the interface is a best type safety. The interface for expected structure or data type for vector relevant from the database ensures that checking during the development and prevents accidental misses of the vector data. For example, the interface could specify vector dimensioning and data type, such as float, 32 bits, and implement input validation. Implementing an input validation function to check if the relevant vector conforms to the expected format defined by the interface helps catch potential errors like unexpected vector length or data length, data type mismatch earlier on. Through script error, if validation fails, prevent the application from using potentially corrupted data. Data normalization is also crucial. If the vector from the database can be defined, scaled, or ranged, consider implementing a data normalization technique. This ensures all vectors are on a comparable scale, leading to more reliable AI model predictions. Common normalization techniques include L1 normalization or mean and max scaling. Error handling and monitoring are also best practices. Implement a robust error handling mechanism to gracefully handle situations where data relevant from the vector database fails. This could involve logging errors, retrying failed operations, and utilizing available script libraries for operation manipulation and testing.

Could you implement a TypeScript type interface for managing complex queries in a vector database? There are some complex queries, so there are some implementations of a scripting interface for managing complex queries in a vector database. The first is the best query interface. Define a base query interface, named VectorDatabaseQuery. It outlines the core components of the query, including properties like collection, filter, or. Create an interface, create a separate interface. Name is Filter. Define the structure of the filter criteria. It has properties like dimension, operator, and value. And, third, is a complex query interface option. Define another interface, named ComplexQuery, that extends the VectorDatabaseQuery interface. This interface includes additional properties like search vector, key number options, and specify the number of nearest neighbors to the metrics.

Looking at this code in a React, explain why component might not be rendering the expected result when the prompt is slash item changes. My component class extend react dot component, curly braces, constructor, bracket, prompts, bracket, curly braces, super, down bracket, prompts, round bracket. Semicolon, this dot state, semicolon, Looking at this code in React, explain why this component might not be rendering the expected result when the prompt item changes. Class my component extend react dot component, column bracket, prompts, round bracket, close, column braces, super round brackets, prom round bracket, semicolon. This dot state was to curly braces item, colon, prompt dotitem, curly braces clause, semicolon, semi curly braces, clause, render, round bracket, open round bracket, clause, curly braces. Basically, this class is extend the React component, and they are some conceptor which are user super conceptor. And this, those prompt is coming from the, UI or any of there were item standards. They are set to be and mapped to the content, and the state is not that mapped to the content.

const user: { colon: semicolon, message: string } = { name: 'John', colon: 'error', message: 'Something went wrong' }; // Error: // TypeScript error: // Type '{ name: string; colon: string; message: string; }' is not assignable to type '{ colon: semicolon; message: string; }'. // Object literal may only specify known properties, and 'name' does not exist in type '{ colon: semicolon; message: string; }'.

What design pattern in TypeScript could you employ to extract the logic of prompt engineering from other AI feature implementation? Here, there are two design patterns in TypeScript that can be employed to extract the logic of prompt engineering from other AI feature implementation. The first strategic pattern is defined in the interface of the various prompt engineer approaches and allows switching between prompt techniques at runtime. This allows for modularity and easy experimentation with different prompt engineering techniques. If we implement this, define an interface named "PromptEngineeringStrategy" with a method named "generatePrompt" that takes data relevant to the AI picture and returns the generated prompt. Create an implementation of the "PromptEngineeringStrategy" interface to define different prompt engineering techniques. For example, implement a "BasePromptStrategy" and a "ShortestLearningPromptStrategy". Each implementation defines a small logic for generating a prompt based on the provided data. When implementing AI feature code, inject an instance of the desired prompt engineering strategy at runtime or through configuration, allowing us to define a prompt engineering approach without modifying the core logic of the AI feature. The second design pattern is the decorator pattern. The decorator pattern dynamically adds a benefit to an existing object without modifying its original structure. In this case, the prompt generation logic is added to the original function without modifying its structure. The implementation consists of a decorator function that wraps the original function with the prompt engineering logic. The decorator function takes the prompt provided data, generates a prompt using the prompt engineering strategy, and then calls the original function with the generated prompt as an argument. By applying the prompt engineering decorator to our AI function, this will automatically add the prompt engineering logic before the original function is executed.

```typescript interface Metadata { name: string; value: any; } function metadata(name: string, value: any): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void { return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) { if (!descriptor.metadata) { descriptor.metadata = new Metadata(); } descriptor.metadata[name] = value; return descriptor; }; } function langchainObjectMetadata<T>(target: any, propertyKey: string, descriptor: PropertyDescriptor) { if (!descriptor.metadata) { descriptor.metadata = new Metadata(); } return descriptor; } class LangchainObject { @metadata('contentImage', 'https://example.com/image.jpg') @metadata('authorName', 'John Doe') metadata: Metadata; constructor() { this.metadata = new Metadata(); } } class Application { private langchainObject: LangchainObject; constructor() { this.langchainObject = new LangchainObject(); } public getMetadata(): Metadata { return this.langchainObject.metadata; } public filterMetadata(propertyName: string): any[] { const metadata = this.getMetadata(); return Object.keys(metadata).filter(key => key === propertyName); } public accessMetadata(propertyName: string): any { const metadata = this.getMetadata(); return metadata[propertyName]; } } const app = new Application(); console.log(app.getMetadata()); console.log(app.filterMetadata('contentImage')); console.log(app.accessMetadata('authorName')); ```

interface VectorData<T> { data: T[]; } function interactWithVectorDatabase<T>(vectorData: VectorData<T>, element: T): VectorData<T> { // Interact with the vector database // This function can be used to retrieve, update or delete data from the vector database // It returns the updated vector data return vectorData; } // Example usage with float elements const floatVectorData: VectorData<number> = { data: [1.0, 2.0, 3.0] }; const updatedFloatVectorData = interactWithVectorDatabase(floatVectorData, 4.0); // Example usage with integer elements const intVectorData: VectorData<number> = { data: [1, 2, 3] }; const updatedIntVectorData = interactWithVectorDatabase(intVectorData, 4);