The Senior Software Engineer is responsible for providing vision, guidance, and technical expertise as part of the development of our client’s systems and software. This individual will provide technical leadership to engineers, and will work with a team of developers, product managers, clients, administrators, and testers to develop systems for our client. This individual will drive for results delivering quality software within budgeted time. The Senior Software Engineer will demonstrate a drive for innovation staying apprised of emerging technologies and work to integrate these innovations into our client’s products and into the practices of the development team company wide.
DUTIES & RESPONSIBILITIES
Roles and Responsibilities of the Senior Software Engineer include but are not limited to:
Interacts with other departments and internal users as part of development of the client’s software and systems.
Depending on experience serves as architectural lead; lead development of new or revised electronic products and systems.
Provides leadership and direction to engineers developing tools and processes to improve continuous integration and automated testing.
Envisions innovative designs for complex software systems; Contributes to developing effective processes and best practices.
Works with other developers to facilitate knowledge transfer and conduct code reviews.
Participates in pair programming, technical design reviews, and code reviews.
Works with users to resolve technical issues and to provide implementation support.
Contributes to development of company objectives and principles and achieves goals in creative and effective ways.
Performs other duties as assigned or needed.
Bachelor’s Degree in Computer Science, Computer Information Systems, or equivalent work experience and at least 10 years in a related field. Masters degree preferred.
10+ years experience in an object-oriented language and use of common software design patterns.
5+ years experience developing automation and tools to facilitate continuous integration of software development efforts.
Experience with a wide variety of development platforms is preferred.
DEMONSTRATE SKILLS AND KNOWLEDGE
Expert working knowledge and understanding of application development with micro services.
Expert level experience with RESTful services on a variety of platforms.
Experience configuring, provisioning, and hosting applications in cloud computing environments (Azure preferred).
Working knowledge of automated testing tools, methodologies, and unit testing frameworks for the front end and the back end.
Expert working knowledge of several MVC frameworks, C#/ASP.Net/MVC in particular.
Ability to define software requirements, identify technical gaps and risks.
Extensive experience creating software development estimates.
Experience developing continuous integration/deployment schemes using tools like Jenkins, Go, Grunt, or others.
Expert experience working with source control systems (Git strongly preferred).
Ability to prioritize tasks, to organize, and to coordinate a high volume of information.
Good written and verbal communication skills.
Strong interpersonal and interviewing skills with the ability to develop specifications.
Understanding of and ability to communicate the business and strategic impact of technical decisions.
Ability to interact with people, inside and outside the team, in order to see a project to completion
All offers are contingent upon the completion of a background check.