Plans, designs, modifies and implements software applications from functional and system design specifications.
Codes, integrates, tests, debugs, and refines the software to produce the required product.
Develops software tools and subsystems to support software development, test, and reuse, and manages their implementation.
Enhances software to reduce operating time or improve efficiency and robustness.
Reviews, evaluates, and analyzes design interfaces.
Prepares, reviews, and evaluates interface documentation, specifications, test plans and procedures.
Assists in definition, analysis and allocation of requirements.
Supports system test programs and analyzes system testing results.
Maintains the developed software efficiently through familiarity with software lifecycles.
Documents designs in engineering documents including functional block diagrams and data/logic flow charts.
Conducts in-depth troubleshooting and debugging of designs.
Provides solutions and recommendations to project lead.
Develop mobile applications and SDKs from start to finish and a part of the full lifecycle.
Test and troubleshoot programs in a lab environment.
Create unit tests for programs.
Create sample code and documentation.
Qualifications :
Deep architectural and software design skills, and can write clean, maintainable code.
Proficient with Java and/or C++ for Android application development with exposure to full software development lifecycle.
Strong understanding of interactive application development paradigms, memory management, file I/O, network & socket programming, concurrency and multi-threading.
Must be familiar with commonly used design patterns, data structures and object oriented design.
Possess full understanding of Android user interface designs and standards.
Working knowledge of building and packaging SDK libraries on Android a plus.
Unix/Linux, MySQL, Algorithm Development, Data Manipulation, Data Aggregating/Processing.
Excellent SQL, MySQL or related database language skills.
Strong experience in Linux and/or Unix environments.
Strong experience in Android environments and Android application development. (Yes keep this).
Strong understanding of working with data such as data manipulation, data aggregation, data processing, or related.
Ability to resolve complex problems quickly and efficiently. IFE development involves many system level issues including real time, performance and reliability requiring understanding of distributed processors in an embedded system environment. Many problems are multi-dimensional requiring non-traditional solutions to fit within the constraints of an embedded system providing highest value to the customer and end user to bring entertainment in an aircraft.
Ability to work well in a fast-paced environment with user-centered, iterative design and development cycles. (Yes keep this.)
Demonstrated ability to manage multiple priorities and make efficient use of given resources such as system lab time and down stream process owners and tasks.
Proficient in project planning and ability to plan for internal and/or external dependencies.
Ability to work well in a small-team setting and interface with customer, i.e. in the way of engineering documentation.
Uses clearly demonstrable skills as an experienced professional within the Software Engineering field.
Must be capable of clearly identifiable contributions to the success of a product or project.
Knowledgeable with commonly used concepts, practices, and procedures within the Software Engineering field.
Uses professional concepts while applying company policies and procedures to resolve a variety of issues.
Works on problems of moderate scope where analysis of situations or data requires a review of a variety of factors.
Familiarity with a variety of the discipline field's concepts, practices and procedures.
Demonstrated engineering communication expertise including concise written and verbal skills is a must.