Develops software solutions across multiple subsystems within our applications, including collaboration with requirements definition, prototyping, architectural design, coding, testing and deployment
Understands how our applications operate, are structured, and how customers use them
Provides engineering support when building, deploying, configuring and supporting systems for customers
Performs complex product design, systems analysis and engineering activities on applications software
Researches new technology and development tools to remain informed of current trends
Documents and demonstrates solutions by developing documentation, flowcharts, layouts, diagrams, code comments and clearly readable code
Analyzes defects, performs root cause analysis, and collaborates to resolve
Complies with established internal quality systems and considers standards, best practices, and regulatory requirements as part of coding activities
Leads code and design reviews. Analyzes and makes recommendations regarding coding standards, technology improvements, development tools, best practices, and process improvement.
Participates with the engineering and operations teams to analyze and make recommendations for standardizing, scaling and enhancing our products and the services utilized to deploy/install/release those products
Mentors team members in best practices and provides technical leadership and product guidance
All other duties and responsibilities as assigned
Skills Needed To Be Successful
Clear, effective verbal and written communication skills
Good collaboration and teamwork skills
Ability to mentor others
Ability to present complex ideas in a consumable manner to technical and non-technical stakeholders
Expert knowledge of scripting and object-oriented software development principles
Expert knowledge of relational and/or non-relational databases
Solid development skills and overall understanding of software development methodologies
Understanding of refactoring or re-engineering solutions
Thorough knowledge of design principles and patterns
Solid understanding of Agile software development methodologies
Required Experience & Education
Bachelor's degree in software engineering, computer science, or related discipline or equivalent experience
5-7 years' experience with software development life cycle, software testing methodologies, and quality assurance
Expert knowledge of .NET, C#, JavaScript, RDBMS (Oracle (preferred), SQL Server), OOPS concepts as well as multi-tiered application design and development, and HTML/DHTML
Experience in front end web technologies like React, Angular
Experience in API programming, Scripting, and Service Oriented Architecture
Experience with Microservices architecture
Application modernization experience with containers (Docker), Kubernetes or DAPR
Experience in working on enterprise web-based software systems utilizing N-tier architectures, dynamic content, highly scalable approaches, and security models/implementations.
Preferred Experience & Education
Knowledge of scientific data software, medical devices, or healthcare software
Master's degree in software engineering, computer science, or related discipline