Lead Software Engineer
As a Lead Software Engineer, the ideal candidate will have designed, developed, unit tested, implemented and documented solutions that include not only the code to supports business functionality, but also the underlying infrastructure required to run that code and the systems required to deploy it. The candidate should also possess technical skills and experience in the virtual infrastructure domain, in particular Amazon Web Services. The preferred candidate would also have knowledge and experience with continuous integration and continuous delivery systems.
The candidate will report to the Director and work within an agile application team that develops and maintains highly visible and critical applications. The candidate will lead by interacting with application, domain and solution architects, delivery leads and all levels of software engineers to establish and enforce application technology standards, design patterns, process, development, and deployment.
The candidate will have responsibility to design, implement, unit test, document and maintain complex technical software solutions in support of the application development and QA processes. Additionally, you will be expected to ensure communications and relationships with customers and cross-team members are professional and meet expectations.
What you’ll do
- Leads the development and implementation of solutions, based on a set of standards, patterns and processes which establish consistency across the enterprise data, reduce risk, and promote efficiencies in support of the organization’s goals and objectives.
- Developing full stack solutions and continuous delivery frameworks that improve the ability of the CB IT delivery teams to efficiently deliver solutions with quality.
- Responsible from coordinating and developing the continuous integration for the application source code and constantly seeking to enhance the continuous integration methods of the team to ensure extremely high quality of code.
- Seeks out learning of new technologies and becomes a mentor to more junior team members.
- Provides feedback on the team’s performance and challenges that the team is facing.
- Works with other teams’ engineers to build a streamline solution for external integration requirements
- Write complex code, building infrastructure as code, work with immutable “cloud” based environments, and build the supporting automated toolsets to test and deploy the systems they develop.
- Responsible for the quality of their work; will develop and implement a set of quality criteria and the associated validation method to ensure that any deliverable meets the expected quality levels of our customers, use quality management to ensure quality levels are maintained, seek new approaches and techniques to improve quality levels, employ reviews and observations to maintain the quality and continuous improvement process, and analyze the impact of quality control and quality assurance on project performance.
- Use metrics to establish feasibility of new initiatives and develop plans, including budget, sequencing and time frames.
- Actively review their own and the team’s work processes and implements improvements seen from other teams or in industry to drive continuous improvement of the team’s efficiency, speed, and quality
- The candidate will also take responsibility for creating design specifications, unit testing, and preparing technical documentation.
- A bachelor’s degree in Computer Science, Engineering or MIS.
- 10 - 12 years of experience in software systems, programming, database development, and infrastructure development and administration
- Minimum 7 years demonstrated experience with full stack development.
- 8+ years demonstrated experience with AWS cloud supported programming languages like Java, Node JS, or Python development.
- 2+ years hands-on with AWS Lambda, SNS/SQS, S3, IAM, CloudWatch, EC2, RDS and DynamoDB, AWS CLI
- Ability to use or learn: KMS, ALB/ELB, Route 53, Docker Containers, MFA,
- Fluency with CI/CD toolsets such as: AWS Codestar, Jenkins, Ansible, CloudFormation, BitBucket, Artifactory
- Working knowledge of distributed architectural design patterns
- Strong and evolving competence in several programming languages and technologies, working knowledge of multiple tools sets, technologies and implementation environments
- Ability to work independently
- Strong problem solving and analytic skill Ability to handle multiple projects and assignments simultaneously and effectively in a cross-functional team environment
More about you
- Expertise in the knowledge of programming languages, relational databases, and NoSQL databases
- Experience building infrastructure as code using AWS CloudFormation or similar scripting techniques
- Familiarity with monitoring tool suites like DataDog, SumoLogic, NewRelic, and Nagios
- Experience with Chef, Puppet, Salt, or Ansible in production environments
- Strong practical Linux based systems administration skills and scripting experience in a Cloud based environment
- Experience with automated testing tools (i.e. selenium, Cucumber) are a plus