With over 12 years of software engineering experience, I specialize in developing backend solutions for large-scale systems. Currently at Axon, I focus on enhancing search capabilities, data-sharing features, and authentication for Axon Records, contributing to solutions that support law enforcement agencies.
Previous roles include work at eBay and Dell Boomi, where I developed efficient algorithms, data preparation platforms, and scalable APIs. Leveraging expertise in big data, low latency, and high throughput systems, I aim to deliver impactful and reliable engineering outcomes.
Go, Scala, Java, Python
Apache Spark, Kafka, Hadoop, Airflow
AWS, Google Cloud Platform, Azure
Elasticsearch, PostgreSQL, MySQL, MongoDB, Cassandra, DynamoDB
GraphQL, Akka, Spring, Django
Low Latency Systems, Information Retrieval, Distributed Systems
• Leading the design, development, and implementation of features for the Axon Records Management System (RMS), utilizing technologies such as Go, Kafka, MySQL, GraphQL, and Elasticsearch.
• Migrating the task workflow to Elasticsearch, focusing on noisy neighbor mitigation, index speed improvements, and index status tracking.
• Developed backend solutions enhancing search capabilities and data-sharing features for law enforcement agencies.
• Improved authentication processes across multiple law enforcement agencies to ensure secure access.
• Developed efficient algorithms compatible with existing Search Infrastructure that process several terabytes of data utilizing proven algorithmic ideas in classification, text mining, and information retrieval using technologies like Java, Scala, Kafka, Spark, PostgreSQL, and Airflow.
• Led the Great Price and Best Selling features which had direct visibility on the site and increased the average conversion rate by 14% on the Search Result page. These badges are updated on eBay items in near real-time using factors such as sales history, search impressions, and engagement.
• Designed and implemented Rapid Feature Management to enrich the training data for machine-learning models. This improved the time to develop and release new features by 60%.
• Migrated Spark and Hadoop jobs from an in-house automation platform to Apache Airflow, optimizing existing jobs and developing data pipelines.
• Worked on the data preparation platform and developed ETL solutions for enterprise customers using technologies like Scala, Akka, Spark, Python, and PostgreSQL.
• Developed a parser to parse structured and semi-structured data like XML, JSON, and CSV files and represent them in a flattened, tabular structure that can be easily saved in columnar format.
• Designed and implemented a real-time data pipeline to process semi-structured data by integrating 150 million raw records from different sources using Apache Kafka to stream data and utilized the Spark job server.
• Created dynamic parser to auto-detect datatypes for input datasets and masked sensitive information.
• Implemented dynamic target creator for Informatica mapping designer that transforms source data and stores them in flat file, Amazon Redshift, relational, and Salesforce databases without requiring the target syntax.
• Implemented SAP IDoc writer as target type for Informatica mapping transformation, enhancing mapping transformation capabilities.
• Optimized performance for data grids with over 100,000 records using temporary tables, materialized views, and processed records in subsets when applying filters and user permissions.
• Developed scalable software solutions for clients like BMW, General Motors, and Nissan in the PTC Service Lifecycle Management Parts Pricing team.
• Redesigned old architecture pages to Spring framework and developed features like drill-down, advanced filters, tags, and decorators for data grids and chart APIs resulting in improved efficiency and reusability.
• Led the development task for Approval Workflow and Pricing strategies for BMW by contributing to the design, development, and testing phases. Awarded PTC Excellence Award for outstanding contributions.
• Created service to track the progress of all processes running in the application and used polling to track state changes. An activity log page displayed these state changes.
• Improved user access control by implementing folder and role-based access rights.
Advanced System Software, Cyber-Physical Systems (Internet of Things), Design and Analysis of Algorithms, Information Retrieval, Machine Learning, Middleware Network and distributed systems, Software Analysis and Testing, Software Engineering
Designed and developed an HTML and textual content retrieval system using web crawler crawler4j. Inverted index over >100,000 URLs using MapReduce and stored these indexes in MongoDB. It required two phases of map-reduce and one indexing phase. The search results were ranked based on: tf-idf value, the text used in titles and subtitles have higher weight, pages with higher incoming links are ranked higher. Developed a search interface using spring framework, which would show relevant URLs.
Surveyed various tools and techniques used in both web and mobile applications that are built upon existing research works but uses crowd debugging approach to expedite the development process. Research in the area of crowd debugging has not yet developed into a mainstream topic to be studied, but it is slowly getting recognised in software engineering research. This survey will be a useful guide for those looking into state-of-the-art in crowd debugging.
This architecture is part of a larger effort to develop a complete intra-vehicle information system security solution. In particular, it demonstrates how we could handle manual and autopilot controls differently for acceleration, brake and steering systems to filter out tampered signals.
An android application with topic based publish-subscribe notifications. Topics mostly based on mutual interests, such as carpooling, food, sports, restaurants, community-related events etc. Developed a GCM registration activity for registering the devices that install the application. Every message sent is associated with a tag name. Only users subscribed to the same tag name would receive the message/notification.
Implemented k-means clustering algorithm that uses iterative map-reduce process. Data was read from HBase and then partitioned into k clusters.