The Android Developer will ensure a quality product by not only through writing code, but also by participating in peer code reviews. The Android Developer will work directly with product managers, designers, fellow Android developers, and project managers to devise new products and features.
- Modify existing software to correct errors, allow it to adapt to new hardware, or to improve its performance.
- Develop and conduct software system testing and validation procedures, programming, and documentation.
- Confer with product owners, engineers, programmers and others to design system and to obtain information on project limitations and capabilities, performance requirements and interfaces.
- Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.
- Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
- Consult with customers about software system design and maintenance.
- Coordinate software system installation and monitor equipment functioning to ensure specifications are met.
Knowledge, Skills and Abilities:
- Knowledge of Android operating system, and development environment.
- Experience with source control tools.
- Experience with client side web technologies (HTML5, CSS, JS, Ajax)
- Understanding of RESTful API interaction and JSON
- Basic understanding of object oriented development, use of design patterns and system architecture for mobile devices
- Experience optimizing, refactoring, and debugging views and layout hierarchies with a focus on pragmatic Android layout development/design including custom themes, styles, attributes, and other resources
- Creative approach to problem solving, innovation and issue resolution
- Self-motivated and self-managed with a high degree of analytical ability and intellectual curiosity
- Understanding of the entire application stack, from mobile app, web app, application logic and SQL
- Strong communication skills and the ability to function effectively in a collaborative work environment
- Fundamentals in object-oriented design, data structures, algorithm design, problem solving, and complexity analysis
- Use of Java I/O, Collections, Algorithms and well known application frameworks
- Solid grasp of algorithms, memory management (Honeycomb, Gingerbread), MVC programming and concurrent programming
- Familiarity detecting and correcting memory usage issues, and optimizing code for application performance
- An understanding of operating system fundamentals such as processes, inter-process communication, multi-threading primitives, race conditions and deadlocks.
- Experience publishing apps
- Generally requires a minimum of two (2) to four (4) years of hands-on development or course-work experience in Java or Android application development.
- Bachelor’s Degree required. An emphasis in Computer Science is preferred