The Role / Responsibilities:
An Assistant Director- Senior Software Engineer fulfills the following responsibilities, with occasional guidance of more senior team members:
- Interpret business requirements for a Business Mission/Epic with the assistance of Business Analysts.
- Provide feedback on requirements from a technical perspective, and provide estimates for user stories and tasks.
- Author technical design documents.
- Take ownership of stories; Implement and test features based on the requirements.
- Refactor design and implementation for stories owned, based on requirement changes.
- Define and maintain coding standards, and guide team members to comply with these standards.
- Collaborate with quality assurance engineers to fix defects.
- Collaborate with build and release engineers to prepare packages and solve environment issues.
- Investigate and find the root cause for software problems reported by clients.
- Maintain technical documents.
- Review code of less senior team members, provide guidance from technical perspective.
- Work with more senior team members to continuously improve our engineering practices.
- Mentor more junior engineers.
- Conduct training sessions and proactively share knowledge in or across teams.
Moody's Analytics Qualifications:
- Minimum Bachelor’s degree in Computer Science or related major from top institutions, Masters degree is a plus.
- Deep understanding of Object Oriented design and development
- 5+ years of professional software design and development experience on multi-tiered enterprise applications.
- Proficient in data access techniques for both relational and NoSQL databases
- Works well within the constructs of an agile development process, including SCRUM, Unit Testing, Continuous Build and Integration, etc and suggests improvement to this process
- Quickly learns new technologies; proactively seeks to improve
- Excellent verbal and written communication skills
- Ability to participate in multiple projects concurrently and to own a business mission or a lead a small team
- Works well in a fast-paced team environment; able to work under pressure to meet tight deadlines
- Has superb analytical and problem solving skills.
- Competent in Development tools: Visual Studio, Eclipse (CDT), IntelliJ IDEA, WebStorm, etc.
- Competent in Development Platforms: Microsoft Windows, Linux.
- Competent in Application Servers: IIS, Tomcat, WebSphere, Resin, Jetty, Apache, ExpressJS, etc.
- Competent in Application Frameworks & Engines: ASP.NET MVC, ASP.NET WEB API, Microsoft WPF/WCF/WWF, Linq, Unity, Entity Framework, SharePoint, Microsoft Enterprise Library, etc. J2SE, J2EE, JDBC, RMI/IIOP, Spring framework, JPA(Java Persistence API) or other ORM framework such as Hibernate or iBatics, JTA(Java Transaction API), Java WebService, JavaMail and JMS, etc. STL, Boost, GTest, etc. JQuery, Node.js, Angular.js, Bootstrap, etc.
- Familiar with Databases: SQL, Oracle, Sybase, MySql, MongoDB, etc.
- Competent in Others: Jira, Rally, CVS, SVN, Perforce, Git, Jenkins, etc.