Overview


Who Am I?
Co-founder, Opensource Developer, Technologist.

Basic Profile
Polyglot technology enthusiast with experience of 10+ years on different technologies implementing scalable, distributed and agile web application solutions.

Current Position
Co-founder and spear-heading the product engineering team responsible for next gen loyalty and customer engagement platform powered by analytics and AI.

Side Hustles
Creator of Java spring based channel agnostic microservice dialogue library. Maintainer for a technology blog and video channel.

Skills

I got introduced to the world of computing when I was 12 starting with QBasic on my video game controller and had the privilege to learn and work on many different technologies and languages. You can see the different areas of knowledge I have acquired during the course of my technology journey.


Loyalty Management System
Key member of a design and implementation team responsible for the development of next generation Loyalty system. Features included:

Accrual
Business rules for awarding of rewards based on

  • Partner Awarding
  • Point exchange with partners
  • Configurable rules engine
  • Point mechanics ( buying, exchange, gifting )
  • Coalition Programs
  • Settlement generation and invoicing

Redemptions
Business rules for points burning.

  • Partner redemptions
  • External product redemptions
  • Fullfilment
  • Partner product market-place
  • Cashback & discounts
  • Promocode based benefits
  • Dynamic voucher codes & Integration to External redemption providers
  • Experience based redemptions

Gift cards
Comprehensive gift card solutions implmented

  • Stored value cards
  • eVouchers
  • Topup incentives and loyalty programs
  • Transfer of gifts and points

Domain Expertise
Deep understanding and implementation knowledge on various domains related to customer engagement, airline, retail, telcos and banking

Customer engagement
Designed an innovative platform for new age customer engagement.

  • Segmentation and seggration
  • Extension Integrated CRM
  • Customer profiling
  • Feedback Management
  • Campaigns & Targeted Promotions

Airline
Hands on implementation knowledge on airline domain.

  • Integrated Sabre, Navitaire
  • Airline booking flows
  • Frequent flyer programs
  • Tiering and Upgrades
  • Cobranded programs
  • Revenue based and miles based programs
  • Multi currency (Status points, elite points )
  • Catering management system
  • Offline inflight mobile apps

Retail
Extensive program management on retail domain

  • Retail analytics
  • SKU based analytics
  • Campaigns
  • Retail operations
  • Billing Integration

Analytics, AI, ML
Developed domain specific analytics, AI powered chatbots and predictions based on ML.

Analytics
Domain specific realtime dashboards and relevant analytics

  • Realtime dashboards using ELK stack
  • Data modeling based on domain specific requirements
  • Profiling of customer based on activities
  • Analytics based on activity and spend behaviour
  • Analytics powered campaigns
  • Campaign efficiency dashboards

AI
Custom chatbots based on AI

  • Chatbots based on Amazon Lex
  • Loyalty functions ( redeem, balance enquiry )
  • Reward Queries & FAQs
  • Integration with FB Messenger, Whatsapp, Slack
  • Flight booking based flow support

Machine Learning
ML assisted insights into customer behaviour and campaign targeting.

  • ML powered churn prediction
  • Cluster analysis based on historic purchase patters
  • Lifetime successful customers
  • Campaign targeting based on ML predictions
  • Efficiency prediction

Java
Level:
Expert
Exp:
12 Years

Specializations:

  • Functional Interfaces, Lambdas & Streams,Collections
  • Multi-threading & Async with Future
  • Performance Tuning & Best Practices
Spring Framework
Level:
Advanced
Exp:
8 Years

Specializations:

  • Enterprise Integration
  • Spring batch,Security
  • Spring data ( Mongo, ElasticSearch, Redis, Gemfire)
  • Spring data JPA, AOP
Angular JS
Level:
Advanced
Exp:
6 Years

Specializations:

  • Angular1,6
  • Type Script
  • Custom Directives & Services
PHP
Level:
Advanced
Exp:
5 Years

Specializations:

  • Database connections
  • Excel processing libraries
  • OWASP
  • ORM Modules
  • REST Webservices
HTML/CSS
Level:
Advanced
Exp:
6 Years

Specializations:

  • Bootstrap 3, 4
  • Responsive Designs
  • Progressive Web Apps
  • Created this site from scratch!
Python
Level:
Intermediate
Exp:
2 Years

Specializations:

  • Development for ML
  • Pandas
  • NumPy
  • Tensorflow
C#
Level:
Intermediate
Exp:
4 Years

Specializations:

  • .Net Framework
  • WPF based desktop application
  • Command line applications
  • Excel and file parsing
  • REST Webservices
Scala
Level:
Intermediate
Exp:
2 Years

Specializations:

  • Scala with Spring
  • Traits
  • Functional
Android
Level:
Intermediate
Exp:
3 Years

Specializations:

  • Layouts & Fragments
  • Services, Sugar ORM
  • REST API
  • System Services
  • Hardware controls (Bluetooth, Wifi, Hotspots)


MongoDB
Level:
Advanced
Exp:
3 Years

Expertise:

  • Mongo DB Query Language
  • Aggregation pipelines
  • Sharding and clustering
  • MongoDB Atlas in AWS
  • Spring Data MongoDB & Aggregation piplelines

MySQL
Level:
Expert
Exp:
10 Years

Expertise:

  • Query optimization
  • Partitioning & Index Optimization
  • Master slave setup
  • AWS RDS with Multi AZ
  • Spring JPA Optimization
  • Stored Procs & Functions

Oracle
Level:
Intermediate
Exp:
2 Years

Expertise:

  • Query optimization
  • Cursors & Stored procedures
  • PL/SQL

ElasticSearch
Level:
Advanced
Exp:
6 Years

Expertise:

  • ElasticSearch JSON Query
  • Sharding and Clustering
  • Spring data elasticsearch
  • ELK Stack for analytics & log analysis

MSSQL
Level:
Intermediate
Exp:
4 Years

Expertise:

  • SQL Queries
  • Partitioning
  • Master slave configuration
  • Stored procs, SSIS

Gemfire
Level:
Intermediate
Exp:
2 Years

Expertise:

  • Gemfire configuration
  • Caching
  • Spring data gemfire
  • Primary datastore with write-behind to SQL


Agile
Level: Advanced

Expertise

  • Scrum Master, Sprint planning & Daily standup for different teams
  • User stories & backlogs with consultation from product owner
  • Product delivery and releases
  • Sprint retrospective meetings


Domain Driven Design (DDD)
Level: Intermediate

Expertise

  • Identifying and defining domains in the requirements
  • Context and boundary definition
  • Entities, Value objects, Aggregates
  • Designed system services with CQRS (Axon Framework)


Test Driven Development (TDD)
Level: Intermediate

Expertise

  • Implmenting TDD in the current project
  • Defining test cases around business logic
  • Testing Libraries (Mockito, Cucumber, JUnit )


Microservices
Level: Advanced

Expertise

  • Decomposed a core monolith service to microservices
  • Designed library for domain event replication for services (mi-dialogue-domain)
  • Netflix stack(Eureka, Consul, Feign)


Scalable Systems
Level: Advanced

Expertise

  • Designed systems for consuming large datasets
  • Horizontally scalable microservices
  • Event based & reactive web applications


Security
Level: Advanced

Expertise

  • Created a base security service for all our microservices
  • OAuth,2F,Physical
  • Hashicorp Vault, Elastic Auditbeats
  • Data encryption ( bCrypt,AES,RSA,SSL )

Ubuntu
Level:
Expert
Exp:
12 Years
  • Primary operating system
  • Customizations, Package manager
  • Networking & Configurations
  • Server edition setup and configuration
  • Security & Hardening
Centos 6,7
Level:
Advanced
Exp:
6 Years
  • Enterprise configuration & security
  • Default cloud server OS
  • Setup from scratch
  • Security & Hardening
  • Shell Scripting
Windows
Level:
Advanced
Exp:
10 Years
  • Windows Desktop & Server configuration
  • Firewall & Security
  • Server management
  • LDAP, Drive Encryption


Nginx
Level:
Expert

Usage:
Reverse Proxy Static content Load balancing


Expertise:

  • Site configurations
  • SSL Certificates (Let'sencrypt & others)
  • Rules rewrite & routing
  • Reverse proxy configuration
  • Basic auth

Apache Tomcat
Level:
Expert

Usage:
Application Server War file deployment


Expertise:

  • Site configurations
  • War file deployments
  • Optimizations (Connectors, Threads)
  • server.xml configuration

Apache Kafka
Level:
Intermediate

Usage:
Message broker Event delivery


Expertise:

  • Configuration,Setup,Partitions,Stream processing, Zookeeper, topics, regions,spring-kafka
  • Created kafka as a configurable channel for event delivery (mi-dialogue-kafka )

RabbitMQ
Level:
Advanced

Usage:
Primary Message broker Event delivery


Expertise:

  • Configuration & Setup
  • Clustering,HA, Queue mirroring
  • Spring rabbitmq integration
  • Created rabbitmq as a configurable channel for event delivery (mi-dialogue-rabbit )

Redis
Level:
Advanced

Usage:
Distributed cache Event delivery


Expertise:

  • Configuration & Setup
  • Clustering,HA
  • Spring redis integration,caching
  • Created redis as a configurable channel for event delivery (mi-dialogue-redis )

Hazelcast
Level:
Advanced

Usage:
Distributed cache Distributed Locks


Expertise:

  • Configuration & Setup
  • Clustering,HA, Mancenter
  • Caching with spring cache manager
  • Distirbuted locks using IMap (Distributed Concurrent Hashmap)


ELK Stack
Level:
Advanced

Usage:
Central logging Realtime dashboards System audit


Expertise:

  • Configuration & Setup
  • Clustering,HA, Kibana Query & Dasboards
  • Logstash & Filebeats configuration
  • System audit using Auditbeats

High Availability
Level:
Advanced

Methods:
HA configuration Auto scaling Cloud Deployments


Expertise:

  • Load balancing ( HTTP & TCP )
  • Availability regions in cloud
  • Clustering of service components
  • Horizontally scalable service design
  • Datastore replication

Disaster Recovery
Level:
Advanced

Methods:
Replication Hot Stand-by Auto recovery


Expertise:

  • Design and implementation of DR systems in cloud
  • Hot stand-by configuration
  • Failover replicas & auto switching in cloud
  • Datastore replication


Docker

Level:
Advanced
Exp:
4 Years

Expertise:

  • Introduced Docker into org's dev process
  • Docker swarm setup
  • Spring docker ( Spotify plugin) for auto pushing
  • AWS Elastic Container Registry integrated
  • Docker service replication, rollback, scaling

Jenkins & Github

Level:
Advanced
Exp:
4 Years

Expertise:

  • Configured Jenkins Pipline to deploy based on Github hooks
  • Jenkins deployment & configuration
  • Pipeline configuration for test,build & deploy
  • Docker deployments from Jenkins
  • Shell scripting

Kubernetes

Level:
Beginner
Exp:
1 Years

Expertise:

  • Evaluating and testing Kubernetes for our environment
  • kubectl configuration
  • Scaling of application
  • Pods configuration
  • No production implementation yet

Level:
Advanced

Components:
EC2 RDS ECR ELB Networking Lex Lambdas WAF Security


Expertise:

  • Deployed services in various EC2 Instance types across different AZ and regions
  • Creation of VPCs and subnets for deployment with DMZs for security
  • Securing of resources using IAM roles
  • Organization docker registry maintained in ECR
  • RDS (MySQL) used as datastore with multi-az configuration
  • Designed domain specific chatbots based on Amazon Lex powered by Lambdas
  • Scalable services using ELBs ( HTTP, TCP ) and auto scaling
  • Secured services using WAF & Shield services
Level:
Advanced

Components:
Compute Engine SQL Load balancing ELB Networking Security


Expertise:

  • VM instances created in compute engine under varios regions
  • Security implementation using VPC firewall rules
  • Resource access restriction based on roles
  • Application scaling using load balancing ( HTTP & TCP )
  • Stack driver logging for the events
  • MySQL deployment in production with failover replica
  • Auto scaling groups for handling application demands
  • Monitoring and alerts for the events
  • Block storage (SSD, HDD )
Level:
Intermediate

Components:
Instances Server Desktop Disk Networking Security


Expertise:

  • Created new project and billing setup for organization
  • Networking and access rules setup
  • Provisioning of Windows Server
  • Provisioning of Windows 10 Desktop
  • RDP setup to the resources with whitelisting
  • Disks provisioning and additional storage attachment
  • Monitoring and alerts for the events

Spring Integration
Level:
Advanced
Exp:
6 Years

Expertise:

  • Enterpise integration patterns
  • Integration with LDAP, OAuth
  • File based integrations using SFTP,S3 buckets
  • Flat file sensing ( CSV, Excel )
  • Channels and pipelines
  • Kafka, RabbitMQ
  • Integration with REST ,SOAP and Socket based interfaces
ETL Tools
Level:
Intermediate
Exp:
3 Years

Expertise:

  • Created ETL flows using Spectrum ETL & Talend
  • Loading of data from large datasets, transforming and putting to database / webservices
  • Flat file sensing ( CSV, Excel )
  • Reading files from SFTP, Email attachment as sources
  • Posting to REST / SOAP services
Hashicorp Vault & Consul
Level:
Advanced
Exp:
3 Years

Expertise:

  • Configured and hardened Vault with Consul as backend
  • End to end SSL encryption for communication between service -> vault , vault -> consul
  • Configuration of the policies and secrets,roles
  • Spring vault to load configuration based on the profile and roles

Java programming Spring Projects

Primary IDE used for the development of Java projects. Has impeccable support for the Spring framework and boot components.

VSCode

HTML Development Markdown files

VScode provides good support for HTML and CSS editing. Has also got some nice libraries that can be used for development.

Sublime

Log files Python Scripting

Sublime has good support for large files and I use it mainly for reading the flat files and logs. Also, python based scripts are supported easily in sublime.

FileZilla

SFTP

Supports connecting to different services using SFTP ( keys ) and user account. Also supports anonymous logins and has good resume capabilities and tab support.

MySQL Workbench

MySQL Database

Workbench allows configuring of different connections and supports connecting over SSL. Also support data extraction, import, export ,server administration.

Postman

REST API

Postman allows connecting to APIs using REST methods. This includes all the REST verbs and also supports different authentication methods. There is option so save requests also.

Virtualbox

Virtualization VMs

I use virtualbox to create different VMs which are used to run different services ( RabbitmQ,Hazelcast, Kafka, ElasticSearch). This also allows testing using HA.

Profiling Monitoring

JVisual VM provides comprehensive profiling information for memory and CPU usage for the Java applications. There are also visualization for the garbage collection.

Load Testing

JMeter is used for loading testing of the application and the REST API endpoints. Provides detailed information on the time taken, transactions per second etc.

Projects

I have done different projects in a variety of technologies over the course of my technology journey. It started with Visual Basic ( VB6) and later switched to Java AWT, Swing and now standing at highly scalable & distributed web applications using Spring and Scala.

I am also someone who has benefitted a lot from the open-source community.I believed that I also have a moral obligation to give something back to the community. As such, I have worked on couple of libraries and also maintains a technology block which provides tutorials on latest technology.

Airline LMS
Role:
Product Engg Lead
Domain:
Airline Loyalty
Technologies

  • Java Spring
  • Microservice based architecture
  • MySQL primary datastore
  • Elasticsearch, MongoDB for Analysis
  • RabbitMQ,Hazelcast
  • Jenkin & docker for deployments
  • AWS & GCP services in cloud

Project Details

  • Comprehensive airline loyalty system with CRM, Loyalty Rules,Tier upgrades, Redemptions and Partner Integration
  • Used by multiple LCCs & Fullservice carriers in Southeast asia
  • Integrated with booking engines ( Sabre, Navitaire)
  • Full booking flow integration with upgrades & point burning
  • Integrated with different services through API (REST / SOAP ), file based and Socket
  • Deployed in AWS & GCP with scalable design & architecture
  • AI driven chatbots, ML based analytics reporting
  • Handles hundreds of bookings with miles and integrated to different payment gateways
  • Designed realtime dashboards using ELK and custom events.
Retail LMS
Role:
Product Engg Lead
Domain:
Retail Loyalty
Technologies

  • Java Spring
  • Microservice based architecture
  • MySQL primary datastore
  • Elasticsearch, MongoDB for Analysis
  • RabbitMQ,Hazelcast
  • Jenkin & docker for deployments
  • AWS & GCP services in cloud
  • C# for POS Integration programs

Project Details

  • Designed and deployed and a scalable loyalty system used by different retail chains
  • Maintained as a SaaS model in the cloud ( AWS & GCP)
  • Handling the load for campaigns run by client with over 2 million customers
  • High throughput delivered for the on-demand redemptions by over 200 store locations per client
  • Deployed in AWS & GCP with scalable design & architecture
  • Designing integrations with various POS systems & gateways
  • Windows desktop access for stores using WPF ( C# ) application calling platform APIs
Telco LMS
Role:
Product Engg Lead
Domain:
Airline Loyalty
Technologies

  • Java Spring
  • Monolith core service
  • MSSQL primary datastore
  • Elasticsearch, MongoDB for Analysis
  • RabbitMQ,Hazelcast
  • Project Reactor
  • On-prem hosting using windows servers

Project Details

  • Complete loyalty platform for a southeast telco giant with over 80 million subscribers
  • Designed system with high throughput to handle over 20 millions records in batch earning
  • 75k redemptions per day on the platform
  • Integrated with over 20+ Telco services.
  • Handled over 1000/TPS from the realtime recharge system of telco and implemented near realtime rewards
  • Socket based CIMD2 integration for telco outbound and inbound SMS
  • SMPP based integration for updated outbound with gateway configuration and routing
Airline Catering System
Role:
Backend design & Mobile app
Domain:
Airline Catering
Technologies

  • Java Spring
  • Microservice based architecture
  • MySQL primary datastore
  • Elasticsearch ELK Stack
  • RabbitMQ,Redis
  • Jenkin & docker for deployments
  • On-prem hosted
  • Android mobile app for inflight offiline usage

Project Details

  • Provides catering planning solutions for catering team and offline mobile app for the airline crew inflight.
  • Modified the design of the existing system to handle scale
  • Base design of the mobile app for offline storage using SqlLite and system using bluetooth and hotspot among other devices
  • Offline payment integration
  • Designed integration with the Loyalty system to enable users to redeem the points offline
  • Caters to the airline operations round the clock with reliability and consistency

Mi-dialogue
Type:
Microservices Comm

Project Details

  • Set of Spring libraries that provides easy event based communication for microservices using different changes transparently.
  • Supports rabbitmq, redis,kafka,rsocket as channels
  • Library to replicate domain events from one service to another
  • Event emitting and subscription can be enabled with simple annotations (@SubscribeEvent, @PublishEvent)
  • Github:https://github.com/microideation/mi-dialogue
Microideation Blog
Type:
Technology Blog

Details

  • Have learned a lot of best practices, trips and tricks over the career. Wanted a platform to share this with the peers.
  • Self hosted a wordpress instance on a minimum GCP Vm instance and started blogging
  • Covers different techologies I am using , customizations and some random thoughts
  • Link:https://blog.microideation.com
Ubuntu customizations
Type:
Customization

Details

  • Have been an avid user for Ubuntu ever since I got introduced to the OS
  • I have done a lot of customizations to my system for easing my daily tasks
  • The customizations were covered in the blogs and the configuration files are hosted in Github
  • Includes customizations to VIM,conky,terminal,zsh etc.
  • Link:https://github.com/microideation/ubuntu-customization

Interests & More

Interests

  • Watching online series(Elementary, The Mentalist were top of my list)
  • Tech Podcasts
  • Exploring technologies that adds value to the organization and also that upskills my team.
  • Long drives on empty roads.
My thoughts on technology & programming
  • I don't believe that learning something for sake of interview sticks to your mind.
  • The things that you learn and explore out of a necessity to implement will be digested and understood with much ease.
  • There is a lot of difference between the theory and practicality in technology ( especially distributed systems)

Getting in touch

If you find my journey interesting and would like to have conversation started on technology, you can get me in touch on:






Disclaimer: All the logos used in here are the registered trademarks of the respective organizations.