Lead Software Engineer

Software Engineering Lakewood, Colorado Overland Park, Kansas Plano, Texas


Description

Responsibilities:

  • Participate in analyzing, designing, writing and testing code, documenting and implementing functionally appropriate, technically sound, and well-integrated application systems. This is completed in accordance with customer requirements and organizational methodologies and standards for new application development as well as existing system enhancements.
  • Participate in new application development and existing system enhancements by coding system features according to system designs.
  • Maintain existing application programs by fixing bugs or clearing up operational deficiencies in both previously released software and software slated for future release.
  • Assure program, module and system integrity through thorough testing and adherence to company standards and procedures.
  • Work through all phases of the software development life cycle, including research, design, analysis, requirements, implementation, test automation, and maintenance.
  • Utilize new technologies and tools to modify products and provide integration with applications developed internally and externally.
  • Prepare and modify program and system documentation.
  • Provide guidance to less experienced team members to ensure knowledge transfer and training are successfully meeting department goals.
  • Achieve departmental goals and timelines.
  • Demonstrate the ability to take increasingly difficult assignments and successfully implement it with little or no help from more senior resources.
  • Demonstrate a high degree of skill, efficiency and be a leader to the less experienced development staff.
  • Develop programs that are moderate to complex in nature, adhering to established departmental standards.
  • Learn and implement new technologies and architectures within a reasonably quick timeframe while producing and testing high-quality software.
  • Demonstrate strong knowledge of software development practices, concepts, and technologies obtained through formal training and work experience.
  • Demonstrate strong knowledge of required programming languages.
  • Demonstrate strong knowledge of the technical/business environment.
  • Effectively partner, communicate and negotiate with business analyst, development and support groups in order to gather and communicate business requirements.
  • Work on individual programs that are part of a much larger application.
  • Adapt to changing products and technologies.
  • Fix bugs in existing, often unfamiliar programs, under considerable time constraints.
  • Manage and prioritize often conflicting tasks and interruptions so as to minimize their impact on the current deadlines and workload.
  • Perform other duties as assigned.
     

Qualifications:

  • Bachelor’s degree in computer science, computer engineering, or comparable work experience.
  • Typically eight or more years of software development experience with database technology.
  • Demonstrated advanced knowledge of software development practices, computer science theory, and understanding of relevant technologies.
  • Relevant Technologies:
    • Spring Boot / Java (or similar high level language)
    • Angular / Typescript (or similar front end technology)
    • Relational Databases (SQL Server, PostgreSQL, or similar)
    • Build Systems (Gradle/Maven)
    • Deployment Systems (Octopus, Harness, or similar)
    • Docker / Container Orchestration
    • Web APIs (SOAP, OData, REST)
  • Experience writing and testing complex code to meet strict deadlines.
  • Demonstrated advanced understanding of product architecture and all underlying technologies.
  • Demonstrated advanced understanding of development process.
  • Demonstrated proficiency with data modeling tools, web services and/or service oriented architecture.
  • Experience working well both independently and within a team environment.
  • Strong written and verbal communication skills.
  • Strong interpersonal skills.
  • Experience providing guidance and direction to less experienced staff.
  • Strong negotiation skills with various parties to ensure enhancements to applications are addressed while maintaining/balancing business situations and constrictions.
  • Well-developed logical thinking and reasoning skills.
  • Ability to prioritize and complete multiple tasks in a fast-paced, technical environment.
  • Keen attention to detail.