Senior Software Engineer, Java
Successful candidate will be a technical leader who can coach and mentor team members to a higher level. Candidates must possess expert knowledge developing server-oriented applications (Java/C#, Spring, JavaScript, and HTML5). Must have advanced knowledge of unit testing, configuration management best practices and software quality metrics. Must have advanced knowledge of RDBMS concepts and DB design approaches; pros and cons of various designs, coding and testing approaches.
• Mentor and guide team members to successfully ship products in accordance with release roadmaps.
• Coach and mentor other team members (regardless of role – developer, tester, or product manager) on appropriate use of technology to address customer and business needs.
• Designs, constructs, tests and debugs technical solutions including complex components and in compliance with defined engineering standards.
• Develops specifications and technological approaches for all but the most complex software applications; coding patterns and key application components.
• Maintains technical specifications and supplementary project documentation in compliance with changes in the system or its environment.
• Estimates efforts required for project implementation and accomplishes the tasks in compliance with a schedule defined by management.
• Takes full responsibility for the implementation of project parts including work on new projects.
• Resolves development issues of high complexity.
• Regularly participates in reviews of team work products.
• Identifies system and engineering process deficiencies; proposes and implements solutions and process improvements.
• Works under minimal supervision and schedules own time to correspond to the overall development plan.
• Enforces development deadlines and schedules.
• Masters Degree in related computer or engineering field and 3 years of experience OR a Bachelor’s Degree in related computer or engineering field and 7 years of experience required
• Experience with agile software development methods in a geographically distributed environment.
• Past technical responsibility of a shipping a software product is required. Consulting experience will not be considered.
• 7+ years of commercial product development experience.
• Must be proficient in more than one of the following:
* Java or C#.
* Web technologies (HTML5, JavaScript, JQuery, REST).
* One or more RDBMS (I.e., proficient in SQL).
• SOLID principles of objected-oriented programming and design
• Comprehension of different types of testing i.e. unit, system, integration & performance.
• Good interpersonal, communications skills and ability to work independently.
• Strong analytical and problem solving skills and proficient technical writing.
• Demonstrated ability to coach and mentor others. Candidates may be asked to deliver a short presentation on a technical topic of their choice as part of the interviewing process.
• Knowledge of cross platform development is recommended.
• Previous experience working with Software Version Control required.