About Ferguson:
Since 1953, Ferguson has been a source of quality supplies for a variety of industries. Together We Build Better infrastructure, better homes and better businesses. We exist to make our customers complex projects simple, successful, and sustainable. We proactively solve problems, adapt and grow to continuously serve our customers, communities and each other. Ferguson is proud to provide best-in-class products, service and capabilities across the following industries: Commercial/Mechanical, Facilities Supply, Fire and Fabrication, HVAC, Industrial, Residential Trade, Residential Building and Remodel, Waterworks and Residential Digital Commerce. Ferguson has approximately 36,000 associates across 1,700 locations. Ferguson is a community of proud associates who operate with the shared purpose of building something meaningful. You will build a career that you are proud of, at a company you can believe in.
Position Summary:
Ferguson is seeking a Senior Software Engineer to join our Mobile Engineering team. In this role, you will build and maintain mobile applications that serve our customers and trade professionals across iOS and Android. You will work across a mature production React Native application and a modern Expo-based application, delivering features, resolving defects, writing tests, and contributing to the overall quality and reliability of our mobile platform. You will collaborate with engineers, UX designers, and QA to ship high-quality software and grow your skills across the full mobile development stack.
Key Responsibilities:
- Develop and maintain mobile applications using React Native and Expo for both iOS and Android platforms.
- Implement new features, resolve defects, and improve existing functionality across the mobile application codebase.
- Write and maintain automated tests using Jest, React Testing Library, and end-to-end testing frameworks, contributing to the team's high code coverage standards.
- Participate in code reviews, providing and receiving constructive feedback to maintain code quality and team standards.
- Work within established CI/CD pipelines (GitHub Actions, Fastlane, Firebase App Distribution) to build, test, and deploy mobile applications.
- Integrate and work with third-party services and SDKs including payment processors, analytics platforms, feature flag systems and push notification services.
- Manage application state using Redux (with Redux-Thunk and Redux-Persist), Zustand, and TanStack React Query across complex business domains.
- Collaborate with native platform code (Swift/Objective-C for iOS, Kotlin/Java for Android) for debugging and native module integration as needed.
- Implement and consume RESTful APIs using Axios, including working with OAuth authentication flows and secure credential storage.
- Contribute to code quality practices through adherence to ESLint rules, Prettier formatting standards, and Sonar Cloud quality gates.
- Collaborate closely with Engineering Management, UX Design, and QA to understand requirements and deliver well-tested solutions on schedule.
- Maintain and extend navigation systems, deep linking, and routing across both React Native Navigation and expo-router.
- Troubleshoot and resolve cross-platform issues spanning JavaScript, native code, and build tooling.
Required Qualifications:
- Bachelor's degree in Computer Science, Software Engineering, or a related technical field.
- 5 or more years of professional software engineering experience.
- 3 or more years of hands-on experience building mobile applications with React Native.
- Proficiency in TypeScript and modern JavaScript.
- Experience with Redux or similar state management libraries.
- Experience writing automated tests for mobile or front-end applications using Jest or equivalent testing frameworks.
- Working knowledge of RESTful API integration.
- Familiarity with version control using Git, including branching strategies and pull request workflows.
- Familiarity with native mobile development toolchains (Xcode, Android Studio).
- Strong problem-solving skills and the ability to learn new technologies and frameworks quickly.
- Ability to work effectively within a collaborative team environment.
Preferred Qualifications:
- Experience with Expo and expo-router for file-based navigation.
- Experience with App Store (TestFlight) and Google Play publishing and review processes.
- Familiarity with CI/CD tools for mobile applications such as Fastlane, GitHub Actions, or equivalent.
- Experience with NativeWind or Tailwind CSS-based styling systems for React Native.
- Experience with Zustand and TanStack React Query for state and server-state management.
- Exposure to native mobile development in Swift/Objective-C or Kotlin/Java.
What We Offer:
At Ferguson, we believe the work we do should align with our values, create meaningful relationships, offer flexibility, and promote a sense of pride. We are committed to your personal and professional development and foster a culture that is inclusive and enables associates to be seen, heard, and valued. If you thrive on owning your career by continuously looking to grow with new opportunities, we have a place for you at Ferguson.
Ferguson is an equal opportunity employer. We are committed to putting the right people in the right positions and fostering a welcoming environment across our company.