The Full Stack 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 work with a team of developers, product managers, administrators, and testers to develop high-quality software for the company. They stay apprised of emerging technologies and strive to integrate useful innovations into company products and the practices of the development team company-wide. Their passion for quality software drives them to continuously improve, yet they are flexible in their approach and recognize that unity and cooperation among the team are paramount to team success.
DUTIES & RESPONSIBILITIES
Roles and Responsibilities of the Full Stack Software Engineer include but are not limited to:
· Interacts with other departments and internal users as part of development of company software and systems.
· Provides leadership and direction to engineers developing tools and processes to improve continuous integration and automated testing.
· Contributes innovative and visionary designs for complex software systems.
· Participates in technical design reviews, code reviews, and some pair programming.
· 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.
DEMONSTRATE SKILLS AND KNOWLEDGE
· Expert working knowledge and understanding of application development with micro services.
· Working knowledge of MVC frameworks , C#/ASP.Net/MVC in particular.
· Experience with RESTful services on a variety of platforms, both creating and consuming services.
· Experience with integration of multiple systems using technologies like service bus and message queues.
· Working knowledge of automated testing tools and methodologies, unit testing frameworks and testing methodologies (NUnit, MSTest, etc.).
· Strong ability to define software requirements, identify technical gaps and risks.
· Extensive experience creating software development estimates.
· Experience implementing continuous integration/deployment/automation systems using tools like Jenkins, Go, Grunt, or others.
· E working with source control systems (Git strongly preferred).
· Strong understanding of SQL and relational database architecture.
· Useful to have experience with no-SQL databases.
· Ability to prioritize tasks and organize large amounts of data
· Good written and verbal communication skills.
· Strong interpersonal and interviewing skills.
· Understanding of and ability to communicate the business and strategic impact of technical decisions.
· Bachelor’s Degree in Computer Science, Computer Information Systems, or equivalent work experience and 5 - 10 years in a related field.
· 5+ years’ experience in an object-oriented language and use of common software design patterns (C# or Java).
· 5+ years’ experience developing automation and tools to facilitate continuous integration of software development efforts.
· Experience with a wide variety of development platforms is strongly preferred.