Sign up to save this job, get alerts, and apply with an optimized CV.

Lead Software Engineer - IOS

Job description

Overview of the role:

As a Lead iOS Engineer at Freshworks, you own the technical direction of one or more flagship mobile applications serving millions of users. You set the architectural standard, make the build-vs-buy and native-vs-cross-platform calls, and are accountable for the quality, performance, and release health of your surface area. You lead a team of iOS and cross-platform engineers — through design reviews, mentorship, and hands-on pairing rather than through hierarchy — and you partner directly with Product, Design, Backend, and QA leadership to shape the roadmap, not just execute it. You remain a hands-on engineer: you write code in the hardest parts of the system, and your judgement is the escalation point when the team is stuck.

Responsibilities:

Technical leadership & architecture

  • Own and evolve the mobile architecture across the app portfolio — modularization, dependency boundaries, state management, navigation, and offline/sync strategy.
  • Make and document consequential technical decisions (native Swift vs Flutter/React Native, third-party SDK adoption, persistence and caching strategy) with clear trade-off analysis and a migration path.
  • Author and drive technical design documents; run design reviews and hold the bar on SOLID, clean architecture, and pattern consistency (MVVM, VIPER, Coordinator, unidirectional data flow).
  • Lead large-scale refactors and platform migrations (e.g. UIKit → SwiftUI, monolith → modular packages) with incremental, low-risk rollout plans.
  • Identify and remove systemic technical debt; maintain a prioritized architecture backlog reviewed with Product and Engineering Management.

Delivery & execution

  • Break down ambiguous, multi-quarter product initiatives into scoped, sequenced, estimable work for the team.
  • Stay hands-on: personally deliver the highest-risk components, prototypes, and performance-critical paths.
  • Own the release train — versioning, release branching, phased rollouts, App Store submission and review escalations, kill switches, and rollback procedures.
  • Own build and developer productivity: build times, flaky test elimination, local dev setup, and CI/CD reliability (Fastlane, GitHub Actions).
  • Drive integration contracts with backend teams for RESTful and GraphQL APIs, including versioning, backward compatibility, and error-handling standards.

Quality, performance & reliability

  • Define and enforce the quality bar: test strategy across unit, integration, snapshot, and UI layers; code coverage expectations; and mandatory quality gates in CI.
  • Own crash-free-session rate, ANR/hang rate, cold-start and frame-rate budgets, app size, and battery/network efficiency for your surface area; set targets and report against them.
  • Instrument and profile with Instruments, MetricKit, and Xcode Organizer; lead performance investigations that cross app, SDK, and backend boundaries.
  • Act as incident commander for production mobile incidents — triage, mitigate, communicate, and run blameless post-mortems with tracked action items.
  • Define observability standards: crash reporting, structured logging, analytics events, feature flags, and remote config (Crashlytics/Sentry, Firebase Remote Config).

People & influence

  • Mentor senior, mid-level, and junior engineers; grow at least one engineer to the next level through structured feedback and stretch ownership.
  • Own code review culture — set expectations for review depth and turnaround, and coach through reviews rather than gatekeeping.
  • Drive the hiring bar for mobile: design and calibrate interview loops, conduct architecture and coding interviews, and support onboarding.
  • Provide input to Engineering Managers on performance, growth, and team composition.
  • Represent mobile engineering in cross-functional and cross-org forums; influence platform, design-system, and API decisions made outside your team.
  • Write and evangelize internal standards, playbooks, and documentation; run knowledge-sharing sessions and guild forums.

Product & business partnership

  • Partner with Product to shape scope and sequencing — surface technical constraints early and propose cheaper paths to the same outcome.
  • Define success metrics with Product (adoption, engagement, crash rate, task completion) and drive iteration based on data.
  • Assess feasibility and effort for new initiatives; provide credible estimates with explicit assumptions and risks.
  • Implement and support compliance of self and team to Freshworks compliance and information security processes, including secure-coding practices, data-handling requirements, and privacy/App Store policy obligations.

Requirements / Must Have:

  • 8+ years of professional software engineering experience, with 6+ years building and shipping production iOS applications.
  • 2+ years in a technical leadership role — tech lead, lead engineer, or equivalent — owning architecture and outcomes for a team of engineers.
  • Expert-level Swift with strong Objective-C interop; deep command of the iOS SDK, Xcode, Instruments, and the full debugging toolchain.
  • Demonstrated ownership of a non-trivial mobile architecture at scale, including modularization and dependency management (SPM/CocoaPods).
  • Deep expertise in concurrency and multithreading (GCD, Swift Concurrency / async-await, actors), memory management, and race/deadlock diagnosis.
  • Strong experience with UIKit and SwiftUI, plus reactive/asynchronous patterns (Combine or equivalent).
  • Proven experience with cross-platform delivery — Flutter (Dart) or React Native — and the judgement to know when not to use it.
  • Data persistence and offline-first design (Core Data, SQLite, Realm) including migrations and conflict resolution.
  • Ownership of mobile CI/CD end to end (Fastlane, GitHub Actions), code signing, provisioning, and App Store Connect release operations.
  • Track record of driving measurable improvements in app performance, stability, or engineering velocity — with numbers you can speak to.
  • Strong grounding in OOP, design patterns, SOLID, data structures, and algorithms.
  • Strong written communication: design docs, RFCs, and post-mortems that hold up to scrutiny.
  • Demonstrated ability to mentor and level up engineers, and to build consensus across teams without formal authority.
  • Extensive experience with Agile methodologies and strong working knowledge of the SDLC.
  • Data-driven decision-making and comfort operating with ambiguity in a fast-paced environment.

Skills

  • Experience leading a UIKit → SwiftUI or native → cross-platform migration in production.
  • Mobile security depth: Keychain, certificate pinning, encryption at rest, jailbreak/tamper detection, OWASP MASVS familiarity.
  • Experience building and maintaining shared SDKs, internal libraries, or a design system consumed by multiple apps.
  • Experience with GraphQL on mobile, including caching and schema evolution.
  • Experience with experimentation platforms, feature flagging, and progressive delivery at scale.
  • Familiarity with Android/Kotlin sufficient to reason about parity and shared architecture decisions.
  • Experience in B2B SaaS, multi-tenant, or enterprise mobility (MDM, SSO/SAML, on-prem constraints).
  • Accessibility (VoiceOver, Dynamic Type) and internationalization at scale.
  • Open-source contributions, conference talks, or active participation in iOS developer communities.


Required skills

design execution compliance documentation quality mentorship reliability coordinator sdlc delivery android kotlin restful apis unit testing crashlytics clean architecture caching github actions onboarding engagement agile methodologies multithreading code coverage architecture backend people conflict resolution technical leadership react native swift mvvm ios lead engineer data-driven decision-making fast-paced environment performance product graphql playbooks growth written communication navigation design patterns b2b saas design system flutter triage instruments prototypes mdm oop graphql apis ambiguity feasibility assessment mobile security rfcs roadmap test strategy design reviews core data privacy mobile applications accessibility swiftui uikit algorithms integration testing internal standards tech lead sdk influence adoption sqlite provisioning technical debt persistence senior engineers combine xcode spm data structures state management fastlane keychain solid dart sentry feature flags app store connect migrations ci voiceover technical constraints concurrency memory management success metrics mobile engineering certificate pinning versioning cocoapods realm actors platform migrations modularization gcd viper effort estimation ios sdk risks quality gates mitigate internationalization multi-tenant technical direction business partnership unidirectional data flow communicate dependency management backward compatibility progressive delivery phased rollouts technical decisions structured logging crash reporting junior engineers action items monolith lead software engineer open-source contributions release train mentor engineers enterprise mobility post-mortems experimentation platforms developer productivity knowledge-sharing sessions mobile architecture quality bar freshworks technical design documents schema evolution feature flagging swift concurrency code signing hands-on engineer refactors team composition engineering managers firebase remote config platform decisions task completion product initiatives incident commander network efficiency mobile ci/cd structured feedback sso/saml asynchronous patterns snapshot testing hiring bar interview loops mid-level engineers design docs conference talks build times qa leadership blameless post-mortems data-driven iteration coding interviews professional software engineering experience trade-off analysis encryption at rest migration path build-vs-buy integration contracts dynamic type data persistence observability standards formal authority information security processes crash rate cross-org forums technical leadership role rollback procedures architectural standard native-vs-cross-platform release health ios engineers cross-platform engineers hands-on pairing app portfolio dependency boundaries offline/sync strategy third-party sdk adoption caching strategy modular packages architecture backlog scoped work sequenced work estimable work highest-risk components performance-critical paths release branching app store submission review escalations kill switches build productivity flaky test elimination local dev setup ci/cd reliability error-handling standards ui layers crash-free-session rate anr/hang rate cold-start frame-rate budgets app size battery efficiency metrickit xcode organizer performance investigations production mobile incidents analytics events remote config stretch ownership code review culture architecture interviews cross-functional forums design-system decisions api decisions guild forums explicit assumptions secure-coding practices data-handling requirements app store policy obligations production ios applications objective-c interop debugging toolchain mobile architecture at scale async-await race diagnosis deadlock diagnosis reactive patterns cross-platform delivery offline-first design release operations app performance improvements stability improvements engineering velocity improvements level up engineers build consensus uikit → swiftui migration native → cross-platform migration jailbreak detection tamper detection owasp masvs shared sdks internal libraries on-prem constraints ios developer communities

Sign up to apply

Create a free account to apply for this job and get access to:

  • AI-powered CV optimization for this specific job
  • Save jobs and create custom alerts
  • See your CV match score for each job

Company information

Company
Freshworks
Location
India, Tamil Nadu, Chennai
India
Posted
15 hours ago

Find similar jobs

Explore more opportunities like this one.

Interested in this position?

Create your free account and tailor your CV to match this job.