Senior Software Engineer, Kotlin Multiplatform, Square for Restaurants
- New York, NY
- Employees can work remotely
- Alternate Location: New York, United States
- Position open to remote: Yes
Restaurants today operate in an increasingly dynamic landscape, and we're building a modern product ecosystem to support this. The Restaurants team at Square empowers Food & Drink businesses of all kinds to start, run, and grow their businesses through advanced workflows, specialized products, business insights, and inclusion in the greater Square ecosystem. In everything we build, we focus on efficiency, automation, and reliability: themes of paramount importance in a fast-paced environment where great hospitality is key.
We are looking for an experienced, staff-level engineer to accelerate our mobile development teams - starting by leading and supporting adoption of Kotlin Multiplatform for Mobile (KMM) in Square for Restaurants products.
The Restaurants team has multiple mobile applications already in market - Points of Sale for iPad and for Square Register, and our Kitchen Display System for iPad. Many features, and even more underlying infrastructure, are shared among these applications. Today we share code across products on each platform, and we share patterns across platforms. As we continue to maintain and develop these products, and look to more in the future, the benefits of multi-platform code sharing are clear.
Report to the Restaurants engineering lead and work closely with the Restaurants engineering leadership team to set a developer acceleration strategy, with KMM as a central initiative.
Collaborate closely with engineers, engineering managers, and product managers on Restaurants product development teams to help those teams incrementally and effectively learn, adopt, and realize accelerative value from KMM.
Identify technical and organizational challenges our teams will face with KMM, chart a course for overcoming them over time, and lead efforts to implement your plan.
Work hands-on to introduce KMM into our Android and iOS codebases, addressing developer workflow, continuous integration, testing, artifact management, and other technical challenges that arise – pairing or otherwise working directly with product, platform, and build/release engineers as needed.
Help to nurture and grow a community of staff and senior engineers across Square with similar interests and problems, and work together to build company-wide competency in KMM.
Deeply familiar with some combination of Kotlin, Swift, Objective-C, and Kotlin Multiplatform
Experienced working in large codebases on multiple stacks, including at least one mobile platform
Empathetic to the challenges facing product and platform teams, and understanding of the positive and negative impact of introducing new technologies for them
Motivated to drive measurable positive impact to developer teams, both in productivity and happiness
Effective in working with developer communities, open source projects, and vendors inside and outside of your company
Prepared to develop a long-term plan with incremental phasing, and comfortable with adapting your plan over time as the landscape changes
Collaborative by default, and eager to work hands-on with engineers, engineering managers, product managers, and others on your team and across the company
Technology landscape you will encounter:
Android development and builds with Gradle
Android continuous integration builds using Square's open source Kochiku system
iOS development and builds with Cocoapods and moving toward Bazel
iOS continuous integration with Jenkins
Monorepos, separate, for Android and for iOS
Internally hosted artifact repository
At Square, we want you to be well and thrive. Our global benefits package includes:
- Healthcare coverage
- Retirement Plans
- Employee Stock Purchase Program
- Wellness perks
- Paid parental leave
- Paid time off
- Learning and Development resources