What we’re looking for:
More specifically, we’re looking for an associate engineer who is ready for the next step in their career. Here you will find the guidance to grow into that next level of autonomy and effectiveness. Our team is passionate about delivering software that makes an impact in education today.
What you’ll do:
- Enhance our native Android and iOS apps, using the best of native and the web.
- Work on a cross-functional team to help design, build, test, deploy, and monitor features.
- Have a say in what’s built — we’re not throwing specs over the wall for you to develop alone.
- Practice continuous integration and continuous delivery to release changes often.
- Have a real impact on software used by millions of students, parents, and teachers worldwide.
- Troubleshoot and fix problems preventing those people from accomplishing their tasks.
What we’d like you to have:
- Experience with either Android or iOS development.
- Interest in working on both Android and iOS apps.
- Fluency in either Objective-C and Swift (for iOS) or Java (for Android).
- A passion for software development and a desire to constantly learn.
- Interest in collaborating closely with others to solve problems.
- Self-motivation, organization, and drive.
- An understanding of threading and concurrency, especially what can go wrong.
- An understanding of lifecycle management and common platform UI components.
- Experience writing unit tests for your code.
- Experience working with RESTful APIs and OAuth.
- Foundations in both object-oriented and functional code.
- A sense of ownership of your code and a belief that shipping code is just one step in the process.
- An understanding of computer science concepts — Big O notation, pointers, data structures, etc.
- Experience using distributed version control (like git), feature branches and pull requests.
Bonus points if you have:
- Experience with web development, especially front-end development with React.
- Experience with reactive programming using RxSwift or RxJava.
- Strong UI development skills, having used AutoLayout and designed for multiple screen sizes.
- A strong foundation in automated testing, from unit tests through end-to-end UI tests.
- Experience with Android or iOS performance and memory management tools.