Senior Software Engineer

ICF

Location
Reston, Virginia, United States
Job Type
full-time
Salary
Unknown
Posted
August 12, 2025

Job Description

DUTIES:

  • Planning, design, development, documentation, and release of clinical/healthcare related software applications and databases

  • Participate in multiple modeling, simulations, and analysis efforts, and support technical development of solutions.

  • Provide Support to SemanticBits technology team in delivering value added business solutions using tools and technologies such as CSS; HTML, JavaScript, MySQL, React, JAVA and MongoDB

  • Follow Agile methodologies and industry best practices

  • Participate in program development, testing and implementation process

  • Develop program logic for new applications or analyzes and modifies logic in existing applications.

  • Code, test, debug, document, implement and maintain software applications.

  • Deploy code into a continuous build and test automation through Jenkins

  • Use git (workflows, merge strategies, etc.) for code version control

  • Analyze requirements, and maintain, test and integrate application components.

  • Ensure that system improvements are successfully implemented.

  • Develop frontends using libraries and languages such as React, TypeScript, Tailwind CSS, and Material UI.

  • Design and develop backend microservices and microfrontends.

  • Build static web pages using Drupal.

  • Integrate with user authentication systems using OAuth 2.0 and OpenID Connect protocols, along with oAuth flows to maintain application security.

  • Understand Qi-Core/FHIR or QDM profiles and use them to test eCQMs.

  • Maintain application security including user authentication systems using OAuth 2.0 and OpenID Connect protocols, along with oAuth flows.

  • Other duties as assigned.

REQUIREMENTS: Bachelor’s degree or foreign equivalent in Computer Science or related field followed by 5 years of progressively responsible software development experience OR Master’s degree or foreign equivalent in Computer Science or related field and 3 years of software development experience.

  • 3 years of experience with tools and technologies such as CSS, HTML, JavaScript, React, JAVA, Spring Framework, MySQL, and/or MongoDB.

  • 3 years of experience:

    • Developing Java based microservices using Spring Framework and Spring Boot.

    • Using Junit, Mockito, and Spring MockMvc to write unit tests for Java code and Spring REST controllers.

    • Working with SQL and NoSQL databases, such as MySQL and/or MongoDB.

    • Debugging issues in a deployed environment using Jenkins, and AWS Cloudwatch or Splunk.

  • 2 years of experience:

    • Providing and maintaining security for web applications along with building API Gateways.

    • Using Snyk or a similar security tool to assess and mitigate vulnerabilities in both Java and React projects

  • 1 year of experience:

    • Building and deploying micro-frontends using Single-SPA or similar framework.

    • Developing functional React components in Typescript and using Tailwind CSS, and Material UI.

TELEWORK: Hybrid position; part time telecommuting authorized.

LOCATION: 1902 Reston Metro Plaza, Reston, VA 20190       

🎯 Who is this job for?

This role is ideal for a Senior-level software engineer with strong experience in both frontend (React, TypeScript, Tailwind CSS, Material UI) and backend (Java, Spring Boot, microservices) development. Candidates should be skilled in database management (MySQL, MongoDB), secure application design (OAuth 2.0, OpenID Connect), cloud tools (AWS, Jenkins), and Agile practices. You should be comfortable handling complex healthcare-related applications, integrating microfrontends, and working in hybrid on-site/remote environments.

πŸ’¬ Potential Interview Questions

  1. Can you explain the difference between OAuth 2.0 and OpenID Connect, and when you would use each?
    OAuth 2.0 is an authorization framework, while OpenID Connect is an identity layer built on top of OAuth 2.0 for authentication. OAuth 2.0 controls resource access, whereas OpenID Connect verifies user identity.

  2. How would you structure a Java Spring Boot microservice that interacts with both MySQL and MongoDB?
    Use separate configuration beans for each database, define repositories for SQL and NoSQL entities, and keep database logic separated at the service layer to maintain clarity and flexibility.

  3. What are the key benefits and trade-offs of using Single-SPA for building micro-frontends?
    Single-SPA allows multiple frameworks to coexist, enabling independent deployments, but increases complexity in routing, communication, and shared state management.

  4. Describe your process for writing unit tests for a Spring REST controller using JUnit, Mockito, and MockMvc.
    Mock dependencies with Mockito, configure MockMvc to simulate HTTP requests, and verify expected responses, status codes, and interactions.

  5. How would you integrate a React frontend with a backend API secured using OAuth 2.0?
    Implement OAuth flows (e.g., Authorization Code Flow with PKCE) in React, store tokens securely, and attach them to API requests via an authorization header.

  6. What strategies do you use to secure a Java or React project from known vulnerabilities using tools like Snyk?
    Run vulnerability scans regularly, review dependency upgrade suggestions, and patch or replace insecure libraries promptly.

  7. How do you implement a continuous integration pipeline in Jenkins for a full-stack application?
    Create separate build stages for backend and frontend, run unit tests, perform code quality checks, and deploy to staging before production.

  8. What are some best practices for using Tailwind CSS and Material UI together in a React project?
    Use Tailwind for layout and spacing, Material UI for complex components, and establish a design system to ensure style consistency.

  9. Explain how Qi-Core/FHIR profiles are used in testing eCQMs.
    They define standardized healthcare data models that ensure quality measure tests are interoperable and conform to healthcare data exchange standards.

  10. How would you debug a production issue using AWS CloudWatch or Splunk?
    Filter logs by request ID or timestamp, search for error patterns, and trace the flow of the request across services to identify the root cause.

πŸ“‹ Job Summary

ICF, a global advisory and technology services provider, is seeking Senior Software Engineers to design, develop, and maintain cutting-edge healthcare applications. You’ll work with a modern stack including Java, Spring Boot, React, TypeScript, Tailwind CSS, MySQL, MongoDB, and AWS, building secure microservices, microfrontends, and scalable solutions in an Agile environment. This hybrid role in Reston, VA offers the opportunity to collaborate with top talent, tackle meaningful challenges, and make a real impact in the healthcare sector. Competitive salary, inclusive culture, and a commitment to innovation make this a great next step for experienced engineers ready to shape the future of digital health.

Required Skills

React Node.js

Related jobs

United States, Canada

Full Stack Software Engineer (TypeScript/React)

OneImaging

Full-time
Europe

Senior RoR & React Developer

OnTheGoSystems

Full-time
Tel Aviv, Israel

Front End Developer

Payoneer

Full-time