Software Engineer, Tools and Infrastructure - Mobile
R&D - Production Engineering – Production Engineering
The mobile tools team works on building reusable tools for iOS & Android development for many different mobile apps (Shopify Mobile, POS). We primarily focus on automating the build, test & release process, but everything that would make mobile development more fun, faster, or better would be a potential work area.
We want developers to have the best tools, so they can be most efficient and enjoy their work. We build reusable tools, so every team can use the same world class tooling, rather than tools that were built as an afterthought.
We need an engineer to ensure our mobile delivery pipeline scales as we scale up our mobile efforts. We are looking for someone who enjoys building and testing mobile apps and along with systems-level work with a lot of automation.
You'll be working on:
The entire tool and validation pipeline required to get an app from a whiteboard into the Apple App Store and Google Play. This includes the toolchains and command line tools used on developer laptops, the continuous integration server fleet, device fleets, and the tools used to orchestrate the pipeline (Github, Buildkite, MacStadium, Packer, Fastlane, XCode, Gradle). The vision of our team is to provide a ‘batteries included’ delivery pipeline for iOS and Android apps.
You'll need to have:
- An excitement for automation and simplicity.
- Have some experience building iOS or Android apps.
- Experience with Continuous Integration systems (e.g. TravisCI).
It would be great if you had:
- Hands-on experience working in iOS or Android environments, ideally in an environment that ships many times a year.
- Knowledge of the Android or iOS app build and release process.
- Knowledge of Android and iOS testing frameworks, emulators, and best practices.
- A passionate interest in macOS, Linux, virtualization and containerization.
- Heard of or used something like Packer, Chef, Puppet, Salt, or Ansible for system configuration and automation
- Comfort developing in one or more of Ruby, Bash, or other scripting languages
- Knowledge of statsd & how to collect & analyze metrics
- Worked with Git, Github, and code analysis tools to measure coverage, complexity, etc
Projects to check out:
- http://shopify.github.io/ - Shopify’s compendium of open source projects
- https://github.com/Shopify/shipit-engine - our automated deployment framework
- https://engineering.shopify.com/234545999-building-a-dynamic-mobile-ci-system - blog post that describes our iOS & Android CI infrastructure in detail.
The 🛠 ‘s you will use include: Ruby, MacStadium, Buildkite, Fastlane, VMWare, XCode, Android Studio, Packer, Shell scripting.
How to Apply 📄 ➡️ 📬
If you’re interested in helping us shape the future of commerce at Shopify, click the “Apply For This Job” button to submit your application. Be sure to address your cover letter to Willem in the additional info section and tell him why you think you'd be great for the role.
Experience comes in many forms, many skills are transferable, and passion goes a long way. If your experience is this close to what we’re looking for, consider applying. We know that diversity of thought makes for the best problem-solving and creative thinking, which is why we're dedicated to adding new perspectives to the team and encourage everyone to apply.