The Digital S/W Engineer Sr Analyst is a seasoned professional role. Applies
in-depth disciplinary knowledge, contributing to the development of new
techniques and the improvement of processes and work-flow for the area or
function. Integrates subject matter and industry expertise within a defined
area. Requires in-depth understanding of how areas collectively integrate
within the sub-function as well as coordinate and contribute to the objectives
of the function and overall business. Evaluates moderately complex and
variable issues with substantial potential impact, where development of an
approach/taking of an action involves weighing various alternatives and
balancing potentially conflicting situations using multiple sources of
information. Requires good analytical skills in order to filter, prioritize
and validate potentially complex and dynamic material from multiple sources.
Strong communication and diplomacy skills are required. Regularly assumes
informal/formal leadership role within teams. Involved in coaching and
training of new recruits’ Significant impact in terms of project size,
geography, etc. by influencing decisions through advice, counsel and/or
facilitating services to others in area of specialization. Work and
performance of all teams in the area are directly affected by the performance
of the individual.
Responsibilities:
-
Accountable for executing and driving mid-size feature application design
and development efforts to completion, serving as a development lead on
medium-scale projects and supporting the execution of larger efforts.
-
Proficient at operating with considerable autonomy and discretion as you
will significantly influence the way an application is designed and
developed by providing subject specific expertise and an advanced level of
understanding of application programming principles.
-
Sought after due to ability to analyze and troubleshoot coding,
application performance and design challenges.
-
Capable of research in root cause of development and performance concerns
as well as the resolution of defects.
-
Have a deep understanding of the technical requirements for the solutions
being built.
-
Understand engineering needs including those required to build, maintain,
and operate the system through all phases of its life.
-
Proficient in information modeling, data structures and algorithms.
-
Understand maintenance characteristics, runtime properties and
dependencies that exist in support of your system’s software. These
dependencies will include but not limited to: hardware, platform,
operating system, performance and load requirements, as well as
contingencies with upstream and downstream systems.
-
Demonstrate an advanced understanding of supported main system flows and
possess a comprehensive understanding of how the system and others (i.e.
architecture or infrastructure) collectively integrate to contribute
towards achieving business objectives. Using this expertise, assist with
the development of standards for coding, testing, debugging and
implementation. This will ensure application design adheres to the overall
architecture blueprint.
-
Participate in design discussions as a Development Lead and as such will
play the part of a key decision maker in driving design decisions. This is
evidenced by your knowledge of the application code details and your
experience with the technology and teams engaged.
-
Work with limited guidance, seeking guidance only as needed as the
development and delivery strategy is defined; the design is not.
-
Exhibit the ability to turn complex application design into a well written
application.
-
Partner with industry vendors that provide technology or user experience
design components that support our Digital architecture and work with
vendors on our implementation plans and roadmaps identifying partnership
opportunities to increase our development velocity and our learnings.
-
Participates in the full development life cycle, identify dependencies
between agile and waterfall delivery, working within broadly defined
parameters, including test plan execution and software quality needs
-
Directly impact the business by influencing strategic functional decisions
through advice, counsel or provided services. This will require persuading
and influencing others through strong and comprehensive communication and
diplomacy skills.
-
Communicate progress, anticipate bottlenecks, provide escalation
management, identify, assess, track and mitigate issues/risks at multiple
levels.
-
Recognize discordant views and take part in constructive dialog to resolve
them.
-
Work across teams to optimize processes.
-
Regularly review metrics and proactively seek out new and improved
mechanisms for visibility ensuring your program stays aligned with
organization objectives.
-
Continuously assess development processes, test plans, and operations.
-
Work with teams to improve concurrent project delivery.
-
Streamline and / or eliminate excess process in any area of architecture,
build, delivery, production operations environment, or business area where
the same efforts (or issues) are repeated year-over-year.
-
Share knowledge with the team in various forums (brown bags, engineering
forums etc.) and demonstrate a higher level of knowledge through industry
certifications
-
Appropriately assess risk when business decisions are made, demonstrating
particular consideration for the firm's reputation and safeguarding
Citigroup, its clients and assets, by driving compliance with applicable
laws, rules and regulations, adhering to Policy, applying sound ethical
judgment regarding personal behavior, conduct and business practices, and
escalating, managing and reporting control issues with transparency.
Recommended Qualifications
-
5+ years of professional experience in native mobile application
development
-
5+ years of hands-on experience with
Kotlin
(strong preference for Kotlin-first development; Java familiarity a plus)
-
5+ years of experience building and shipping
enterprise-grade native Android applications
at scale
-
Deep understanding of the
Android SDK
, platform lifecycle, and Google ecosystem (Jetpack, Android Runtime,
etc.)
-
Strong understanding of
Android internals
— memory management, process lifecycle, activity/fragment back stack, and
app lifecycle at a low level
-
Experience with
networking layers
, Retrofit, OkHttp, and custom network stack implementations
-
Proficiency with
data persistence
strategies (Room, SQLite, DataStore, SharedPreferences,
EncryptedSharedPreferences)
-
Solid understanding of
security best practices
at the OS level (certificate pinning, Android Keystore, data encryption,
ProGuard/R8 obfuscation)
-
Familiarity with
performance profiling and optimization
using Android Studio Profiler (memory leaks, CPU usage, rendering
bottlenecks, battery impact)
-
Solid hands-on experience with
multi-threading and concurrency
— Kotlin Coroutines, coroutine scopes, dispatchers, and channels
-
Proficiency with
Kotlin Coroutines & Flow
(structured concurrency, StateFlow, SharedFlow, cold vs. hot streams)
-
Experience with
WorkManager
for background task scheduling and constraint-based execution
-
Ability to identify and resolve
concurrency-related issues
such as race conditions, deadlocks, and thread contention
-
Experience writing
thread-safe code
using synchronization primitives (Mutex, Semaphore, atomic references)
-
Proven experience with
core structural/architectural design patterns
such as MVC, MVP, MVVM, or MVI (Model-View-Intent)
-
Experience designing and implementing
modular, scalable app architectures
suitable for large enterprise codebases
-
Strong understanding of
dependency injection
using Hilt or Dagger, and SOLID principles in Kotlin
-
Demonstrated ability to
decompose complex screens into reusable, composable UI components
(not just building screens end-to-end)
-
Experience building and maintaining
shared UI component libraries or design systems
within an Android codebase
-
Proficiency with
Jetpack Compose
and/or traditional XML-based Views, including interoperability between the
two
-
Experience with
ConstraintLayout
, dynamic theming, accessibility (a11y), and adaptive layouts for various
screen sizes and densities
-
Experience writing and maintaining
unit and UI test cases
using JUnit, Espresso, and/or Compose UI Testing
-
Familiarity with
test-driven development (TDD)
or behavior-driven development (BDD) practices
-
Experience with
mocking and stubbing
using Mockito or MockK, and structuring code for testability
-
Ability to integrate tests into
CI/CD pipelines
(e.g., GitHub Actions, Bitrise, Jenkins, Gradle)
-
2+ years of experience
leveraging AI coding tools
(e.g., GitHub Copilot, Cursor, ChatGPT, Android Studio AI features) to
accelerate development workflows
-
Demonstrated ability to write
effective prompts
to generate, refactor, debug, or document Kotlin/Android code using AI
tools
-
Ability to
critically evaluate and validate AI-generated code
for correctness, security, and performance before integration
Preferred Qualifications
-
Financial services industry experience
strongly preferred — familiarity with the regulatory, compliance, and
security demands of banking, payments, wealth management, or capital
markets mobile applications
-
Experience building mobile features in
regulated environments
(e.g., PCI-DSS, SOX, GDPR compliance considerations within mobile apps)
-
Familiarity with
secure data handling
patterns common in financial applications (tokenization, biometric
authentication via BiometricPrompt, session management)
-
Experience with
Gradle multi-module project structures
and modularization strategies
-
Familiarity with
REST/GraphQL API integration
and contract-driven development
-
Experience with
feature flagging
, A/B testing frameworks, and remote configuration (e.g., Firebase Remote
Config)
-
Exposure to
cross-functional collaboration
with backend, design, and QA teams in an Agile/Scrum environment
-
Contributions to
internal SDKs, frameworks, or platform tooling
within an enterprise setting
Education:
-
Bachelor’s/University degree or equivalent experience