Team Lead - Software Engineering
Position Summary: The primary function of the Team Lead, Software Development is to deliver quality software solutions by leading the assigned software engineers. The Team Lead also analyzes, designs, and preforms the development of software systems to create solutions for business problems. Responsible for analysis of current systems/features, including performance, diagnosis and troubleshooting of problem applications, and designing solutions to enhance systems.
- Leads the assigned software development team in the on-time development of feature and systems.
- Develops software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; following the software development lifecycle.
- Reviews and enhances legacy applications as needed
- Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.
- Participates fully in the Secure Software Development Lifecycle and Fi360 Agile Development methodology.
- Uses standard Software Design Methodologies to ensure consistent software architectures.
- Ensures application testing is performed to ensure that application results are accurate.
- Ensures that all team assigned issues are resolved in a timely and efficient manner.
- Creates and executes Unit Test Cases
- Able to quickly analyze, identify, and resolve complex software problems as well as database integrity and/or security problems
- Updates job knowledge by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities; reading professional publications; participating in professional organizations
- Provides information by collecting, analyzing, and summarizing development and service issues
- Provides proactive input into design issues/constraints, performance tuning, and impact analysis of changes.
- Mentors other team members to enhance their knowledge of new technologies and development techniques as well as troubleshooting techniques.
- Directs and coordinates team member’s activities on development projects
- Leads design reviews and code inspections with the assigned team members.
- Assists the Development Manager with the development of team/team member objectives as well as long and short-term goals for assigned team and area of responsibility.
- Coordinates activities of various team members, and coordinates activities with other development teams
- Provide team member feedback to the Development Manager as part of the review process.
- Assists in creating project plans for new solutions
- Documents solution architectures and educates other team members on solution architectures.
- Assists the Solution and Data Architects on analyzing new technologies to determine feasibility and use on current and future projects
- Evaluates development tools and components to determine feasibility and use on current and future projects
- Performs additional duties as assigned.
Knowledge/Abilities: (at full job performance)
- Extensive / Considerable knowledge of:
• C#, Microsoft .NET
• HTML and CSS
• Entity Framework or other ORM tools
• MVC web applications
• Multi-tiered OOAD and design patterns
• SQL Server, database design and efficient integration with web applications
• Knowledge and experience in all aspects of the software development process
• Excellent oral and written communication and problem-solving skills
• Front end Frameworks such as Bootstrap and AngularJS
• SOAP and RESTful Services
• Microsoft WEB API
- Some / limited knowledge of:
• SQL Server Integration Services
- Ability to:
• Create new software architectures and system frameworks
• Possess a positive attitude
• Ability to "think outside the box"
• Work in a team, or independently on multiple projects
• Create and Adhere to Project Plans
Reports to: Manager of Software Development
- Bachelor’s degree in Computer Engineering, Computer Science/Information Technology, or related discipline.
- Minimum 6+ years of prior experience developing web based applications using Object Oriented programming languages and 1-2 years as a senior team member with leadership/mentorship responsibilities.