The Senior Software Engineer 2 is a seasoned software engineer who designs, develops, troubleshoots and debugs complex software applications, demonstrating for others how to resolve issues in innovative and practical ways. The role works on problems of diverse scope where analysis of data requires evaluation of identifiable and obscure factors, applying good judgment in selecting methods and techniques for obtaining solutions; takes initiative in planning and prioritization of design and development activities to resolve a wide range of issues; interacts with senior internal and external personnel; and may act as a technical lead on complex projects. As a recognized specialist in one or more fields, the role is a key contributor to complex projects, advising on design and development approach. Through leadership and expertise, the Senior Software Engineer II acts as a role model to inspire, teach and help develop team members, moderates peer review and mentors junior staff.
If focused on Globalization, the individual participates in the above activities by designing and implementing detailed internationalized / localized software and consulting long term technical architecture and direction.
Primary Duties / Responsibilities
•Responsible for planning, prioritizing, organizing and performing technical work and ensuring the integrity of significant and diverse projects; provides signification input to the analysis and conceptual design of proposed projects, utilizing professional experience in the development of specifications, design parameters, and alternative solutions; assists in determining the technical direction for implementation of projects; coordinates design activity with other programmers on technical aspects relating to the project; proactively spreads knowledge within the team and demonstrates software development best practices within projects, typically as a requirement lead of multi‐person product development projects （this work is across all sub‐disciplines of software and systems engineering, including: requirement development, product design, software estimation, software design, software construction （coding）, software test, software performance measurement, software product information creation and performing software maintenance）.
•Analyzes requirements and writes software requirements and design specifications for projects of large and complex scope; may act as a technical lead in design and development activities; acts as key contact for integrity and quality of technical work on significant projects; participates in determining feasibility of proposed projects and the overall plan for implementation.
•Actively supports and provides guidance the company's software engineering processes and standards.
•Reviews progress and evaluates results of assigned technical projects and processes against conformance to plans and specifications; takes initiative to suggest specific modifications to design and development activities to improve future results; prepares status, technical, and management reports as required.
•Establishes and maintains thorough and accurate documentation of all work; writes and demonstrates for other proper technical specification documentation and leads reviews.
•Implements, unit tests, debugs and integrates code of high complexity; demonstrates for others how to design, write, conduct, and direct 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; develops and initiates design changes or enhancements as necessary.
•Participates in defining process enhancements and demonstrates to working groups ways to improve specific work practices in the wider organization （e.g., requirement specification, peer review, coding standards）; recommends and executes continuous quality improvement in meeting internal and external customer requirements （including customer escalation and cross‐ team support）.
•Serves as technical expert providing direction, guidance, delegation, and project management within a project/scrum team; is responsible for the integrity of technical work on significant concurrent projects, and actively participates in teaching and developing technical team members.
•Acts as a subject matter expert providing input and guidance to engineering teams other departments （Products, Marketing, Research, Ops） on technical matters and product designs and may work with vendors or customers on technical information or modifications related to design, development, and research projects.
•Actively pursues and encourages others to acquire information and training regarding trends and advancements within area of specialization, incorporating these improvements where applicable; attends technical conferences as appropriate and shares acquired knowledge and insights with others; may recommend and lead peer training activities.
•Develop and implement code for moderately complex software applications' globalization development （both internationalization and localization）.
||Qualifications （Knowledge, Skills, Abilities）
•Solid experience in C/C＋＋ program languages.
•Solid Experience in other program languages （e.g. Java, Objective－C, C#, Assembly, etc.）.
•Solid experience in Windows and/or UNIX/Linux OS concepts.
•Solid experience in one or more of specific platforms programming below.
○ Android platform programming （Java on Eclipse ＋ Android SDK）.
○ iOS platform programming （Objective－C on Xcode ＋ iOS SDK）.
○ Mac OS X platform programming （Objective－C on Xcode）.
○ Modern web application programming （e.g. ASP.NET, Silverlight, JSP, AJAX, Google Web Toolkit）.
•Solid experience in internationalization programming （e.g. locale and language logics, Multilingual UI architecture, Unicode and Multi Byte Characters Set logics, Input Method for international characters）.
•Experience in localization engineering （e.g. UI translation arrangement, translation tools development and support, translation automation） a plus.
•Experience in scripting （e.g. WSH, Windows Power Shell, Shell Script, Perl, PHP, Ruby, Python） a plus.
•Extensive knowledge and discipline in software engineering process; experience as a technical lead on complex projects, providing guidance on design and development approach.
•Extensive knowledge and discipline in globalization （internationalization and localization） engineering process.
•Solid experience with more advanced programming environments and concepts （e.g. OS internals, network appliances, security, virtualization）.
•Experience helping others to design, write, conduct, and direct the development of tests.
•Good understanding of Project Management methodologies.
•Experience mentoring/leading an engineering team through a technical project.
•Demonstrated technical leadership skills and ability to transfer knowledge effectively.
Requirements （Education, Certification, Training, Experience）
•BS degree or equivalent in computer science, electrical engineering, or related field. For individuals holding an advanced degree in one of these fields, additional years of formal education may be regarded as equivalent work experience.
•6＋ years of directly related work experience for Bachelor's degree （4＋ years for Master, 3＋ years for PhD）.