Freshworks
1 month ago
Lead Software Engineer - IOS
Sign up to save this job, get alerts, and apply with an optimized CV.
Company information
- Company
- Freshworks
- Location
- India, Tamil Nadu, Chennai India
- Posted
- 1 month ago
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
Interested in this position?
Create your free account and tailor your CV to match this job.