Lead Tech Eng - Software Maintenance

ASG Renaissance Detroit, MI 2017-01-07
Job Summary:

Work individually and on a team to participate in all aspects of software engineering including technical design, development, testing and support. Responsible for providing hands-on support and managing the team which provides support for existing digital applications. This includes trouble-shooting, user support, operational activities, bug fixes and small enhancements. Also responsibility for larger efforts focused on improving internal maintainability.

Key Responsibilities:

-Design, development, and support of technical projects through to completion according to project standards and user satisfaction. Responsible for the delivery of small to large projects. Takes responsibility for the technical quality of medium sized projects with one or more additional resources through to completion. Projects may support multiple departments and Ilitch-owned companies.
-Lead research efforts and proof-of-concepts of new technologies. Present findings and recommendations to senior technologists in the organization.
-Develop and ensure team develops excellent quality code with a focus on stability, scalability, security, and maintainability.
-Contribute to software architecture designs. Participate in the planning and design of future software and technical architectures. Make design recommendations for the architecture for specific projects.
-Provide supervisory oversight to LCE engineers as well as external resources located locally or off-shore.
-Conduct formal design and code reviews for others’ work.
-Coordinate with QA in the development of integration test plans, test conditions, and expected test results.
-Work individually and with a project team to resolve system issues and respond to suggestions for improvements.
-Provide support individually for production applications including on-call afterhours support on a rotational basis. Ensure team is providing outstanding support and continuously develops and maintain support documentation.
-Develop estimates for completion of programming projects and in developing formal project plans for individual and team projects. Work with junior developers on developing estimation skills.
-Participates in technical aspects of system evaluation and vendor selection processes.
-Perform technical functions in the software development process such as performing builds and releases.
-Act as a subject matter expert in one or more areas of technology. Keep up to date with latest technology trends and developments. Identify technologies which should be considered for use by LCE.
-Manage the ongoing demand of support, maintenance and small enhancements. Set priorities and manage the efforts of the team to ensure customer needs are being met.

Minimum Knowledge, Skills and Abilities:

-Bachelor’s degree in Computer Science or related field
7+ years professional experience in and demonstrated expertise in multiple technologies such as:
-Microsoft .Net (C# or VB)
-HTML5 / JavaScript / CSS
-Open-source Javascript libraries
-Content management systems such as DNN, Joomla or Drupal
-Enterprise Service Bus (ESB) technologies

-5+ years experience developing software in a formal Software Development Life Cycle.
-3+ years experience using modern software architecture concepts such as MVC, SOA, SOAP, REST, and cloud/cloud hybrid models.
-Strong experience with Object Oriented (OO) techniques, including an understanding of common OO and web application design patterns
-Experience administrating formal software management and source control tools such as Team Foundation Server, Aldon, SVN, or Git and using continuous integration.
-Excellent analytical and problem-solving skills. Ability to find creative solutions to solve problems while staying within practice guidelines.
-Self-motivated, curious, creative and passionate about technology.
-Strong written and verbal communication skills.
-Experience developing formal estimations for project completion.
-Experience playing a leadership role on a software development project.
-Able to manage multiple tasks simultaneously in a fast paced environment

Preferred Skills, Knowledge and Abilities:

-Experience with Agile software development methodologies such as Scrum or Kanban.
-Masters degree in Computer Science or related field.
-Formal certifications such as Microsoft Certified Professional certifications or MCSE.