Sr. Software Engineer - Angular Job
IN Bangalore, KA, IN
Job description:
ROLE DEFINITION
Designs, develops, and maintains hybrid mobile applications (iOS, Android, PWA) within a large-scale NX monorepo. Writes clean, performant, and testable code using modern Angular and Ionic/Capacitor, collaborating with cross-functional teams to deliver high-quality mobile experiences for fleet management users.
DEGREE REQUIREMENT
B. Tech/B.E. in Computer Science or a related field from an accredited institution (or equivalent professional experience).
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.
REQUIRED SKILLS
- 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.
SKILL DESCRIPTORS
Problem Solving
Level Working Knowledge:
- Identifies and documents specific problems and resolution alternatives.
- Examines a specific problem and understands the perspective of each involved stakeholder.
- Develops alternative techniques for assessing accuracy and relevance of information.
- Helps to analyse risks and benefits of alternative approaches and obtain decision on resolution.
- Uses fact-finding techniques and diagnostic tools to identify problems.
Software Development Life Cycle
Level Working Knowledge:
- Works with a formal life cycle methodology (Agile/Scrum).
- Explains phases, activities, dependencies, deliverables, and key decision points.
- Identifies common issues, problems, and considerations for each phase of the life cycle.
- Interprets product development plans and functional documentation.
Performance Intelligence
Level Working Knowledge:
- Utilize monitoring tools to analyse 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.
Technical Troubleshooting
Level Working Knowledge:
- Strong troubleshooting skills with the ability to analyse complex problems across web and native layers.
- Analyses code, logs, native bridge calls, and device-specific behavior as part of advanced troubleshooting.
- Debugs Capacitor plugin issues, platform-specific rendering problems, and auth/vault errors.
- Records and reports specific technical problems, resolution steps, and tools used.
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.