Building a Kotlin Multiplatform SDK for Jar DigiGold: Lessons from the Trenches
One Codebase, Two Platforms, Zero Compromises: Our KMP Journey
Users Served
40M+
Transactions Per Day
3M+
Team Size (Tech)
100+
Throughput (RPS)
5K+
Building a Kotlin Multiplatform SDK for Jar DigiGold: Lessons from the Trenches
One Codebase, Two Platforms, Zero Compromises: Our KMP Journey
Inside Jar’s Digigold Architecture for Scale and Trust
How do you engineer a financial platform for massive scale? We go inside the Digigold stack to reveal the architectural principles—from our parallel processing engine to our multi-cloud resilience—that eliminate bottlenecks and guarantee trust.
Code Injection Risks in Evolving LLM Agents
As LLM agents gain the ability to generate and run code, they also expose new injection risks. This post explores how these attacks emerge in evolving agent ecosystems—and what can be done to mitigate them.
Boosting Jar’s Cold Start by 40%. Goodbye Janks, Hello Async NavGraph Inflation [Part-2]
It’s been a few months since we struck our first gold bar — our initial performance deep dive where we explored how Baseline Profiles, Startup Profiles, Metrics Manager, and more gave our app a serious performance lift. If you missed that, do yourself a favor and check it out here
Why We Chose Istio at Jar
About Jar At Jar, we aim to make saving effortless. Our app enables users to save money in 24K gold on a daily, weekly, or monthly basis. This not only fosters a daily savings habit but also allows users to invest in gold, benefiting from the appreciation in value over
Decoding Android's Main Dispatchers: A Comparative Look at Main vs. Main Immediate
In Android development, dispatchers play a crucial role in managing concurrency, particularly when working with coroutines. Among these, the main dispatcher is perhaps the most significant, as it handles code execution on the user interface (UI) or main thread of your application. However, there is more nuance than meets the
Automating Nightly Builds for Continuous Mobile App Health Monitoring
At Jar, we prioritize delivering a seamless and efficient mobile experience to our users. A critical part of achieving that goal is our nightly build system, which runs automated health checks across our mobile repositories every night at around 12 AM. This system ensures that both our Android and iOS
How JAR Embraced Cilium for Scalable, Secure Networking on EKS
Before diving deep into Cilium, let me give quick overview of Kubernetes Networking and the role of CNI Plugins. Kubernetes Networking and the Role of CNI Plugins Kubernetes, by design, abstracts away much of the underlying infrastructure to manage containers at scale. One of the most critical components of this
Boosting Performance: How We Optimized Startup Time for the Jar App by 45%
Imagine this: you’re excited to open your favorite savings app, JAR, but as soon as you tap the icon, you're greeted with a loading screen that feels just a little too long. Sound familiar? Now, picture this instead—lightning-fast startup, seamless transitions, and an app that’s
WebView Caching in Android: 30% Faster Loading
Local caching in WebView, using request interception, decreasing load times and improving app performance in poor network conditions.
Journey of Reducing Android App Size by 33% -
In the ever-evolving world of mobile app development, one key factor that significantly impacts user un-installs is the size of the app. A bloated app can lead to longer download times, more storage consumption, and ultimately, frustrated users. Recently, we embarked on a journey to reduce our app size from
A self-recovering ticketing system architecture to improve our Lending funnel conversion?
This is in the context of our Lending business, which consists of multiple steps among multiple interacting systems both internal, and external third party systems to process one successful loan, which we refer as lending system workflow internally. Sharing our learnings, and journey towards building our in-house ticketing system. Problem
Cohort-based A/B testing using Unleash and Redis
As a consumer internet company going through rapid growth, we face many challenges. Some of these challenges are ambiguous, and sometimes even contradictory to each other. Such as the challenge of building a robust backend to handle transaction processing at scale. We don’t want to lose a single transaction
Why at Jar we migrated our business logics to Drools?
Managing complex business logic and rules can be challenging in software development and becomes hard to maintain as the complexity increases. This is where Drools comes in.