Summary
Responsible for designing and programming a small module or a large component and designing a feature, set of features, or whole feature area. She/he will work independently and contribute to the immediate team and to other teams across business. She/he will Lead design discussion in a limited manner.
Role Overview
- Identify the scope of the work, provide initial estimate and justify the estimate with facts
- Demonstrate the understanding of Agile software development lifecycle and able to distinguish the core inputs and outputs in each cycle.
- Engage in technical discussions; participate in technical designs and present technical ideas through white boarding
- Execute in a fast pace delivery mode and focus in delivering tasks to meet the product release goal
- Maintain code quality through best practices, unit testing and code quality automation
- Seek and provide feedback on design and development
- Demonstrate the ability to make informed technology choices after due diligence and impact assessment
- Understand whole product, its modules and the interrelationship between them while being an expert in the assigned component or module
- Help in designing interfaces and information exchange between modules
- Articulate the need for scalability and understand the importance of improving quality through testing.
- Be an expert in writing code that meets standards and delivers the desired functionality using the technology selected for the project
- Drive design reviews, define interfaces between code modules, and applies existing technology to designs
- Be an expert in assessing application performance and optimizing/improving it through design and best coding practices
- Be an expert in core data structures as well as algorithms and has the ability to implement them using language of choice
- Be responsible for providing technical leadership and defining, developing, and evolving software in a fast paced and agile development environment using the latest software development technologies and infrastructure
- Provide guidance to a team of 8 to 10 developers with either planning and execution and/or design architecture using agile methodologies such as SCRUM
- Work with Operations team for Operations Excellence of the product
- Work with Product Line Leaders (PLLs) to understand product requirements & vision
- Write code that meets standards and delivers desired functionality using the technology selected for the project
The Ideal Candidate
- Ideal candidate should have experience in Java, Spring Boot, Microservices, RESTful APIs, AWS, web development
Required Qualification
- Bachelor's Degree in Computer Science or STEM Majors (Science, Technology, Engineering and Math) with 8+Years experience
- Strong knowledge of Object Oriented Analysis and Design, Software Design Patterns and Java coding principles
- Hands-on experience in web services (REST, SOAP, WSDL etc.), using Apache Commons Suite & Maven, SQL Database such as Oracle MySQL, PostgreSQL etc.
- Hands-on experience in utilizing Spring Framework (Core, MVC, Integration and Data)
- Hands-on experience with web development using HTML5, Java Script, jQuery, CSS. Also, experience in implementing Java OSGi modules and using an OSGi container.
- Experience with Play framework, Vue JS is a big plus
- Exposure to working with Visualization tool such as Spotfire and Cloud Data Engineering in AWS services is a big plus.
Preferred Qualifications
Business Acumen:
- Strong problem solving abilities and capable of articulating specific technical topics or assignments
- Experience in building scalable and highly available distributed systems
- Expert in breaking down problems and estimate time for development tasks
- Evangelizes how our technology solves customer problems from a technology and business perspective
Leadership:
- Demonstrates clarity of thinking to work through limited information and vague problem definitions
- Influences through others; builds direct and "behind the scenes" support for ideas
- Proactively identifies and removes project obstacles or barriers on behalf of the team
- Shares knowledge, power, and credit, establishing trust, credibility, and goodwill
Personal Attributes:
- Able to work under minimal supervision
- Excellent communication skills and the ability to interface with senior leadership with confidence and clarity
- Able to work well with global teams, including time-zone flexibility
- Skilled in providing oversight and mentoring team members. Shows ability to effectively delegate work