A Lead Software Engineer should have a passion for delivering high quality, customer-focused solutions. A Lead Software Engineer should have 7+ years of full-stack development experience with an eye toward code security, quality, and maintainability. This individual will usually be assigned to the development of one specific project or product, or a set of related features and deliverables. The ability to provide direction and set expectations with development staff, mentor developers, and manage development activities such as support and code reviews is a requirement to be successful in this position.
Job Requirements
- Lead a team in the development of web application features using Agile development processes.
- Provide hands-on mentoring, peer review, and coaching of developers.
- Provide technical expertise, direction, support, and assistance to product owners, quality assurance, and software developers.
- Ownership of production support (including off-hours) and troubleshooting activities within team.
- Identify and document root cause of technical issues through technical code scrutiny.
- Build user interface and server side components using approved frameworks in Java.
- Present feature designs/code for review.
- Participate in design/code reviews of other team members’ features.
- Produce high quality code to meet feature requirements.
- Ensure that secure coding practices are developed and thoroughly enforced.
- Provide software functional direction and support to product owners, quality assurance, and developers.
- Assist in the troubleshooting, diagnosis, and resolution of issues throughout the entire product lifecycle.
- Assist management with feature requirement analysis and estimation to ensure proper scope and on-time delivery of features.
- Maintain safety, security, and privacy standards throughout all areas of responsibility.
- Work with other team members at the architecture, design, and code levels to ensure standards-based, high performance systems.
Knowledge
- Knowledge of popular software development processes, i.e. Agile, Scrum, Feature Driven Development.
- Experience with troubleshooting and resolving application defects within a mature production system.
- Test-driven development.
- Relational database design and administration.
Skills
- Prior experience with SQL, Linux, and general Unix shell scripting.
- Knowledge of Oracle databases and PL/SQL.
- Experience using UML standard design artifacts such as class models and sequence diagrams.
- Experience with J2EE patterns, development best practices, and iterative methodologies (e.g., RUP, XP, FDD).
- Comfortable with Java IDEs such as Eclipse.
- Experience with Selenium automated testing.
- Strong experience with XML, Restful APIs, Client side scripting, ORM frameworks, MVC frameworks, and asynchronous messaging is required.
- Architecture experience with synchronous and/or asynchronous messaging constructs, standards, and technologies such as MQ Series, SOAP, and HTTP messaging.
- Experience with Eclipse/IntelliJ, Git, Maven, and other build/development tools.
- Experience working with Application Servers, Websphere, and Jetty.
Abilities
- Strong leadership and mentoring skills.
- Able to work independently on routine assignments, such as maintaining and modifying existing application programs.
- Ability to work in a collaborative team environment.
- Ability to think critically and problem solve.
- Self-motivated and adaptable.
- Ability to communicate effectively throughout organization.
- Effective conflict management skills.
- Effective time management skills.
- Service-oriented.
Other Essential Requirements
- 7+ years’ experience as a software developer/architect with a strong development background in Java/J2EE.
- Bachelor’s degree in Computer Science or related field.
- Advanced degree(s) in Computer Science is preferred.
- Agile Scrum certification is a plus.