Vishva Mahadevan

Vishva Mahadevan

Software Developer

Hey, I'm Vishva Mahadevan, a passionate Software Engineer. Welcome to my personal space on the web!

ToolsBookmarks

Software Developer at Gupshup

- 7/1/2024Bangalore, India

Role Overview

As a Software Developer at Gupshup, I gained comprehensive full-stack experience across authentication systems, database development, and platform engineering. This role marked the beginning of my professional tech career, providing exposure to diverse technologies and challenging projects.

Key Achievements

  • Spearheaded authentication migration project to Okta using JAX-RS and Java
  • Built a custom key-value database from scratch, including performance benchmarking against Cassandra, Aerospike, and RocksDB
  • Implemented Kubernetes workload management system and successfully migrated services from Docker to Kubernetes
  • Utilized monitoring tools like iostat for database performance optimization
  • Designed and implemented an Akka actor-based system for container orchestration, replacing legacy Apache Camel implementation
  • Enhanced inter-service communication and routing patterns using the actor model

Technologies Used

  • Backend: Java, Spring Boot, Spring Security, JAX-RS
  • Database: Custom Key-Value Store, Cassandra, Aerospike, RocksDB
  • DevOps: Kubernetes, Docker, Kubernetes Java Client
  • Tools: iostat, monitoring tools
  • API: REST APIs
  • Orchestration: Akka Actor System, Apache Camel (migration)

Project Impact

Starting as a platform engineering initiative, my journey at Gupshup evolved into building robust, scalable systems. The migration to an actor-based system for container orchestration significantly improved system reliability and maintainability, while providing more granular control over container management and inter-service communication.

A Roller Coaster Ride Through Tech: My Journey at Gupshup

Two years at Gupshup felt like riding a technology roller coaster - thrilling, challenging, and packed with unexpected turns. From diving deep into authentication systems to building databases from scratch and finally soaring into the cloud with Kubernetes, each phase brought its own set of excitement and learning opportunities.

The First Drop: Authentication Adventures

My journey began with a plunge into enterprise authentication. Tasked with migrating our existing system to Okta, I found myself wrestling with JAX-RS and Java intricacies. While the project eventually took a different direction due to security considerations, it taught me valuable lessons about enterprise-level security decisions and the importance of thorough system evaluation.

The Loop: Building a Database from Ground Zero

Just as I was getting comfortable, the track twisted into something completely unexpected - building a custom key-value database from scratch. This wasn't just about writing code; it was about understanding the very foundations of data storage systems.

The project was a deep dive into:

  • Database internals and storage mechanisms
  • Performance optimization using iostat and other monitoring tools
  • Real-world benchmarking against giants like Cassandra, Aerospike, and RocksDB
  • Understanding read/write patterns and their implications

This phase was like being in a continuous loop of learning, testing, and optimization. Each day brought new challenges about data structures, disk I/O, and performance tuning.

The High-Speed Turn: Platform Engineering

Just when I thought I had experienced it all, the track shot upward into the cloud - literally. Moving into platform engineering opened up a whole new vista of container orchestration and cloud-native technologies.

I found myself:

  • Managing Kubernetes workloads with precision
  • Mastering the Kubernetes Java client
  • Orchestrating the migration from Docker to Kubernetes
  • Building robust REST APIs with Spring Boot and Spring Security

The platform engineering phase was like reaching the highest point of the roller coaster, where I could see how all the previous experiences connected and made sense in the bigger picture.

The Grand Finale: Actor-Based Orchestration

The roller coaster had one final, exhilarating turn in store. In the last stretch, I took on the challenge of revolutionizing our container orchestration system by implementing an Akka actor-based architecture. This wasn't just a simple system update - it was a complete paradigm shift from our existing Apache Camel implementation.

The actor model brought several game-changing advantages:

  • More granular control over container orchestration
  • Improved routing capabilities between services
  • Better handling of inter-service communication
  • Enhanced system resilience and fault tolerance

This migration was like upgrading the roller coaster's entire control system - making it smoother, more reliable, and more maintainable. It demonstrated how modern architectural patterns could solve complex orchestration challenges in a more elegant way.

Engineering Thrills and Lessons Learned

Looking back at this technical adventure, several key insights stand out:

  1. Embrace the Unexpected: Technology stacks can change rapidly - adaptability is your safety harness. When our authentication project took an unexpected turn, it led to even more exciting opportunities.

  2. Trust the Process: Like a roller coaster's safety checks, thorough testing and monitoring are non-negotiable. Building a database from scratch taught me the value of meticulous validation and performance testing.

  3. Keep Learning: Each twist and turn in the track is an opportunity to learn something new. The transition from traditional deployments to Kubernetes, and then to actor-based systems, constantly pushed my technical boundaries.

  4. Stay Curious: Understanding why something works is just as important as knowing how to use it. This curiosity drove me to explore the depths of database internals and distributed systems.

The Journey Continues

What made this journey special wasn't just the technical challenges - it was how each phase pushed me out of my comfort zone. From authentication to databases to Kubernetes, and finally to actor-based systems, each transition was like switching tracks on the roller coaster - scary at first, but exhilarating once you get into it.

The beauty of working at Gupshup was that it wasn't just about using technologies - it was about understanding them deeply, building things from scratch, and seeing them through to production. Each project was a new adventure, a new track to master.

Would I ride this roller coaster again? Absolutely! Because in the world of technology, the most exciting rides are the ones that challenge you, teach you, and help you grow. And Gupshup definitely provided one hell of a ride, culminating in the implementation of a sophisticated actor-based system that transformed our container orchestration capabilities.