The Lead Application Developer supports business process automation through technology solutions. The purpose of this role is to develop business software solutions for complex and large-scale projects through object and data modeling, database design, programming, quality assurance and implementation support. The Lead Application Developer participates in application standards development and serves as an evangelist for best practices in software development and DevOps.
Key Areas of Responsibility
Perform all stages of the software development life cycle, self-manage activities on smaller projects and serve as technical lead on small, medium and large projects.
Determine operating requirements, costs, as well as resource needs for assigned projects and work in conjunction with a project manager on initiatives.
Co-lead with Scrum Master employing object-oriented analysis and design techniques including use case analysis, object modeling, and database schema design to ensure business requirements and design goals are met.
Participate in application architecture planning (including system partitioning and framework design) to determine optimal solution architecture, efficiency, maintainability, and scalability
Lead / develop:
High-level system narratives, storyboards, and user interface prototypes;
Detailed design specifications for hardware and software use by the technical team;
System test plans, ensure software quality assurance (SQA) standards are achieved, and validate that business goals are accomplished;
Detailed estimates for projects, including resource allocation, timelines, and budget.
Develop applications to CDW coding standards and quality.
Developing systems and applications to CDW coding and quality standards
Collaborate with business and project teams to gather requirements and business needs.
Make technical decisions to meet the design goals laid out in product road map and by management.
Technically manage complex and large-scale project efforts in development, maintenance and enhancement of business system applications
Collaborate with developers and architects (when appropriate) to determine optimal solution architecture, efficiency, maintainability and scalability
Complete projects/tasks on a timely basis, according to commitments made to stakeholders and management
Develop high-level system narratives, storyboards, designs and user interface prototypes
Develop system test plans, ensuring achievement of software quality assurance (SQA) standards, and that validate achievement of business goals
Report project/task status to the appropriate Manager, DevOps Engineering on a weekly basis
Identify issues that require more attention, and work to resolve issues based on an understanding of the business problem being solved.
Draw appropriate resources together in order to address technical issues.
Direct and focus the efforts of the technical project team.
Monitor progress of project teams.
Mentor and coach junior team members
Travel between local facilities as necessary
Bachelor’s degree or equivalent IT knowledge/experience.
10 years application development experience, or 7 years CDW Application Development experience
Other Required Qualifications
Experience in .NET & C# programing experience – minimum 10 years combined DevOps and / or application development experience
Proven ability to solve new challenges and problems quickly and independently
Excellent written and verbal communication skills with the ability to communicate effectively with all stakeholders including senior leadership
Demonstrated ability to understand and articulate details and impacts of complex proposed solutions
Strong planning and organizational skills with critical attention to detail and creative problem-solving skills
Proven track record of balancing multiple priorities simultaneously with the ability to adapt to the changing needs of the business while meeting deadlines
Demonstrated ability to mentor and coach others
Demonstrated ability to build rapport and maintain productive working relationships cross-departmentally and cross-functionally.
Advanced knowledge of product lifecycle and understanding of the role of methodology/frameworks.
Advanced knowledge of Chef (strongly preferred) or other Infrastructure as Code platforms such as Puppet
Experience with source control systems such as TFS (strongly preferred) and Git
Experience configuring builds using tools such as Microsoft VSO / VSTS builds and MSBuild
Experience with deploying code, continuous integration, continuous delivery across multiple non-production and production environments
Experience with implementing and managing software deployment tools (i.e. XebiaLabs, Octopus, Jenkins, UrbanCode)
Experience scripting with PowerShell
Experience with Windows server configuration including operating systems and components such as IIS
Experience working in Azure
Experience with general network concepts such as DNS, firewalls, load balancing (F5), switching, routing, etc.
Experience acting as a liaison between application development, infrastructure, change management, and build engineering teams
Experience in using cloud APIs to automate provisioning, deployment, improving system performance and stability a plus.
Experience working in an Agile Scrum environment
Strong preference for candidates who have worked on large-scale enterprise applications (thousands of users, millions of lines of code)
Strong understanding of Internet protocols including HTTP, SSL, TCP, IP is a plus Familiarity with TFS source control best practices a plus
Familiarity with Python and Ruby scripting is a plus
Familiarity with Nuget package distribution a plus
Familiarity with build engineering concepts a plus
Familiarity with static code analysis tools (such as FxCop) a plus
Familiarity with Splunk a plus
Lead Application Developer - DevOps