Apply for jobs Login
World map with all continents displayed

Senior Mobile Engineer - React Native, Node.js - Finance market

5+ years
Short-term (40h)
Finance
Full Remote
React Native
Node.js
JavaScript
TypeScript

Requirements

Must-haves

  • 5+ years of mobile development experience
  • Proficiency with React Native
  • Proficiency with Node.js
  • Proficiency with JavaScript and TypeScript
  • Experience with reusable component and library development
  • Experience with version control (e.g., Git, Bitbucket)
  • Knowledge of continuous integration and deployment (CI/CD), including mobile deployment pipelines
  • Deep understanding of asynchronous programming, API consumption, security best practices, and state management
  • Strong problem-solving and analytical skills with a passion for complex engineering challenges
  • Strong communication skills in both spoken and written English

Nice-to-haves

  • Startup experience
  • Experience developing reusable components and libraries
  • Bachelor's Degree in Computer Engineering, Computer Science, or equivalent

What you will work on

  • This is a full-time role (40 hours/week) for a 2-month contract
  • Estimated Hours: 125-176 hours (depending on complexity and existing codebase readiness)

1. Authenticate with SAML 2.0 using your IDP (8-12 hours)

  • Configure SAML in Auth0 (e.g., set up a new connection, upload IDP metadata)
  • Update login flow to replace existing authentication methods with SAML
  • Ensure correct configuration of redirect URIs, assertion consumers, and logout endpoints
  • Test using a staging IDP setup and debug assertion/audience mismatches
  • Key Work: Auth0 setup, React Native login updates, testing

2. Specify which web browser to trigger for SSO authentication (6-8 hours)

  • Implement react-native-inappbrowser-reborn to control browser selection
  • Add configuration parameter for browser preference (e.g., Chrome, Safari)
  • Test integration across iOS and Android browsers
  • Handle cases where the specified browser is unavailable
  • Key Work: Browser selection settings, invocation handling, testing

3. IP restrict app access (6-10 hours)

  • Implement middleware to validate user IP against an allowlist/blocklist
  • Configure IP restrictions in Auth0 or a proxy layer (e.g., AWS API Gateway)
  • Add UI error handling to display appropriate access restriction messages
  • Key Work: Middleware setup, Auth0 configuration, UI updates, testing

4. Operate properly in an Android Enterprise Work Profile (8-12 hours)

  • Use Android Enterprise test environment (e.g., Android Device Policy)
  • Verify dependencies (storage, notifications, permissions) within the work profile
  • Address storage isolation and cross-profile restrictions
  • Key Work: Test environment setup, compatibility fixes, permissions adjustments

5. Push out app config via MDM (12-18 hours)

  • Define app configuration parameters (e.g., JSON payload) for MDM distribution
  • Integrate with MDM provider SDKs (e.g., Intune SDK)
  • Parse and apply MDM configurations on app startup
  • Key Work: MDM setup, SDK integration, configuration parsing, testing

6. Prevent unrecorded data exfiltration (10-15 hours)

  • Enforce proxy/VPN whitelist for server communication
  • Ensure HTTPS and strong TLS encryption for all transmissions
  • Log outgoing requests for auditing
  • Implement domain validation and SSL verification
  • Key Work: Proxy/VPN setup, auditing, security enhancements, testing

7. Prevent copy/paste (6-10 hours)

  • Block clipboard access using platform APIs
  • Implement UIPasteboard override (iOS) and ClipboardManager restrictions (Android)
  • Use secureTextEntry flag for sensitive fields in React Native
  • Key Work: Clipboard API overrides, secure input handling, testing

8. Prevent screenshots (4-8 hours)

  • Implement FLAG_SECURE for all Android activities
  • Use UIScreenCapturedDidChangeNotification to detect iOS screenshots
  • Display warnings or block actions when a screenshot is detected
  • Key Work: Platform-specific security measures, UI enhancements, testing

9. Prevent moving data between apps or to storage (8-12 hours)

  • Use Android Scoped Storage and iOS App Sandbox for file isolation
  • Disable sharing intents (e.g., Share API)
  • Block access to external storage paths
  • Key Work: File system restrictions, API adjustments

10. Limit email/SMS to a specific app (10-15 hours)

  • Implement deep links or custom schemes for launching designated email/SMS apps
  • Add configuration options for preferred app selection
  • Ensure fallback mechanisms for unavailable apps
  • Key Work: Deep linking, app configuration, testing

11. Prevent email/SMS (4-6 hours)

  • Remove app features that invoke email/SMS actions
  • Block programmatic email/SMS sending using platform APIs
  • Key Work: Code adjustments, feature restrictions

12. Prevent printing (6-10 hours)

  • Disable export features that generate printable formats (e.g., PDFs)
  • Block AirPrint using UIPrintInteractionController (iOS)
  • Override print intents on Android
  • Key Work: Export feature removal, platform print restrictions

13. Lock/unlock the app with a code or biometric (12-16 hours)

  • Use react-native-keychain or similar libraries for biometric authentication
  • Securely store user-defined PIN or passcode
  • Implement a custom lock screen to verify PIN/biometric authentication
  • Key Work: Secure storage, lock screen UI, biometric integration

14. Audit data handling in detail (15-20 hours)

  • Implement detailed logging for data access and transactions
  • Store logs securely (e.g., server logs, Datadog)
  • Provide backend tools for reviewing audit trails
  • Key Work: Data logging, backend integration, documentation

15. Documentation (10-12 hours)

  • Provide feature overviews and setup instructions (e.g., SAML, MDM)
  • Document troubleshooting guides for common issues
  • Ensure clarity and accessibility for client use
  • Key Work: Clear, detailed, client-focused documentation
Interested in this job? We're still accepting applications for this position
Interested in this job? We're still accepting applications for this position

Other jobs you might like

Get matched with the best remote opportunities from today's top US companies

Find a great full-time opportunity
Earn more compensation for your hard work
Access exclusive benefits like healthcare, English classes, and more
1-1 individualized training to succeed in the international job market
Apply for remote jobs