Software Engineer
Career Area:
Technology, Digital and DataJob Description:
Your Work Shapes the World at Caterpillar Inc.
When you join Caterpillar, you're joining a global team who cares not just about the work we do – but also about each other. We are the makers, problem solvers, and future world builders who are creating stronger, more sustainable communities. We don't just talk about progress and innovation here – we make it happen, with our customers, where we work and live. Together, we are building a better world, so we can all enjoy living in it.
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 position requires working onsite five days a week.Relocation is available for this position.
Posting Dates:
July 1, 2026 - July 9, 2026Caterpillar is an Equal Opportunity Employer. Qualified applicants of any age are encouraged to apply
Not ready to apply? Join our Talent Community.
Software pay context
Based on 7,857 disclosed Software salaries on RoleSuite, the role pays a median of $158K/year, with most offers between $123K and $200K (10th–90th percentile: $102K–$235K).
See the full Software salary breakdown →