Skip to the content.

💡 Technical Innovation & Growth

Sections 11-15 from the original journey • Advanced Systems & Innovation

11

💡 Innovation in Notification Reliability

The pull notifications experiment from my internship days evolved into a comprehensive solution for notification reliability. Modern mobile operating systems are increasingly aggressive about limiting background processing, meaning traditional push notifications sometimes fail to reach users even when their devices are online.

I designed and implemented a sophisticated system to handle this challenge. Background workers on Android and BGAppRefreshTasks on iOS would periodically refresh device tokens and check for missed notifications. When the app couldn't run these background tasks, we would send silent push notifications to trigger the refresh process.

The backend component I built could scan our Aerospike database for tokens that hadn't been refreshed recently, identify users who might have missed notifications, and intelligently send silent pushes to wake up their apps. The system was capable of processing 230,000 events per minute while making complex decisions about user behavior patterns and notification delivery success rates.

📱
Android Workers
🍎
iOS BGAppRefresh
🔔
Silent Push
⚡ Performance: 230,000 events per minute with intelligent user behavior pattern analysis
12

🔧 Problem-Solving & Issue Resolution

Not every challenge was about building new systems. A significant part of my role involved diagnosing and resolving critical issues that could impact client functionality. Here are a couple of examples:

📱
Android Compatibility Issue

When a client upgraded their Google Ads Identifier library to version 18.2.0, Android 7 devices started crashing. The investigation revealed that the newer library was using Java 8 APIs like `java.time.Duration` that didn't exist on older Android versions. I provided solutions including core library desugaring and documented the process for future reference.

🌐
Arabic Text Encoding Issue

We encountered a problem where Arabic text was being displayed as gibberish to users. The issue stemmed from a change in the format that clients were sending Arabic text, and our decoding logic wasn't handling the new format properly. I fixed the decoding implementation to work robustly across different text formats, ensuring proper display of Arabic content.

🎯 Impact: These are just two issues I remember from the many bugs and technical challenges I've diagnosed and resolved throughout my time at the company.
13

🏗️ The Infrastructure Behind the Code

Throughout this journey, I was also learning the operational side of software development. I dockerized applications, managed Kubernetes deployments through Devtron, and maintained the complex web of services that kept everything running. Setting up monitoring with Prometheus and Grafana, optimizing Aerospike queries with User Defined Functions, and managing certificate rotations for FCM and APNS might not be glamorous work, but it's the foundation that allows the exciting features to actually function reliably.

🐳
Devtron - K8s
📊
Prometheus
🗄️
Aerospike
14

🛡️ Security Hardening and Trust

Working with financial services clients meant that security couldn't be an afterthought. I implemented certificate pinning for iOS SDK API calls by building a backend service that returns encrypted certificates to the SDK, allowing the SDK to retrieve and pin certificates on every app start for secure API communication. These weren't just technical requirements – they were about building systems that clients could trust with their most sensitive communications.

📌
Certificate Pinning
🛡️
Access Controls
15

🌟 Looking Forward: From Journey to Destination

As I reflect on this journey from intern to full-time engineer, what strikes me most is how each challenge built upon the previous ones. The debugging skills I learned during on-call rotations helped me optimize performance bottlenecks. The cross-platform SDK work prepared me for thinking about system architecture. The infrastructure improvements taught me to think beyond just writing code to understanding the complete operational picture.

I've gone from someone who needed tutorials to understand Spring Boot to someone who can design and implement systems that handle hundreds of thousands of events per minute. I've learned to balance the demands of high-performance systems with the reliability requirements of financial services. I've experienced the satisfaction of both finding critical bugs and building entirely new capabilities.

But perhaps most importantly, I've learned that great engineering isn't just about writing clever code – it's about understanding problems deeply, designing sustainable solutions, and building systems that other people can depend on. Every notification that reaches a user's device, every system that stays up during peak traffic, every bug that gets fixed before it impacts production – these are the real measures of success.

The journey continues, and I'm ready for whatever challenges come next.

📊 Technical Achievements Summary

30x Performance

From 5K to 150K+ notifications/min

🔧

Problem Solver

Complex debugging & issue resolution

🏗️

Complete Rebuild

Node.js to Java Spring Boot

🛠️ Core Technologies Mastered

Full-Stack Technology Expertise

Backend

Java Spring Boot, Node.js, Microservices Architecture

Infrastructure

devtrons- k8s, AWS (EC2, Lambda, Secrets, Load Balancers etc)

Data & Messaging

Kafka, MySQL, Aerospike

Monitoring

Prometheus, Grafana, Elastic Search, Monit


Complete Journey Navigation

Explore the full story of growth and transformation

← Back to Home 🚀 Full-Time Journey 📊 Back to Overview