Our client has an immediate need for a Lead Software Engineer. This is a full time, permanent position.
The Lead Software Engineer is on an agile team developing core frameworks, components and services that are the foundational pieces for the suite of applications.
Essential Duties and Responsibilities:
- Designs, develops, and maintains frameworks, components, and services that are consumed by internal and external engineering teams following SOLID principles of software development
- Works with the architecture team to create proof of concepts for new technologies and assists in determining which are a fit for the organization
- Builds into and enhance the continuous integration / continuous delivery pipelines
- Writes code to develop proof of concept and pilot products for both internal and external consumption
- Acts as a liaison to internal and external teams and assists in the onboarding process of new components and services
- Conducts code reviews and ensure code aligns with standards
- Exhibits a leadership style and force multiplier that helps to grow others around the organization
- Serves as a key collaborative team player and leader working on a scrum team
- Participates in scrum activities and ceremonies
- Works in a team environment or paired programming
- 7 or more years of relevant, hands-on engineering experience
- Expert level in Java programming language and object-oriented design principles
- Experience with highly concurrent and multi-threaded web application and service development experience
- Experience developing web applications and service-oriented architecture
- Experience working on enterprise level business applications
- Experience building highly scalable RESTful services
- Experience with streaming technologies like Kafka
- Experience with application build process and integration and deployments to on-premise and/or cloud environments like AWS and Azure
- Experience building core components and services for alerting, monitoring, logging, builds, deployments, authentication, authorization, etc.
- Experience writing unit tests in testing frameworks like JUnit or MS Test
- Experience evaluating and implementing best practices tools and techniques for software development, leading code reviews and coaching/mentoring engineers
- Various programming languages are used or will be used in the future, must have the willingness learn and switch between technologies like C#, Python, and Java.
- Demonstrates proficient leadership skills