Skip to content

Custom Software & Mobile Development

Engineering native, offline-first Android applications, secure local databases, and enterprise data ingestion tools. I build software designed for reliability under field conditions.

Native Android SDK & Kotlin Development
Offline-First Architecture & Background Sync
SQLCipher & Room Local Encrypted Databases
Secure Key Envelopes via Android Keystore
Local OCR & Image Parsing (Google ML Kit)
High-Performance Bilateral Netting Algorithms
Core Track Record

4+ Years

Building systems

Collaboration Mode

Remote + Onsite (Guwahati Area)

Clean Architecture Setup → Local Keystore Hardening → Release Deployment

Platforms Used
KotlinAndroid SDKJetpack ComposeSQLDelight

Optimization Summary

Summary: Many mobile apps drain battery, freeze on low-end devices, or fail to sync data when connections drop. I build systems to prevent these failures.

Common Obstacle

The mobile app crashes or freezes on low-end, 2GB RAM field devices.

Engineering Resolution

I write clean native Kotlin code utilizing Android SDK, profile memory leaks, and schedule background sync tasks using WorkManager to prevent UI thread blocking.

Common Obstacle

Data is lost when field agents drop connection in remote villages.

Engineering Resolution

I implement offline-first architecture using Room DB or SQLDelight. All captured entries, coordinates, and photos are saved locally, and sync automatically when Wi-Fi is restored.

Common Obstacle

Sensitive user details and statements are stored in cleartext.

Engineering Resolution

I configure SQLite databases encrypted with SQLCipher. I secure keys using the hardware-backed Android Keystore, wrapping access in biometric authentication prompts.

Common Obstacle

Photo compression degrades image details needed for verification.

Engineering Resolution

I configure custom CameraX setups, applying non-destructive resizing to document and meter photos, keeping file sizes small while preserving readability.

Is This Service Right For You?

Summary: I build robust, native Android software designed to process large datasets, run complex local operations, and operate in areas with poor internet connection.

Utility & Enterprise Teams

Companies needing to deploy mobile apps to field agents (like the Consumer Indexing App indexing 6.4M consumers) operating in remote areas under harsh connectivity constraints.

Privacy-Conscious Organizations

Businesses building financial trackers or document handlers (like FYRA Finance) that require strict local data protection, SQLite encryption, and biometrics.

Renewable Energy & Infrastructure Projects

Teams registering rooftop installations or field nodes requiring precise GPS coordinates, geotagged photos (via CameraX), and automatic offline queues.

Startups Launching Mobile-First MVPs

Founders seeking a clean MVI architecture in Jetpack Compose to deploy native apps built on standard codebase conventions.

Typical Custom Software Deliverables

Summary: You receive clean, build-ready native code repositories with zero proprietary licensing.

Software

Kotlin Android Git Repository

Native Android project codebase organized under clean Clean Architecture boundaries, utilizing Jetpack Compose for the layout.

Package

Signed Release APK & AAB Packages

Production-ready Android App Bundle (AAB) packages ready to upload to Google Play, alongside APKs for local sideloading.

Database

SQL Schema & Database Setup Scripts

Fully typed SQLDelight schema files and database migrations structured for local and remote synchronization.

Security

Security Configuration Profiles

Guidelines detailing the Android Keystore wrapping keys, Network Security Configs for domain whitelisting, and encryption details.

Documentation

User Manual & API Specs

Clear Markdown guidelines detailing offline queuing mechanics, local database structures, and synchronization protocols.

Specialized Building Areas

Summary: I write native code designed to process telemetry, compile local databases, and secure private records.

Enterprise Android Field Utilities

Scale mobile indexing. I engineer native Kotlin field apps (such as the Consumer Indexing App) designed to generate QR IDs, capture documents, log GPS markers, and synchronize millions of records over poor networks.

Client-Side Cryptographic Sandboxes

Secure local ledgers. I build offline-first mobile databases using SQLCipher and Android Keystore AES-GCM envelopes, ensuring files are protected from direct physical extraction.

Bilateral Netting & Social Ledger Engines

Algorithmic accounting. I design double-entry bookkeeping modules implementing netting algorithms (similar to FYRA split netting) to minimize overlapping transaction vectors.

Technical Stack & Platform Coverage

Summary: I build software using native Android frameworks and secure databases.

Android Core

Kotlin SDK / JavaJetpack Compose (Modern UI)Coroutines / Flow (Reactive Streams)ViewModel / LiveData

Database & Security

SQLDelight / Room DBSQLCipher (AES-256 DB Encryption)Android Keystore (Key Envelopes)Biometric Prompt SDK

Local Processing & Hardware

Google ML Kit (Local OCR / Barcodes)CameraX API (Optimized Camera)Android Location Services (GPS)WorkManager (Sync queues)

API & Backend Sync

Retrofit2 / OkHttp3Firebase Auth & SyncREST APIs / JSON payloadsZod Schema validation
Related Technologies:KotlinAndroid SDKJetpack ComposeSQLCipherAndroid KeystoreML Kit
Deep Technical Documentation

Engineering Notes & Tradeoffs

Detailed Technical Deep Dive: Custom Software & Android Development

Summary: This document outlines Jishnu Mahanta's architectural approach to constructing native Android utility applications, encrypting client-side databases, and engineering robust offline-first synchronization loops.

1. SQLite Database Encryption (SQLCipher & Android Keystore)

In native mobile development, client-side data protection is critical. Storing sensitive customer profiles, financial balances, or local scan logs in cleartext SQLite databases invites reverse-engineering exploits. I harden local databases by applying SQLCipher (AES-256 database encryption) and securing keys using the hardware-backed Android Keystore.

Hardware-Backed Key Storage

Saving database keys directly in cleartext XML SharedPreferences is a common security failure. Instead, I generate a random 256-bit AES key, wrap it inside an encryption envelope using the Android Keystore's MasterKey (stored inside secure hardware enclave chips), and decrypt it only during database instantiation.

Below is the Kotlin pattern I implement using SQLCipher to initialize secure, encrypted databases inside native Android systems:

import android.content.Context
import androidx.room.Room
import androidx.room.RoomDatabase
import net.sqlcipher.database.SQLiteDatabase
import net.sqlcipher.database.SupportFactory

fun getEncryptedDatabase(context: Context, dbKey: ByteArray): MyDatabase {
    // Generate a SupportFactory with the raw byte key retrieved from the Keystore envelope
    const val DB_NAME = "secure_local_ledger.db"
    val factory = SupportFactory(dbKey)
    
    // Load SQLCipher libraries into memory
    SQLiteDatabase.loadLibs(context)
    
    return Room.databaseBuilder(
        context.applicationContext,
        MyDatabase::class.java,
        DB_NAME
    )
    .openHelperFactory(factory) // Enforce SQLCipher database encryption
    .build()
}

Biometric Lock Binding

For high-security applications (like FYRA Finance), configure Keystore parameters to require active user biometric authentication (setUserAuthenticationRequired(true)) before keys can be retrieved to open the database.


2. Offline-First Architecture & WorkManager Synchronization

Field agents operating mobile apps in remote regions of Assam frequently drop connectivity. To prevent user flow interruption or data loss, I deploy an offline-first local database design combined with transactional sync queues managed via Android's WorkManager.

Blocking Main Threads with Network Calls

A common mistake is attempting to upload data directly on the main UI thread during form submission. If the network is slow, the interface freezes, triggering Application Not Responding (ANR) warnings. Always save data to the local DB immediately, delegating uploads to background workers.

The Offline-First Data Lifecycle:

  1. User Action: The agent captures KYC data and GPS coordinates.
  2. Local Commit: The data is instantly written to the local encrypted SQLite DB using Coroutines. The UI updates instantly.
  3. Queue Registration: A sync request is logged inside the Room DB with a status of PENDING.
  4. WorkManager Trigger: WorkManager starts a background sync worker. The task is configured with strict constraints (e.g. network connected, battery not low).
  5. Auto-Retry: If the upload fails due to network drops, WorkManager schedules a retry using exponential backoff.
import android.content.Context
import androidx.work.*
import java.util.concurrent.TimeUnit

fun scheduleDatabaseSync(context: Context) {
    // Define constraints: Sync only when internet is connected
    val constraints = Constraints.Builder()
        .setRequiredNetworkType(NetworkType.CONNECTED)
        .build()

    // Create a one-time work request with exponential backoff retries
    val syncRequest = OneTimeWorkRequestBuilder<DatabaseSyncWorker>()
        .setConstraints(constraints)
        .setBackoffCriteria(
            BackoffPolicy.EXPONENTIAL,
            OneTimeWorkRequest.MIN_BACKOFF_MILLIS,
            TimeUnit.MILLISECONDS
        )
        .build()

    // Enqueue the work as unique, preventing duplicate sync queues
    WorkManager.getInstance(context).enqueueUniqueWork(
        "unique_db_sync_job",
        ExistingWorkPolicy.REPLACE,
        syncRequest
    )
}

Consumer Indexing App Scale

During the development of the Consumer Indexing App, field agents had to log GPS coordinates and meter photos for millions of consumers across Assam under poor network coverage. By implementing a native Room DB offline queue, agents could work seamlessly offline. The app synced over 6.4 million consumer entries without a single database crash or record loss.


3. Native Hardware Integration (CameraX & GPS)

To capture verifiable field records (such as solar panel rooftops locations), apps must interface directly with native hardware sensors:

  • CameraX API: I configure camera inputs to automatically control exposure, crop photos to target aspect ratios, and optimize compression to keep files small (sub-500KB) while preserving legibility.
  • Geofenced GPS Mapping: I hook into Android Location Services, applying location filters to verify that GPS coordinates represent physical site coordinates within ±5 meters before unlocking forms.

My Custom Software Process

Summary: I develop custom software through incremental, structured phases, ensuring data pipelines are validated before release.

01. Architecture Outline

Structuring Clean Code Boundaries

Phase 1 of 9

We define requirements. I establish a Clean Architecture blueprint: dividing logic into data, domain, and presentation layers to keep components decoupled.

Featured Project Deliverables

Dynamic projects fetched from the portfolio database demonstrating execution.

Android app
Android
6.4M consumersQR code generation

Consumer Indexing App

Android app for 6.4M consumer KYC & QR code generation

KotlinAndroid SDKFirebaseRoom DB

Android Developer

View Details →
Solar panels
Android
GPS mappingPhoto documentation

Solar Rooftop Registration App

Android app with GPS mapping for solar installations

KotlinAndroid SDKGPS APIFirebase

Android Developer

View Details →
FYRA Finance Private Ledger - Showcase Mockup Presentation
Android
Engine Security Protocol: Client-Side AES-GCM EncapsulationDatabase Repository: Jetpack Room / SQLDelight encrypted core

FYRA Finance

A Private, Offline-First Double-Entry Ledger System

KotlinJetpack ComposeSQLDelightSQLCipher

Android & Security Engineer

View Details →

Why Hire a Native Android Software Engineer?

Summary: Cross-platform templates freeze on low-end devices and struggle to run background tasks cleanly. I write native Kotlin code built for performance.

Integration FactorMy Software EngineeringTypical Cross-Platform Developer
Memory & Battery Performance✓ Native Kotlin code optimized for low-end (2GB RAM) devices.❌ High memory footprint; hybrid apps freeze under load.
Offline Synchronization✓ Background sync syncs data when network returns.⚠️ Vulnerable to data loss; simple offline storage models.
Local Database Security✓ SQLite files encrypted with SQLCipher and secured by Keystore.❌ Stores user credentials in cleartext Shared Preferences.
Native Hardware Integration✓ Direct access to CameraX, GPS location, and biometrics.⚠️ Relies on buggy plugins that lag under multi-task operations.

Coverage Area & Physical Location

Summary: In Guwahati, I provide local database optimization diagnostics, on-site APK profiling, cryptographic keystore audits, and face-to-face system architecture consulting.

On-site Delivery Areas

Guwahati
Jorhat
Dibrugarh
Silchar
Nagaon
Tezpur
Tinsukia
Sivasagar
Golaghat
Barpeta
North Lakhimpur
Bongaigaon
Dhubri
Kokrajhar
Hailakandi
Karimganj

Remote Collaboration

For clients across other major Indian tech hubs (Bengaluru, Hyderabad, Pune, Chennai, Mumbai, Delhi NCR) and global locations (US, Canada, UK, Australia, Germany, Singapore), I provide remote development via GitHub, secure staging environment deployment, and remote database sync orchestration.

Base: Guwahati, Assam, IndiaGSC Verified

Deep Technical Guides & Software Resources

Summary: Read my engineering notes on native mobile performance and encryption.

9 min read

Securing SQLite Databases with SQLCipher and Android Keystore

How to wrap database credentials in cryptographic envelopes and require biometric triggers to decrypt.

8 min read

Designing Robust Offline-First Apps with Room DB and WorkManager

Code configurations detailing queue retries and handling network drops during bulk uploads.

10 min read

Optimizing CameraX and ML Kit for Local OCR Processing on Low-End Devices

How to configure camera parameters to parse invoices and text strings without consuming excessive RAM.

Frequently Asked Questions

Structured query answers targeting specific informational searches.

Clean Architecture is a design pattern that isolates business logic from UI frameworks and databases. This makes the codebase modular and easy to maintain or refactor.
Yes. The app caches all data, coordinates, and images inside a local encrypted SQLite database, and syncs automatically when connection returns.
I encrypt the database files using SQLCipher. The encryption key is secured inside the Android Keystore, wrapped in hardware-backed envelopes.
Yes, I help set up your developer console, upload app bundles, set up privacy policies, and submit the app for review.

Let's Engineer Your Mobile Solution

Ready to deploy a native Android application built for offline stability, secure data logs, and performance? Let's discuss your system requirements.

FyraAsk anything