Senior Java Developer
Listed on 2026-10-18
-
Software Development
Java Developer, Backend Developer, Software Engineer
Remote Dedicated Client Engagement Senior Engineering
About feature[23]feature[23] is a Jacksonville-based software product development firm. Alongside our greenfield product work, we run forward-deployed engineering (FDE) engagements: senior engineers embedded full-time with a single enterprise client to modernize and de-risk a large, mission-critical codebase. This role is one of those engagements, a multi-year initiative to modernize a legacy Java estate for an enterprise client, moving it off end-of-life infrastructure and onto a modern, cloud-native foundation.
TheEngagement
Our client runs roughly 95 Java EE enterprise applications on Web Sphere, most of them carrying vulnerable dependencies, some of them 15+ years old. Compounding the problem, many of these apps rely on shared “parent” JAR libraries injected by the application server in “parent-first” class path mode, which makes even routine dependency upgrades risky: a single parent JAR bump can silently break any of the 95 apps at runtime, in ways that only show up when a specific code path is exercised.
The mission is threefold: resolve the vulnerabilities living in direct, transitive, and parent JAR dependencies; get the apps off shared parent JARs entirely so future upgrades are safe and isolated; and prepare every application for eventual migration off Web Sphere onto Liberty, which has no equivalent of parent-first class path resolution. Java 8 reaches end of support in 2030, so this isn't a someday project.
You'll be one of the engineers doing that work, embedded with the client's team, working on their tickets, attending their ceremonies, and reporting technical progress back to feature[23]'s CTO.
- Mavenize applications that are still built with Ant and untangle any implicit dependencies on parent JARs that aren't already declared, whether pulled in through Maven or transitive packages.
- Migrate app builds onto Azure Dev Ops Pipelines, pulling all dependencies from Azure Dev Ops Artifacts rather than UNC paths or client-hosted build servers.
- Upgrade vulnerable direct and transitive dependencies to non-vulnerable versions and resolve whatever build or runtime breakage the upgrade surfaces.
- Reconfigure applications and modules in Web Sphere from Parent First to Parent Last class path resolution, then thoroughly exercise the app locally to catch class path conflicts that only appear at runtime.
- Own an application through its full promotion path: local testing, then dev, then QA, then production, coordinating with the Web Sphere administrator at each stage to convert the app and module to Parent Last.
- Once every app has moved to Parent Last, help validate that the shared parent JARs can be safely retired, and test thoroughly to confirm nothing regresses.
- Work from a defined, sequenced modernization plan (highest-risk or most-vulnerable apps first) while using independent judgment on execution details for each app.
- As a senior, self-directed engineer, take ownership of requirements analysis, prioritization, and delivery for your workstream rather than working under a separate lead.
- Represent feature[23] directly in client meetings and working sessions; you'll need to hold your own with client stakeholders, not just execute tickets handed to you.
- Experience with Java web application frameworks such as JSF or Struts.
- Solid grounding in Java EE / J2EE architecture:
Web Sphere, EJBs, MDBs, and the broader enterprise application server ecosystem. - Experience with web application modernization: dependency remediation, build-system migrations (Ant to Maven), and moving legacy apps toward containers and cloud-native infrastructure.
- Senior-level self-direction: comfortable owning a workstream end to end, from…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).