Software Engineer, Mobile (iOS)
The iOS Engineer will collaborate with management on vision setting, technology direction, architecture, and best practices. They contribute to the codebase by following set standards and successfully completing stories while maintaining effective communication within product/engineering squads and tribes, as well as with other internal and applicable external stakeholders. They should have the ability to provide support for any part of the codebase and also be able to understand the codebase with minimal direction from others. They should have a desire to help with the transition from UIKit to SwiftUI. This will require strong UIKit understanding as well as the desire to learn, debug, and implement new and emerging SwiftUI technologies. They will have a strong sense of ownership of code standards, unit and integration testing practices, and technical roadmap. They will work with Product Managers to ensure requirements are defined correctly. They must have the ability to successfully architect complex systems and collaborate with more junior engineers to ensure proper implementation of the agreed-upon design. They ensure project deadlines are successfully met and effectively communicate with product/engineering squad team members and other internal stakeholders.
Who we are:
At SpotHero, we work as a team to empower people to get everywhere, easier! We’re rapidly growing with the mission of bringing the parking industry into the future through technology. Drivers across the nation use the SpotHero mobile app or website to reserve convenient, affordable parking in advance, on-the-go or through their connected cars, and parking companies rely on us to help them reach new customers while optimizing their business. We connect the dots with cutting-edge technology, delivering value to both sides of this exciting, evolving marketplace.
What will you do:
- Identify, design, develop, test, and release high-quality functionality as efficiently as possible.
- Build and maintain new tooling (test coverage, build tasks, fastlane scripting).
- Ensure the support of applications and the following of Apple’s release guidelines.
- Communicate upcoming changes effectively with all stakeholders, Product, Design, QA, and IT.
- Identify areas for improvement and innovation within the squad ecosystem by investigating and proposing new technologies and/or best practices, and leading the charge on implementing them.
- Be a hands-on contributor to the design and implementation of new products and features that support the engineering organization's technical strategy.
- Support QA in managing a fleet of devices that properly reflect our end consumer demographics as well as new and upcoming releases.
- Provide code review with empathetic, thoughtful feedback to peers.
- Work collaboratively with the rest of the team to deliver quality products with a focus on speed, security, and analytics.
- Write documentation on what the squad plans to do, is doing, and has completed. Documentation should be easily accessible and should lead to productive discussions within the squad and/or other teams.
- Secure and safeguard data to preserve its integrity, reliability, and availability and ensure appropriate access levels are maintained.
- Ownership of codebase, maintaining it, and ensuring it runs consistently.
- Independently identify areas for improvement and innovation within the squad ecosystem, and lead the charge on making those changes.
- Function as a leader within the engineering department, providing mentoring and training to all levels of engineering team members.
- Function as an internal expert for technology specialty and educate the team on new and changing technologies.
- Be an industry thought leader, participating in public speaking events and meetups to showcase SpotHero as a leader in technology.
- Secure and safeguard data to preserve its integrity, reliability, and availability and ensure appropriate access levels are maintained.
The following experience is relevant to us:
- 2 years of experience as an iOS engineer across multiple environments.
- Strong proficiency in Swift, SwiftUI, and Objective-C.
- Experience supporting various app extensions, such as watchOS, CarPlay, AppClips, etc...
- Experience supporting open-source SDKs distributed across various package managers.
- Experience and familiarity working with CI / CD pipelines.
- Understanding and following of Semantic Versioning practices.
- Ability to support and communicate Apple Human Interface Guidelines to internal teams.
- Ability to provide support for any pieces of codebase owned and also understand the codebase with minimal direction from peers or more senior engineers.
- Demonstrated leadership and mentorship skills.
- Demonstrated ability to document work and research existing documentation.
- Experience with open source contributions to major projects is a plus.
Technology we use:
- Our Android Stack is: Kotlin and XML (standard for Android apps) using MVI architecture (still working on refactoring old views), our database layer is built in Realm. Bitrise for CI/CD. We also make heavy use of Dagger, RxJava, Espresso (testing). Network stack uses Retrofit.
- Our iOS Stack is: Swift using MVC architecture, CoreData for Local Storage, XCUI for UI Testing, XCTest for Unit testing, SPM for Package Management, Fastlane for app automation and build scripts, Bitrise for CI/CD, and Sentry for crash reporting.
- Our Back End Stack is: Monolith using Django/Python/PostgreSQL. We are moving our Monolith to a Modular Monolith, using Domain Driven Design. When relevant we extract specific domains to Services currently using Java, Kotlin and Go. We also use Docker, deploy our apps via Kubernetes. We use Kafka for asynchronous-, and gRPC for synchronous service-to-service communication. Our Integrations are on a .Net CORE, moving to Kotlin.
- Our Front End Stack is: Our Front End stack is React/Redux, Sass, Jest/React Testing Library/Cypress, and Webpack. We maintain a private npm repository with shareable UI components, utility functions, Babel/ESLint/Prettier configurations, and custom tasks
- Our Data Stack is: Our Monolith Database is Postgres and Redis for caching. We also use Redshift as our data warehouse and S3 as our data lake. The data lake is queried using Presto. We use Airflow and Spark for ETL, as well as do some stream processing (Kafka Streams and Spark at the moment). Our Model pipeline uses scikit-learn, pandas. Our analysts utilize Looker as our Business Intelligence tool. And we use Quicksight for Dashboard on our external Data Products.
- Our Dev Tools Stack is: AWS+Kubernetes for hosting. Terraform + Helm Charts for IaaS/Deployment. ConcourseCI for CI/CD. Prometheus/Alertmanager/VictorOps for team alerting. We’re starting to work on multi-region available services.
What we are offering:
- Career game changer – A truly unique experience to work for a fast-growing startup in a role with unlimited potential for growth.
- Excellent benefits –
- In the US we cover up to 95% of Medical Premiums, 50% of Dental & Vision Premiums, company sponsored Life Insurance, and generous parental leave.
- In Canada we offer Medical (prescription drug and paramedical coverage), Dental, Vision, Life Insurance, STD and LTD.
- Flexible PTO policy and great work/life balance – We value and support each individual team member.
- Annual parking stipend – we help people park!
- The opportunity to collaborate with fun, innovative, and passionate people in a casual, yet highly productive atmosphere.
- A workplace recognized as the Best Consumer Web Company by Built in Chicago, Top Company Culture by Entrepreneur, a Top Workplace by Chicago Tribune, and one of Chicago’s Best Places to Work for Women Under 35 by Crain’s Chicago Business.
Steps to apply: Please include any GitHub account, LinkedIn profile, and any project that you’re particularly proud of. We love seeing work that others loved working on.
At SpotHero, we Respect Fellow Drivers by providing an inclusive interview experience for everyone, including people with disabilities. We are happy to provide reasonable accommodations to candidates in need of individualized support during the hiring process. Please let our team know of your need when you apply or as you begin interviewing with our team.
SpotHero is an equal opportunity employer. We know that a diverse workforce is the strongest workforce, and are committed to building and supporting an inclusive environment for all.