Job Description
Work hard. Have fun. Make history.
We are looking for passionate, hard-working, and talented software development engineers who have experience building innovative, mission critical, high volume applications. You will have an enormous opportunity to make a large impact on the design, architecture, and implementation of cutting edge products used every day, by people you know.
The Role:
The Senior Software Development Engineer – Framework will provide technical leadership and contribute to the definition, development, integration, test, documentation, and support of custom libraries across multiple platforms, new product initiatives, and feature development. This hands-on position requires broad engineering competence and in-depth technical knowledge of embedded software development, as well as demonstrated experience successfully planning, organizing, and conducting software development projects in a dynamic environment. Responsibilities include:
- Architecting software solutions, determining current limitations and compatibilities between subsystems, selection of new concepts and methodology, and development of major routines and utilities.
- Investigating, prototyping and delivering new and innovative solutions
- Maintaining and improving existing software
- Preparing technical requirements and software design specifications
- Instilling best practices for software development and documentation, assuring designs meet requirements, and delivering high-quality work on tight schedules
- Establishing architectural principles, selecting design patterns and mentoring team members on their appropriate application
- Mentor other software development engineers to maintain architectural vision and software quality
Basic Qualifications
- Bachelor’s degree in Computer Science or related technical field, or 4+ years relevant work experience
- 7+ years of software development building production software systems, with at least 3 years experience developing embedded applications
- 7+ years of experience with at least one modern programming language such as C, C++, C#, Java, PHP or Python and object oriented design patterns
Preferred Qualifications
- Master’s degree
- Experience working with networking or communications devices in an embedded environment
- Experience on multiple Linux platforms and mobile devices (Android, iOS)
- Embedded Java framework experience (Java 2 Mobile Edition, CDC, PBP)
- Experience in applying open-source technologies (Linux, SQLite, MySQL, OpenGL, Spring, Hibernate)
- Ability to work closely with other developers to understand their needs and issues and to develop cooperative solutions
- Experience defining system architectures and exploring technical feasibility tradeoffs
- Robust project planning/execution skills including estimating, scheduling, and executing on committed schedules
- Demonstrated ability to mentor other software developers to maintain architectural vision and software quality
- Excellent judgment, organizational, and problem-solving skills
- Ability to work in a dynamic environment