What You Will Do
- Design and create software in Java for Android-based phone and tablets
- Participate in the software design process by asking questions, documenting, giving and receiving feedback, and applying your experience to improve the quality of designs
- Following industry best practices when implementing software
- Using visual design, information architecture, and interaction design to assist the writing of working software
- Checking code into version control according to company version control policy
- Working with databases
- Refactoring old code so it runs faster and more efficiently
- Testing software via automated methods, including but not limited to writing and running unit tests, functional tests, integration tests, as well as testing using manual methods
Skills We’re Stoked About
- At least 8 years of professional experience (or equivalent), including an expert level understanding of Android OS programming with Java
- Expert level understanding of object oriented programming concepts and SOLID
- Expert level of understanding of threading, networking, and memory management
- Understanding of advanced software engineering techniques
- Knowledge of multiple areas of software engineering
- Speaking intelligently and with authority about a variety of technology topics
- Bachelors or Masters degree in Computer Science, Engineering, or Mathematics
- Expertise in Java and developing native Android Applications with SDK
- Proven successful track record showing an aptitude for engineering and product sense
- Experience with JUnit, implementing automated tests, including unit, functional, and integration tests.
- Experience with Git, continuous integration, Jenkins, Gradle, Groovy, Maven, ProGuard, and Android builds
Bonus Skills We’re Stoked About
- Expertise with XML, JSON and REST-based APIs
- Audio, Photo, or Video editing and streaming
- Knowledge of wireless connectivity technologies, including Bluetooth LE and WiFi
- Experience integrating native modules using Android NDK
- Experience with low-level Android device drivers and hardware bring up a plus
- Alternate OS: Linux, iOS, OSX, Windows, RTOS
- Languages: C#, Groovy, Objective-C, Python, C/C++
- Knowledge of OpenGL or Vulcan
- Security and encryption protocols such as SSL, TLS, SSH, PKI, AES
- Strong debugging and Instruments skills
- Experience using Scrum or other Agile processes for software development