Sr. Embedded Software Engineer
Who We Are: Panasonic Avionics takes entertainment to new heights. We’re the world’s leading supplier of (IFEC) inflight entertainment and communications systems that allow airborne passengers to get their fix of live TV, movies, music, interactive games, maps, and much more! We make traveling on airplanes more exciting!
What We Value: As an organization, we value people who are motivated and driven. We value a collaborative work environment that enhances careers and positively impacts society. We value our diverse work culture committed to delivering products and achieving high results. Seeing our products bring delight to others is just one way we measure success.
Why You Should Join: A job is only part of what we offer. See how you can flourish in a career while getting the support and resources from some of the most talented people in the industry. You will work on technology that makes traveling the world that much better. Lastly, you will be rewarded with world class benefits and competitive wages. Come aboard, we’ve been expecting you!
WHAT WE WILL BE LOOKING FOR YOU TO DO IN THIS CRITICAL ROLE:
We are looking for a Senior Software Engineer with expertise in C/C++ embedded software development to help create solutions for our next generation In Flight Entertainment and Connectivity systems. Projects include developing features to enable our airlines customers to deploy and manage software, media and content to the fleet utilizing latest development methods and technologies. Will have specific technical project or product responsibility.
WHAT YOU’LL BE RESPONSIBLE FOR IN THIS ROLE:
As a Senior Software Engineer, you will:
- Plan, design, implement and modify software applications from functional and system design specifications
- Code, integrate, test, troubleshoot, and refine software deliverables to produce highest quality solution that meets the requirements.
- Use object-oriented design methodology in building robust modular software applications.
- Develop software tools and subsystems to support software development, test including automation
- Enhance software to reduce operating time or improve efficiency and robustness
- Review, evaluate, and analyze design interfaces
- Prepare, review, and evaluate test plans and procedures
- Assist in definition, analysis and allocation of requirements
- Support system test programs and analyze system testing results
- Maintain the developed software efficiently through familiarity with software lifecycles
- Document designs in engineering documents including functional block diagrams and data/logic flow charts
- Develop software efficiently through familiarity with Agile Software practices
WHAT YOU WILL NEED TO BE SUCCESSFUL
- Must be experienced in developing and debugging in Linux embedded environment
- Must have Experience in developing server-side applications & relevant software modules in C/C++, multi-thread, with expertise in object-oriented development and architecture
- Network programming experience including TCP/UDP/IP, REST, SOAP, JSON, HTML is strongly desired
- Experience with architecture and design of software built from scratch is strongly desired
- Proficiency in developing and working with shell scripting is desired
- Knowledge in version control tools such as SVN, git is desired
- Knowledge in database such as SQLite or NoSQL is desired
- Knowledge in design patterns such as MVP/MVC is desired
- Must be able to work in a fast-paced dynamic environment
- Must have demonstrated ability to manage multiple priorities and make efficient use of given resources such as system lab time and downstream process owners and tasks
- Must be able to use expertise, experience and judgment to plan and accomplish goals
- Must be proficient with commonly used concepts, practices and procedures within the Software Engineering field
- Must develop solutions to clearly defined problems of diverse scope. Analysis involves selecting the best alternative method or process from among several existing alternatives, or based on evaluation of identifiable factors
- Demonstrated ability to work well in a fast-paced environment practicing Agile software development principles.
- Proven experience in continuous integration / continuous deployment and test-driven software development
- Must have demonstrated engineering communication expertise including concise written and verbal skills
- To be successful in this opportunity you will need the following:
- Bachelor's degree in Computer Science, Computer Engineering, Information System; Master's degree in above disciplines is preferred.
- 10+ years' experience in embedded systems development in C/C++
- Agile / Scrum certification or proven experience practicing Agile software development principles.