Senior Software Engineer - Frontend / Mobile
Description
About Ditto
At Ditto, we're redefining digital trust.
Our unified identity and authentication platform helps banks, financial institutions, governments and other regulated organisations verify identities, prevent fraud and deliver secure digital experiences. Through deterministic identity verification, secure multi-factor authentication and frictionless user experiences, we help enterprise clients protect their digital interactions across multiple channels.
As part of Uniken India (Ditto), you'll be contributing to the development of innovative cybersecurity and fintech solutions that make digital interactions safer, more secure and more accessible.
We're building a team of talented engineers who enjoy solving complex technical challenges, thinking creatively and developing high-performance software that makes a real difference.
The Role
We're looking for an experienced Senior Software Engineer to architect and develop core frontend and mobile systems for our fintech platform.
This is a hands-on technical role where you'll take ownership of designing and building robust, scalable and secure software components, with a strong focus on performance, reliability and cross-platform compatibility.
You'll bring deep expertise in native Android and iOS development, alongside strong knowledge of C/C++, software architecture, multithreading and cryptographic operations. You'll work across macOS and Android environments, developing high-performance systems and reusable libraries that support our core platform.
Beyond development, you'll contribute to architectural decisions, establish engineering best practices, review code and mentor junior developers. You'll also work closely with product managers and other stakeholders to translate technical requirements into reliable software solutions.
We're looking for someone who combines strong engineering fundamentals with a practical, problem-solving mindset and an interest in using modern AI tools and LLMs to improve the way software is developed.
Where You'll Make an Impact
In this role, you'll:
- Own software architecture and design. Design and architect core software components and libraries, create technical specifications and system design documents, and ensure solutions are scalable, secure and maintainable.
- Lead development and implementation. Develop high-performance frontend systems and reusable software libraries, with a focus on reliability, efficiency and quality.
- Drive cross-platform development. Build and maintain solutions across Android and macOS environments, ensuring compatibility and consistent performance.
- Implement secure cryptographic operations. Develop and integrate encryption, decryption, hashing, digital signatures and other security mechanisms to protect financial transactions and sensitive information.
- Champion engineering quality. Conduct comprehensive code reviews, maintain coding standards and promote clean, maintainable and well-documented code.
- Improve performance and reliability. Profile applications, identify bottlenecks, optimise memory usage and resolve complex technical issues involving concurrency, multithreading and system performance.
- Build robust testing practices. Implement and maintain automated testing frameworks, including unit and integration testing, and promote test-driven development.
- Ensure security and compliance. Apply appropriate security practices and ensure software meets relevant financial industry security standards.
- Provide technical leadership. Mentor junior developers, share knowledge and provide technical guidance to support the development team's growth.
- Collaborate across teams. Work closely with product managers and other stakeholders to understand technical requirements, evaluate solutions and deliver against product objectives.
- Contribute to engineering best practices. Participate in agile development processes, sprint planning, technical documentation and continuous improvement initiatives.
- Embrace AI-assisted development. Use LLMs and modern AI coding tools, including Claude, Cursor, Gemini and ChatGPT, for prompt engineering, coding, debugging, refactoring and test generation.
Who You Are
You're someone who:
- Thinks like an engineer. You enjoy understanding complex systems, solving difficult technical problems and building solutions that are reliable, scalable and maintainable.
- Takes ownership. You can independently drive technical decisions, take responsibility for your work and see complex engineering tasks through to completion.
- Has strong architectural thinking. You understand how to design software systems, evaluate technical trade-offs and apply the right design patterns to solve problems.
- Is passionate about quality. You care about clean code, performance, security, testing and building software that stands the test of time.
- Is a natural problem-solver. You're comfortable debugging complex issues, investigating root causes and finding practical solutions.
- Enjoys collaboration. You work effectively with developers, product managers and cross-functional teams, sharing knowledge and contributing to collective success.
- Is a strong communicator. You can explain technical concepts clearly, contribute to technical discussions and document your work effectively.
- Is curious and continuously learning. You keep up with emerging technologies, explore new approaches and look for opportunities to improve how software is built.
- Embraces AI. You're comfortable using LLMs and AI-powered development tools to improve productivity, accelerate development and raise the quality of your output.
What We're Looking For
Ideally, you'll bring:
- 8+ years of professional software development experience, with strong hands-on expertise in native Android and iOS development.
- Strong Android development skills, including Kotlin and Java.
- Strong iOS development skills, including Swift and Objective-C.
- Expert knowledge of GoF design patterns, including Singleton, Factory, Observer, Strategy and other commonly used patterns.
- Solid C/C++ expertise, including native development, memory management, debugging and reusable library development.
- Experience with native platform integration, including Android NDK/JNI, Objective-C++, bridging headers, static libraries and XCFrameworks.
- Strong mobile architecture knowledge, including MVVM, Clean Architecture, modularisation, design patterns and code refactoring.
- Experience with networking and APIs, including REST APIs, JSON, SSL/TLS, mTLS and third-party SDK integration.
- Strong testing and quality practices, including unit testing, integration testing, TDD, code reviews and static analysis.
- Experience with build systems and version control, including Git, SVN, Gradle, CMake, Make and CI/CD.
- Familiarity with development and debugging tools, including Android Studio, Xcode, GDB, LLDB, Jira and Confluence.
- Advanced multithreading and concurrency knowledge, including thread synchronisation, mutexes, condition variables and atomic operations.
- Strong object-oriented programming fundamentals, including inheritance, polymorphism, encapsulation and abstraction.
- Hands-on cryptographic experience, including encryption and decryption, hashing algorithms, digital signatures, PKI, Android Keystore and iOS Keychain/Secure Enclave.
- Cross-platform development experience, particularly across Android and macOS environments.
- Strong debugging and performance optimisation skills, including memory profiling, leak detection, performance tuning and tools such as GDB, Valgrind and Address Sanitizer.
- Advanced Git knowledge, including branching strategies, code review processes and collaborative development workflows.
- Practical experience with LLMs and AI development tools, including prompt engineering, coding, debugging, refactoring and automated test generation using tools such as Claude, Cursor, Gemini or ChatGPT.
Bonus Points
It would be great if you also have:
- Experience with scripting languages such as Python, PowerShell or Bash.
- Familiarity with web technologies, including REST APIs, JSON and XML.
- Exposure to cloud platforms such as AWS, Azure or Google Cloud.
- Knowledge of DevOps technologies, including Docker, Kubernetes and Infrastructure as Code.
- Experience with Flutter or React Native.
- Familiarity with Firebase, HTML, CSS and JavaScript.
- Experience with mobile application publishing and release processes.
- Additional experience with JNI and native platform integrations.
- Knowledge of the financial services or fintech domain.
- Experience with advanced development tooling, observability and CI/CD practices.
What Success Looks Like
In this role, you'll:
- Deliver high-quality software. Design and develop robust, secure and high-performance software components that meet the platform's technical and product requirements.
- Build scalable architecture. Establish sound architectural foundations and reusable libraries that support maintainability, performance and future development.
- Strengthen engineering standards. Promote clean code, comprehensive testing, effective code reviews and consistent development practices.
- Improve system performance. Identify and resolve complex technical issues, optimise memory management and ensure efficient multithreaded execution.
- Contribute to platform security. Implement reliable cryptographic operations and security practices that protect sensitive financial transactions and customer data.
- Support the wider engineering team. Provide technical guidance, mentor junior developers and collaborate effectively with product and development stakeholders.
- Drive continuous improvement. Explore new technologies, development approaches and AI-assisted tools to improve engineering productivity and software quality.
Why Join Ditto
Join a team working on innovative cybersecurity and fintech solutions that help organisations deliver secure digital experiences.
You'll have the opportunity to work on technically challenging projects, develop cutting-edge software components and contribute to products that address real-world identity and security challenges.
We value technical excellence, collaboration and continuous learning, giving our engineers the opportunity to take ownership, share ideas, develop their expertise and make a meaningful contribution to the platform.
Location & Ways of Working
- Location: Pune, Maharashtra, India - Hybrid working
- Employment type: Full-time, Permanent
- Position: Senior Software Engineer
- Reporting to: Principal Engineer / Architect
Our Commitment to Inclusion
We're committed to building an inclusive workplace where everyone feels valued and supported. We welcome applications from people of all backgrounds, experiences and identities.
If you're excited about this role but don't meet every requirement, we'd still love to hear from you. If you need any adjustments during the recruitment process, let us know—we're happy to help.
Skills
- Agile
- AI
- Android
- API
- Authentication
- AWS
- Azure
- Bash
- ChatGPT
- CI/CD
- Clean Architecture
- Cloud
- CMake
- Confluence
- C++
- CSS
- Cybersecurity
- Design Patterns
- DevOps
- Docker
- Fintech
- Firebase
- Flutter
- GCP
- GDB
- Git
- Gradle
- HTML
- Infrastructure as Code
- Integration Testing
- iOS
- Java
- JavaScript
- Jira
- JSON
- Kotlin
- Kubernetes
- LLM
- macOS
- Multithreading
- MVVM
- Networking
- Objective-C
- Observability
- OOP
- PKI
- PowerShell
- Prompt Engineering
- Python
- React
- React Native
- REST
- SSL
- SVN
- Swift
- TDD
- Test Automation
- TLS
- Unit Testing
- Version Control
- Xcode
- XML