Primary Responsibilities
• Responsible for analysis, design and development activities on multiple projects. Plans, organizes, and performs the technical work within area of specialization. Participates in design activity with other programmers on technical aspects relating to the project. Estimates, creates and delivers work products across the sub-disciplines of software and systems engineering.
• Contributes to the integrity of technical work on significant concurrent projects. Analyzes requirements, and writes software requirement and design specifications as a subject matter expert and/or owner of multiple moderate-complex software modules.
• Implements, unit tests, debugs and integrates complex code. Designs, writes, conducts, and directs the development of tests to verify the functionality, accuracy, and efficiency of developed or enhanced software. Analyzes results for conformance to plans and specifications making recommendations based on the results.
• Generally provides technical direction and project management within a project/scrum team with increased leadership of others. Provides guidance in methodology selection, project planning, the review of work products.
• Works closely with other engineering team members and departments (Products, Research, Ops) on technical matters and may interact with vendors or customers on technical information or modifications related to design, development, and research projects.
Skills & Knowledge Requirements
Education
BS degree or above in computer science, electrical engineering, or related fields, with a minimum of 3 years of directly related work experience on software development.
Skills
• Expertise in one or more object oriented languages (e.g. C++ or Java), and one or more scripting languages (e.g. Shell, Python, Perl, Java script etc.).
• Expertise in and experience with Internet technologies (e.g. TCP/IP, HTML), Networking technologies and multi-threaded programming.
• Expertise in Windows, or Linux, or Unix programming, and OS concepts.
• Experience in Windows Kernel, or Linux Kernel programming and system start-up process
• Familiar and experience with relational database technologies (SQL, schema design) highly desired.
• Advanced knowledge/ability to incorporate product quality in software requirements for features and system qualities(including performance and security), product design, software design, estimates, source code, test plans, unit test harnesses, software and system performance data, software product information, bug fixes.
• Knowledge and experience with OOAD principles and methodologies (e.g. UML).
• Advanced knowledge of Configuration Management tools (Perforce, or ClearCase, or SVN etc.) and processes, and engineering tools
• Good understanding of Project Management methodologies
• Experience helping to development less senior members of a development team.
• Must be a team working player
• Fluent oral and verbal English, and good communication skills
Additional skills:
• Experience on C#, or object oriented languages other than C++/Java, and .Net platform
• Experience in Web application technologies such as SOAP, xml, ASP/JSP
• Experience developers on Android, iOS systems
• Experience in Globalization (G11N) development
• Other shining technical skills not mentioned above