Senior macOS Desktop Developer
Key Responsibilities
- Design, develop and maintain features for a macOS desktop application built using Swift, Objective-C and native Apple frameworks such as AppKit and Foundation.
- Work on secure inter-process communication mechanisms such as XPC services, app groups, local sockets, secure pipes or other multi-process communication patterns.
- Build and integrate local services, background agents or helper tools that interact with external APIs.
- Develop and maintain components that interact with local or remote databases and persistent storage.
- Take ownership of specific modules, ensuring reliability, performance and maintainability across supported macOS versions.
- Collaborate with the Lead Engineer, product owners and other developers to shape technical solutions.
- Contribute to architectural and design discussions, particularly around native macOS application architecture, security, packaging and deployment.
- Participate in code reviews, sprint planning and improvements to development practices.
- Work within Agile methodologies, following Scrum or Kanban workflows.
- Mentor junior developers at a later stage as the team grows.
Essential Skills and Experience
- A minimum of 5 years of professional experience in software development.
- Strong proficiency in Swift and Objective-C for native macOS application development.
- Experience building and maintaining macOS desktop applications using AppKit, Foundation and related Apple frameworks.
- Good understanding of Cocoa design patterns, memory management, concurrency and application lifecycle on macOS.
- Knowledge of inter-process communication, such as XPC, helper tools, service based architectures, local sockets or multi-process systems.
- Experience working with APIs from a locally running desktop application.
- Understanding of databases (SQL), local persistence and data access patterns.
- Strong debugging, performance optimisation and problem solving skills, including use of Xcode, Instruments and crash diagnostics.
- Ability to take ownership of features and deliver them independently.
- A degree in Computer Science, Engineering, Mathematics, Physics or a related technical discipline.
Preferred Skills
- Experience maintaining mixed Swift and Objective-C codebases, including interoperability, bridging headers and gradual migration approaches.
- Experience with modern Swift patterns, Swift concurrency and Swift Package Manager.
- Knowledge of local service development, sandboxing, entitlements, code signing, notarisation, packaging and deployment for macOS applications.
- Experience with cross platform desktop frameworks or shared business logic across macOS and Windows applications.
- Familiarity with dependency injection, MVVM or other maintainable desktop application architecture patterns.
Ways of Working
- Agile environment using Scrum or Kanban.
Personal Attributes
- Strong communication skills with the ability to explain technical concepts clearly.
- Proactive and organised, comfortable taking ownership of areas of the system.
- Collaborative and supportive approach to working within a team.
Commitment to code quality, testing and continuous improvement