The Senior Engineer - Software develops business software solutions through object and data modeling, database design, programming, quality assurance, and implementation support.
Key Areas of Responsibility
- Work with business teams to clarify requirements and business needs.
- Collaborate with other engineers and architects as appropriate to determine optimal solution architecture, efficiency, maintainability, and scalability.
- Develop high-level system narratives, storyboards, and user interface prototypes.
- Develop system test plans, ensure quality assurance standards are achieved, and validate that business goals are accomplished.
- Develop and maintain applications to CDW standards and quality.
- Mentor and provide design oversight for non-senior members of the team.
- Complete projects/tasks on a timely basis, according to commitments made to stakeholders and management
- Report project/task status to the appropriate manager on a weekly basis (at minimum).
- Ensure stakeholders are responded to in a timely and profressional manner. Foster open lines of communication with all parties.
- Member of on-call rotation to provide 24 X 7 support to critical systems and ensure availability objectives are met.
- 5 years experience in application development.
- Bachelor degree in Computer Science, or equivalent knowledge/experience.
- Knowledge and skill level in identified competencies meet minimum requirements for role.
Other Required Qualifications
- Demonstrated understanding of object-oriented design and programming techniques.
- Excellence verbal and written communication skills, with the ability to effectively interact with all coworkers and stakeholders, in including senior leadership.
- Demonstrated resourcefulness in the software development process.
- Demonstrated creative problem solving skills.
- Ability to work effectively with and support the needs of, project team members and stakeholders
- Possess an understanding of the stages of the software development life cycle - Requirements gathering, Design, Development, Testing, and Implementation.
- Demonstrate solid interpersonal skills and be resourceful in order to participate in the development process
- Working knowledge of at least three programming languages.
- Experience with testing frameworks (e.g. PHPUnit, JUnit).
- Exposure to or experience with web services (REST or SOAP).
- Some knowledge of Apache HTTP Server.
- Experience with SQL (MySQL, MSSQL, PostgreSQL, etc.).
- Experience with Linux command line (bash), VI, etc.
- Experience with version control software (CVS, Subversion, Bazaar, Git).
- Experience with Liferay or similar portal platforms.