Software Engineer IV (.NET, C#, WCF)
Nashville, TN | Direct Hire
Software Engineer IV
The Software Engineer IV is assists in the complete product development lifecycle, including product design, architecture, system integration, usability, and product delivery. You will work with other Software Engineers to deliver high quality and scalable Enterprise level SaaS software solutions within a highly collaborative fast-paced development environment. You will work with Management and Product Owners to ensure product directives are met during all phases of the development life cycle.
- Aids in the decision making around product architecture trade-offs with risks, delivery, scalability / performance, flexibility, maintainability, security, and other quality concerns
- Determines operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions.
- Researches emerging technologies to evolve enterprise IT architectures and standards.
- Implements proof of concepts to help make technology choices
- Analyzes requirements and develops application design to include technical risks and mitigation strategies.
- Assists in the analysis, design, testing, and delivery of new features and software applications.
- Writes and maintains technical architectural and design documents, with recommendations to resolve and document issues that arise in the architecture and recommending improvements to the architecture
- Mentors other engineers to grow to similar levels of expertise and effectiveness
- Monitors and reviews systems so that they are designed and developed in compliance with corporate security, privacy, accessibility, legal, and other governance and Federal policies
- Analyzes performance considerations of solutions and identify limits and risks, and tunes performance of applications as required.
- Performs code reviews of software enhancements developed by other team members.
- Contributes to the development and execution of corporate software and systems strategies.
- Engineers and oversees release processes to ensure that systems in production are correctly deployed.
- Modifies existing code and documents software application changes.
- Ensures that systems developed correctly considering issues of scalability and fault-tolerance.
- Implements systems and processes to assure application quality.
- Tests coded functionality against the requirements.
- Assists with production issue resolution by researching and debugging customer issues when escalated to product engineering.
- Develops unit tests where appropriate for automated testing processes.
- Designs and creates hooks in applications to collect performance data
- Designs and creates patterns for error handling and error logging
- Designs and creates application performance dashboards for monitoring application health and response time
- Monitors application performance to ensure applications are running efficiently and without error
- Monitors server and database performance tools
- Identifies poor performing SQL queries and optimizes them
- Documents new features, functionality and configuration requirements.
- Ensures that the team and management are fully informed of work status by updating backlog items and providing regular updates
- Tests and supports software applications both internally and externally.
- Develops software applications that comply with all corporate policies regarding security and privacy.
- Acts as a positive role model in all aspects of professional performance.
- Observes safety procedures and personnel policies.
Skills, knowledge and abilities:
- Experience in software architecture, design, development of enterprise scale solutions utilizing the Microsoft program stack
- Ability to rapidly learn new technologies and practices, foster a culture of technology innovation.
- Able to collaborate effectively with peers, manage conflict and facilitate architectural decisions
- Must be able to make independent judgement decisions with little supervision.
- Must be detail oriented and have excellent problem-solving skills
- Ability to function as a part of a team
- Must be able to interact cordially and productively with co-workers in a team environment.
- Must be willing to share knowledge and experience with other team members
- Must be able to mentor other team members in a positive manner
- Ability to handle multiple tasks effectively.
- Ability to work under pressure and to prioritize.
- Must possess excellent organizational skills.
- Must possess effective communications skills with ability to handle difficult situations.
- Must be able to occasionally travel by automobile or airplane.
Must have Excellent working knowledge of the following technical skills:
- Microsoft Technologies: Microsoft Visual Studio, Microsoft Team Foundation Server, Microsoft Office
- Programming Languages and Frameworks:
- C# .NET 4.5 including:
- Web Services with WCF, SOAP, and RESTful.
- Web API 2
- IOC/Dependency injection
- Programming Tools: Ninject, Fitnesse/TDD
- Must demonstrate expertise the following skills.
- DBMS: Relational databases including MySQL, MSSQL Server 2012, 2014, 2016, SQL Server Management Studio, SQL Stored Procedures with TSQL. MarkLogic Server experience a plus.
- Data Structures: JSON, XML, XSL, XSLT, XPath, XPointer
- Operating Systems: Microsoft Windows Server and Desktop Operating Systems
- Development Tools: Microsoft Visual Studio 2013 or higher
- Application Design: OOA/OOD, Design Patterns, MS Visio
- Application Servers: IIS 7 or higher
- Version Control: Git, Microsoft Team Foundation Server or other version control tools.
- Unit Testing and Code Analysis: Familiar with Black-box & White-box testing concepts
- Marginal Functions: (Duties that are likely to be assigned to this person, unless he/she proves unable to perform them after receiving training and/or accommodations that The Company judges appropriate).
- Assists with Quality Assurance and Client Support as needed.
- Assists other team members and other development teams as needed.
- Perform other job-related duties as assigned.
Experience and Education Requirements:
- A minimum of Eight (8) years of experience as a Software Engineer. Prior experience must include working on software development teams to develop and maintain Enterprise scale software systems in a SaaS environment utilizing the Microsoft technology stack.
- Bachelors or Master’s degree in Computer Science or relevant industry experience.
- Knowledge of healthcare revenue cycle and electronic claims processing a plus.