Senior iOS Engineer (LATAM/Canada)
Onfleet · Brazil · $75K–$115K/yr
Technology, Information and Internet · 51-200 employees
About the role
Develop and maintain the driver app and mobile SDK using modern Swift and agentic AI workflows. Focus on architectural improvements, quality automation, and refactoring legacy code to improve system health.
What they look for
Requirements
Requires a Bachelor's degree in Computer Science and at least 6 years of software engineering experience, with 5 years focused on iOS. Candidates must have deep expertise in Swift, UIKit, and unidirectional data flow, along with a strong commitment to AI-driven development.
Benefits
Full description
About the Role
Onfleet is hiring a Senior iOS Engineer based in Latin America or Canada to join our remotely distributed mobile team. You'll be a core contributor to our driver app and mobile SDK, working across new feature development, architectural improvements, and integration with our backend services. Your work will shape the daily experience of the couriers who complete millions of deliveries on our platform.
The codebase is modern Swift: unidirectional data flow (a custom Redux-style architecture), Swift concurrency, Combine, and a UIKit codebase with SwiftUI adoption underway. You'll be creating high-quality, well-tested code, contributing to a healthy Scrum cadence, and helping tame legacy complexity by putting code under test, isolating change boundaries, and simplifying tangled implementations.
If you have strong Computer Science fundamentals, deep iOS expertise, care deeply about quality and craft, and bring a scrutinizing, questioning mindset, we'd love to hear from you.
How we Work
Our engineers follow a principled approach to software development that sets a high bar for software quality. We're pragmatic, quality-driven, and deliberate about the tools and practices we adopt.
We code using agents, and nearly 100% of our code is written this way. Success here takes a scrutinizing, questioning mindset: the engineers who thrive are the ones who avoid slop, catch the wrong call before it ships, and drive quality and the right engineering choices forward. Generating code is the easy part; knowing what good looks like, and holding the bar, is the job. To be successful in this role you will need Swift and iOS expertise sufficient to challenge both agent-created code best practices, and architectures.
We also expect every engineer to be an active contributor to how we work, not just a consumer of existing workflows. Improving our agentic workflows, orchestration, and tooling is a core part of the role; we're always looking for ways to raise the team's quality and efficiency, and that's expected from everyone. Desire and excitement for the application of AI to software development is critical to this role. We are seeking candidates who desire to work in and maintain leading edge agentic workflows and stay at the cutting edge as the models and other tools evolve and mature.
What you'll do:
- Build and continually improve your own agentic development workflow, and help raise the team's. This goes far beyond prompting for code: we use AI across the whole path, from PRDs to technical specs, epics, and tickets, into development plans, and finally into high-quality code with thorough tests.
- Drive quality through disciplined verification and both agentic and human code review, on your own code and your teammates'. Extend our agentic review tooling as you go, and hold the bar on what gets merged.
- Apply your agentic workflow in both greenfield and legacy code, meeting the different challenges each presents.
- Own and improve the quality automation you depend on such as CI pipelines, checks, and gates, so standards are enforced by the system and not just by people.
- Design and maintain testable architecture and test suites.
- Develop and refine our mobile SDK for seamless integration by our customers.
- Continuously refactor and simplify code to improve performance, clarity, maintainability, and long-term system health.
- Take ownership of features end to end, from understanding the requirements, through design, ticketing, and implementation, to testing, validation, shipping, and supporting in production.
- Collaborate with Design, Product Management, and cross-functional teams to understand business requirements and prioritize features and bug fixes.
- Troubleshoot and resolve complex technical issues.
- Mentor engineers and foster a culture of continuous improvement.
What You’ll Bring (required):
- Bachelor's degree in Computer Science or a related field, and strong CS fundamentals: data structures, API design, testing, and an instinct for clean, maintainable code.
- Proven production delivery. You have shipped iOS apps to the App Store on a team that operated them in production, and you've personally owned features through release and into production support.
- Excellent written and spoken English. You can work entirely in English on a distributed team, explain complex technical ideas clearly, and write docs and code reviews your teammates rely on. This is roughly equivalent to a C1 level of English.
- 6 or more years of hands-on professional software engineering experience, with at least 5 years focused on iOS.
- Deep Swift expertise including protocol-oriented programming
- Production experience with UIKit and unidirectional data-flow architectures (The Composable Architecture, Redux, ReSwift, or similar).
- Solid command of Swift concurrency (async/await, AsyncSequence) and Combine for UI, data, and concurrency.
- A demonstrated quality focus beyond "writing tests." You have, for example, created, configured, fine-tuned, or troubleshooted a CI/CD pipeline for iOS (GitHub Actions, Bitrise, or equivalent), not just consumed one someone else built.
- Hands-on experience writing both unit and integration/regression tests as part of how you build.
- Experience with creating software using disciplined agentic flows, from prompt-instructing to complete development orchestrations.
- A scrutinizing, questioning mindset: you don't accept output, your own or an agent's, at face value, and you surface problems early.
- Sound judgment, a pragmatic approach, and an open mind to help guide the team when the path forward is unclear.
Nice To Have:
- Experience with a UIKit to SwiftUI migration in production.
- Modular iOS development with Swift Package Manager, and experience creating prebuilt/binary library solutions.
- Local persistence, offline-first and background data processing experience.
- Test-Driven Development (TDD) experience.
- Prior QA, SDET, or test-engineering experience, or a verifiable track record of owning testing/quality on a team.
- Android, cross-platform or server development experience
Location and Benefits
- This is a remote role open to candidates based only in Latin America or Canada.
- Onfleet offers flexible work arrangements; you can work from home or anywhere with a reliable internet connection.
- The team is distributed across the Americas and Europe. Your working hours need to include at least 4 hours of overlap with US Pacific business hours (roughly 9am–1pm PST / 1–5pm in most of Latin America)
- Flexible PTO
- Laptop and WFH Stipend
- Technology Monthly Stipend (internet/AI)
Onfleet is an Equal Opportunity Employer
Onfleet's culture is one that strongly values diversity in its workplace and we are committed to working with potential team members who can bring diverse perspectives and experience to our company and culture.
We do not make hiring or employment decisions on the basis of race, color, religion, creed, gender, national origin, age, disability, veteran status, marital status, pregnancy, sex, gender expression or identity, sexual orientation, citizenship, or any other basis protected by applicable local, state or federal law.
We highly encourage members of underrepresented groups to apply and we will consider qualified applicants with arrest and conviction records.
Compensation
The base salary range for this role is $75,000 to $115,000 USD per year, depending on experience, skills, and background. Where an offer lands within that range reflects the engineering level, and the depth and experience a candidate brings to the role.
How we hire
You need an identity-verified LinkedIn profile to apply. That's the free "Verified" badge, the shield icon next to your name. We check for it, and applications without it don't move forward.
Follow this link to get verified: https://www.linkedin.com/help/linkedin/answer/a1359065
Before any offer, we verify your identity and work history. That includes a live video ID check and reference calls. We use AI, automated systems, and a person to review applications: every application that meets the requirements is also read by an engineering leader or a recruiter. If you misrepresent your identity or experience, the process ends.