The Software Engineer II creates anddesigns new software,applying theoretical principles of computing and mathematics in order to analyze, test and assess software systems. The Software Engineer II evaluates user needs whiledesigning and testing new software to meet those needs. This may involve analyzing and developing flow charts, models, diagrams and algorithms in addition to coding or modifying software. This position researches and develops newtechnologiesand processes/algorithms, and introduces them to the enterprise as needed to improve revenue and customer satisfaction.
• Influences the discovery and decision-making process when changes to standards and technology are required (tools, conventions and design patterns).
• Serves as a team member in the design and new technology proof of concept for applications for new technology.
• Independently develops and implements software for ecommerce applications and related technology, with minimum oversight
• Leads code reviews to ensure functional performance specifications are met and engineering standards are followed.
• Mentors Software Engineer I
• Delivers code that meets specifications, creates little to no operational support overhead and requires minimal support during development from more senior engineers.
• Creates self-documenting designs and/or clearly communicates intent via comments in code, on specifications, in as-built documentation and during code reviews.
• Writes unit and integration tests for each deliverable, effectively and comprehensively exercising the code; prevents the introduction of subsequent bugs, and corrects existing bugs or design issues when discovered.
• Bachelor's Degree in Computer Science, a related technical or scientific field, or equivalent experience
• Analysis, design, coding and implementation of large-scale applications.
• Participation through completion of a complex software project (at least 1 year on project)
• Knowledge on OO design including extensive design patterns & their applicability
• Solid knowledge of algorithms, data structures and complexity theory
• Ability to effectively write so requirements are clear and readily understood.