Logo
ACL Digital

Software Engineer IV

ACL Digital, Salem, Oregon, 97308


The Office of Information Services (OIS) is a shared service provider for the Oregon Health Authority (OHA) and Client (Client). OIS provides the technology systems and services that support more than 11,000 OHA and Client agency staff at local offices and facilities around the state. These systems and services help the two agencies determine client service program eligibility; provide medical, housing, food and job assistance; provide addiction, mental health, vocational and rehabilitative services; protect children, seniors and people with physical and/or developmental disabilities; process claims and benefits; manage provider licensing and state hospital facilities; and promote and protect the state public health. eXPRS is a web-based system developed to manage long term care Medicaid services for individuals with intellectual & developmental disabilities (I/DD). eXPRS is managed by the Office of Developmental Disabilities Services (ODDS), a program of the Client (Client), in coordination with the Oregon Health Authority (OHA). OIS seeks highly skilled Java Architect and Developer with expert-level knowledge of and experience with software architecture, design, development, integration, and testing. Key Person must have experience modernization a legacy Java Struts architecture to a new, modern architecture using today's best practices and industry standards. Key Person must understand and adhere to existing system architecture standards within the existing eXPRS system Java Struts framework. Key Person must write clean, efficient, and maintainable code across multiple layers of the eXPRS system codebase. Key Person must have the ability to solve highly complex problems within an existing large monolithic enterprise system. Key person must work collaboratively with other architects within the State of Oregon, as well as other Software Reliability Engineers, Quality Assurance teams, senior development staff, and business analysis teams. Key person must analyze existing data structures and maintain integrity of data standards and models while expanding and optimizing the interactions within the database and integrations with other systems using SQL, stored procedures, batch processes, etc., in accordance with business, data security and regulatory requirements. Scope: The Office of Information Services is requesting evaluation and proof of concept of a replacement of the existing eXPRS Java Struts framework and introduction of a new, modern, responsive UI framework. eXPRS currently uses an outdated version of Java Struts that lacks modern features and best practices and has known vulnerabilities. Struts has its own set of maintenance challenges. Over time, eXPRS has grown in technical debt, slowing down maintenance and debugging. Managing Struts-based code has become overly cumbersome, causing the eXPRS M&O backlog to grow and become difficult to manage at the speed for which the business is requiring. Other problems with Struts include: Struts follows a tightly coupled architecture, where changes in one part of the application can impact other parts. Struts doesn't seamlessly integrate with other technologies like ORM (Object-Relational Mapping) or dependency injection. Struts lacks robust tag libraries for creating dynamic views. Developers often end up writing custom tags or using JSP (JavaServer Pages) directly. Struts can become a bottleneck in high-traffic applications due to its heavyweight nature. Struts-based applications might lack modern UX features, such as responsive design, dynamic content loading, or smooth transitions. Introducing a new UI framework will enhance user experience, improve maintainability, increase performance, strengthen security, reduce technical debt, align with current best practices, and offer better community support. Other advantages of moving to a more modern UI framework include: Modern UI frameworks provide loosely coupled modules. This modularity allows developers to work on specific components without affecting the entire system. Newer frameworks offer better integration options, making it easier to work with databases, APIs, and other services. Modern UI frameworks provide better support for templating engines, making view development more efficient. New UI frameworks are designed with performance and scalability in mind, optimizing resource usage and handling concurrent requests efficiently. new UI framework allows developers to create engaging and user-friendly interfaces. Newer frameworks prioritize security and provide better mechanisms for input validation, authentication, and authorization. modern UI framework typically offers better developer tools, IDE support, and faster development cycles. Developers can focus on business logic rather than dealing with framework intricacies. The proof of concept is intended to evaluate the existing Struts application to understand its architecture, components, and dependencies, identify the target UI framework, and prove the new architecture that will be used across the entire eXPRS application. The following activities will be completed as part of the proof of concept: Research alternative frameworks or technologies that can replace Struts. Consider factors like community support, features, and ease of migration. Select a representative part of the eXPRS application to work with during the PoC. Install necessary tools, libraries, and dependencies for the new framework (e.g., Spring Boot, Micronaut, or another choice). Adapt the existing Struts code to the new framework. Replace Struts-specific components (e.g., actions, forms, and configuration files). If the new framework offers additional features, implement them in the PoC. Ensure data flows correctly between the new components. Evaluate the security features of the new framework. Test for vulnerabilities and ensure proper input validation. Write unit tests for the migrated components. Test interactions between the new components and existing ones. Assess the performance impact of the replacement. Work with key OIS technical architects, and lead staff to ensure the new framework adheres to OIS standards, allows for long term maintainability, flexibility, expansion, and portability. Tasks: Contractor's Key Person shall: Develop and deliver updates to eXPRS application to introduce new modern UI framework. This includes software code changes and documentation. Complete and document required work to write enhanced UI, correct defects, and deliver code modifications Draft and deliver Technical Specifications documents that meet the technical requirements. Participate in regular planning and review meetings with Authorized Agency's Solution Development and Delivery (SDD) eXPRS team. Write and review the test plans and test scripts and make necessary changes as needed. Perform unit testing to ensure requirements are met and changed code works as specified. Follow Authorized Agency's existing requirements management, design, development and issue tracking processes and development standards (including naming conventions). Document in the Azure DevOps tracking system any issues identified in testing and their resolution taken to resolve the issues. Conduct end to end system testing as well as end to end system integration testing. Required skills and experience: highly skilled Java developer with expert-level knowledge and experience with WebSphere Liberty 9 and Java 11 Proficiency with HTML, CSS, and Javascript (10 years of experience) J2EE (10 years of experience) Eclipse (10 years of experience) solid grasp of frameworks like React, Angular, or Vue.js Knowledge of emerging technologies like Web Components Understanding of responsive and adaptive design principles Expert understanding of IBM DB2 UDB systems and concepts (10 years of experience) Proficient with Eclipse IDE Liberty 9 Plug In Proficient with Git source control concepts Bachelor's degree in area of specialty At least six years of equivalent experience in the field or in a related area rate card description for an Software Engineer IV: Creates and designs new software by analyzing, testing, assessing and implementing programming applications. Supports and installs applications and operating system. Assists in the testing process by conducting reviews and analyses, witnessing tests and participating in software certification. Relies on extensive knowledge and professional discretion to achieve goals. May offer consultation to senior leadership and is considered to be the top-level in this field. Usually reports to an executive. Significant ingenuity and flexibility is expected. Requires a bachelor's degree in a related area. rate card rates for an Software Engineer IV: Minimum Maximum Our primary criteria are the qualifications and experience of the proposed key person. Please propose your strongest candidate, at a rate less than or equal to the maximum. Interviews will be conducted via MS Teams. Interview times will reflect Pacific Standard Time. Due to circumstances beyond our control, we anticipate two weeks or more for the background check completion for the selected key person. The selected key person could potentially telecommute, as agreed to between the Agency Authorized Representative and the key person. Any decision to allow telecommuting is made with the understanding that decision will be re-evaluated by the Agency Authorized Representative on a regular basis. The key person should be available to work onsite within a reasonable timeframe. Telecommuting will be contingent upon the key person providing his/her own adequate computer, monitor(s), Internet connection, and telephone, and be readily available during normal working hours via phone, email or instant message. Access to Agency systems will be provided via VPN or similar software. No hardware or additional software will be provided at the key person's home site or his/her PC.