Sr. Software Engineer
Job Description Summary
The Senior Software Engineer on the CCC Consumer team will be responsible for executing the design and development of existing and new consumer facing application software and related application components. He or she should understand the application and database design, will work both independently and closely with product owner and other developers through the design, development and testing activities. The right candidate will assist with tracking performance metrics and integrate knowledge of business and functional priorities. This role is a key contributing role in a complex and crucial environment and may have dedicated responsibilities for one or more product features.
- Ability to understand the architecture and technical design of application components.
- Hands on technical development of complex application features, both frontend and backend.
- Ensure code quality and ensure testing guidelines are met.
- Ability to look beyond the status quo and identify areas of constant change / improvements.
- Ensure on-time delivery of software components to production, within their responsibilities.
- Collaborate with product stakeholders to identify functional and non-functional requirements
- Showcase strong technical expertise and understand and follow best practices, procedures, and techniques.
- Participate in open, frank discussions, especially in technical matters.
- Work with Quality Assurance and Product Owner teams to ensure that software products meet functional and non-functional requirements.
- Present and defend architectural, design, and technical choices to internal audiences
- Resolve production defects and issues
- Bachelor’s Degree in Computer Science, Software Engineering, Computer Information Systems, Mathematics or related work experience
- 5+ years of experience in Java software development with hands-on experience with Agile/Scrum methodology
- Understanding business object modeling, data modeling and application architecture.
- Experience in unit testing, unit testing frameworks, and unit testing methodologies.
- Experience in a pattern-based approach to software design. Good knowledge of software design patterns.
- Experience with Continuous Integration tools like Jenkins or Hudson.
- Some experience with building scalable platforms.
- Experience working on relational databases and applications servers, preferably Oracle based.
- Experience with performance tuning activities.
- Able to interact comfortably with other developers, within and across teams.
- Completely hands-on with coding and can demonstrate high level of problem solving.
- Proactive and detail oriented, yet comfortable working in a dynamic environment with fast paced deliveries and changing requirements.
- Highly motivated and able to work independently and apply own initiative.
- Quality-oriented with focus on product delivery