Job ID: 4267
This position is designed for an awesome, fun, smart, hardworking, creative, friendly, responsible person in order to effectively help execute on company vision, create great products, and make a great working environment. Senior Software Engineers are responsible for researching, designing, implementing, and testing of software on Android devices; educating other engineers; assisting technical leads and fellows with architectural decisions.
What you will do
- Design and create software in Java for Android-based phone and tablets
- Participating in software design process by asking questions, "poking holes," offering suggestions, etc.
- Following industry best practices when implementing software, especially around areas surrounding security and privacy
- 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 various types of databases, including key-value, SQL, and "NoSQL"
- Refactoring old code so it runs faster and more efficiently
- Assisting technical leads and fellows with architecture discussions and decisions
- Testing software via automated methods, including but not limited to writing and running unit tests, functional tests, integration tests, as well as manual methods
Skills we're stoked about.
- At least 3 years of professional experience (or equivalent) programming with Java.
- Expert level of understanding of Android OS
- 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 degree in Computer Science, Mathematics
- Expertise in Java and developing native Android Applications with SDK
- Expertise with XML, JSON and REST-based APIs
- Strong knowledge of MVC, OOP, memory management and threading
- Proven successful track record showing an aptitude for engineering and product sense
- Experience implementing automated tests, including unit, functional, and integration tests
- Experience with Git, continuous integration, and automated build tools
Bonus Skills We're Stoked About
- Experience with low level Android device drivers and hardware bring up a plus.
- OS: Linux, iOS, OSX, Windows, RTOS
- Experience with NDK
- Networking protocols: TCP, UDP, HTTP
- Audio, Photo, or Video editing and streaming
- Security and encryption protocols such as SSL, TLS, SSH, PKI, AES
- Strong debugging and Instruments skills
- Experience with Jenkins, Jira, and Confluence
- Experience using Scrum for software developme