The Mobile Developer is responsible for designing, developing, and maintaining hybrid mobile applications (iOS, Android, PWA) within a large-scale NX monorepo. This role involves writing clean, performant, and testable code using modern Angular and Ionic/Capacitor while collaborating with cross-functional teams to deliver high-quality mobile experiences for fleet management users.
Responsibilities
- Build and enhance features for a hybrid mobile application targeting iOS, Android, and PWA using Angular, Ionic, and Capacitor.
- Develop standalone Angular components with lazy-loaded routing, Angular Signals, and reactive patterns (RxJS) to deliver responsive and maintainable UIs.
- Implement and consume native device capabilities (camera, geolocation, push notifications, filesystem, and platform sensors) through Capacitor plugins.
- Write and maintain unit tests using Jest with Angular TestBed, MockStore, and HttpClient testing utilities to ensure code reliability.
- Work within an NX monorepo containing multiple feature and shared libraries.
- Translate high-level designs into low-level implementation, creating models, services, and facades that align with established architectural patterns.
- Monitor and optimize mobile UI performance through lazy loading, code splitting, caching, and bundle-size management.
- Troubleshoot platform-specific issues across iOS, Android, and web, analyzing logs, native bridges, and runtime behavior.
- Identify and document specific problems and resolution alternatives.
- Examine specific problems and understand the perspective of each involved stakeholder.
- Develop alternative techniques for assessing accuracy and relevance of information.
- Analyze risks and benefits of alternative approaches and obtain decisions on resolution.
- Use fact-finding techniques and diagnostic tools to identify problems.
- Work with a formal life cycle methodology (Agile/Scrum).
- Explain phases, activities, dependencies, deliverables, and key decision points.
- Identify common issues, problems, and considerations for each phase of the life cycle.
- Interpret product development plans and functional documentation.
- Utilize monitoring tools to analyze mobile application performance metrics and identify areas for improvement.
- Implement techniques such as lazy loading, code splitting, and caching strategies to enhance application performance.
- Manage bundle budgets (initial 6MB warning / 12MB error) and optimize asset delivery.
- Profile and resolve platform-specific performance bottlenecks on iOS and Android.
- Analyze code, logs, native bridge calls, and device-specific behavior as part of advanced troubleshooting.
- Debug Capacitor plugin issues, platform-specific rendering problems, and auth/vault errors.
- Record and report specific technical problems, resolution steps, and tools used.
Requirements
- 3 to 5 years of experience.
- B. Tech/B.E. in Computer Science or a related field from an accredited institution (or equivalent professional experience).
- Angular 19+ (Standalone Components): Standalone component architecture, dependency injection via inject(), Angular Signals, lazy-loaded routing with guards, and HTTP interceptors.
- Ionic 7 + Capacitor 7: Hybrid mobile development with Ionic UI components, Capacitor native bridge, platform-specific behavior handling, Auth Connect, and Identity Vault.
- TypeScript 5.5+ (Strict Mode): Strong typing with interfaces, generics, type guards, strict null checks, and no implicit any.
- RxJS 7: Reactive programming with Observables, Subjects, key operators (switchMap, combineLatest, forkJoin, etc.), and subscription lifecycle management.
- NX Monorepo (pnpm): Workspace architecture with 80+ libraries, project boundaries, affected-based CI, and pnpm package management.
- Mobile and Native Patterns: Capacitor plugin integration (camera, geolocation, push notifications, filesystem), deep linking, PWA/Service Worker, and app lifecycle management across iOS, Android, and web.
- Unit Testing with Jest: Angular TestBed testing with mocking (jest.fn, jest.spyOn, provideMockStore), fakeAsync/tick, and Ionic web component schemas.
- Data Visualization: Chart.js for graphs, Google Maps API for map rendering and geofences, and D3.js for Gantt/timeline charts.
- Real-Time Communication: WebSocket integration using RxJS webSocket() for live data updates with authenticated connections.
- Internationalization (i18n): Multi-language support using TranslateModule/Transloco patterns with language selection flows and translation key conventions.
- Firebase Analytics: Custom event tracking and screen view logging integration.
- Facade Pattern: Abstraction layer over state management, encapsulating store dispatch and selector logic behind clean service APIs.
- Strong troubleshooting skills with the ability to analyze complex problems across web and native layers.
Additional details
- This Job Description is intended as a general guide to the job duties for this position and is intended for the purpose of establishing the specific salary grade.
- It is not designed to contain or be interpreted as an exhaustive summary of all responsibilities, duties and effort required of employees assigned to this job.
- At the discretion of management, this description may be changed at any time to address the evolving needs of the organization.
- It is expressly not intended to be a comprehensive list of 'essential job functions' as that term is defined by the Americans with Disabilities Act.