Java Full Stack Developer Only Locals Apply
Tentative interview dates: December 9th and 10th
Remote or onsite: Hybrid - Monday, Wednesday, Friday remote and in office Tuesday and Thursday
Local or non-local: Local
Scoring:
Java Experience - 30%
JavaScript or React - 20%
Experience with unit testing - 10%
Debugging and code fixes - 20%
Job description:
- Project Overview
- Project Description: The purpose of this project is to develop an improved web application to replace an existing legacy application. The application will be built on a modern tech stack using NodeJS, ReactJS, and serverless technology.
- Objectives and Scope of Work
- Scope of Work:
- Development features:
- Enhanced User Management & Portal Access
- New UX, landing page, menuing & navigation
- Enhancing legacy WaterLink menuing to match new application
- Module development:
- DDW Report modules (IPS, Bacterial Summary, Inventory, Population, Water Monitoring)
- Development features:
- Scope of Work:
-
-
- Code integration and testing
- Documentation and knowledge transfer
- Bug fixing and basic troubleshooting
- Exclusions: Tasks outside of the contractor's responsibility to avoid scope creep.
- UX design
-
- Enhanced User Management & Portal Access
- Objective: Update user authentication to support SSO Methods and implement role-based access controls.
- Tasks:
- Set up user authentication using NodeJS with a secure API.
- Integrate a centralized identity management system
- Configure portal access with user dashboards based on roles and admin rights.
- New UX, Landing Page, Menuing & Navigation
- Objective: Design a modern, responsive landing page in ReactJS to act as the entry point for users.
- Tasks:
- Develop a ReactJS-based landing page with updated branding and UX.
- Develop based on provided UX designs and ensure all development aligns with Design principles.
- Conduct usability testing to ensure intuitive navigation across old and new systems.
- Enhancing Legacy Menuing to Match New Application
- Objective: Integrate navigation styles across the legacy and new systems for visual and functional continuity.
- Tasks:
- Work with legacy system code to implement menu updates where possible to align with V2 menuing.
- Add a React-based wrapper component or implement other methods to allow the new application to link directly to legacy menus without confusion.
- Test seamless navigation across systems to maintain user familiarity and reduce cognitive load.
- Module Development
- Objective: Develop and deploy specific modules to support data and reporting functionality.
- Tasks for Each Module:
-
-
- DDW Report Modules: Build React components to display dynamic reports for IPS, Bacterial Summary, Inventory, and Water Monitoring, utilizing serverless functions for data retrieval from SDWIS.
- Water Use Reporting: Update form components in ReactJS with data validation for user inputs, linked to a serverless backend to store reports and migrate data to live in the new WaterLink application environment.
- Exceptions & Loan Tracker: Develop interfaces for exception tracking and loan management, leveraging serverless database interactions for lightweight storage and easy scaling.
-
- Code Integration and Testing
- Objective: Ensure seamless operation between the new application and the legacy system through comprehensive integration and testing.
- Tasks:
- Use teams procedures and protocols for unit and integration testing of React components and NodeJS services.
- Set up serverless deployment pipelines for continuous integration and delivery (CI/CD) using GitHub Actions.
- Establish staging environments that mirror production to test user flows between old and new modules.
- Documentation and Knowledge Transfer
- Objective: Provide detailed documentation and training to ensure future teams can maintain and expand the platform.
- Tasks:
- Write comprehensive documentation for all new modules, including architecture, endpoints, and data flows.
- Develop guides and/or video tutorials for internal users on managing the new system.
- Conduct training sessions and hand over codebase insights and best practices as needed.
- Bug Fixing and Basic Troubleshooting
- Objective: Ensure a smooth user experience by resolving issues swiftly as they arise from testing.
- Tasks:
- Monitor error logs and performance metrics for new and legacy features.
- Set up alerts for critical failures or downtime using AWS CloudWatch or a similar monitoring service.
- Implement a feedback loop with users for continuous improvement.
-
- Skills & Experience
- At least 2 years of Java experience.
- Two years of JavaScript or React application development experience.
- Experience with unit testing (jest, Node.js, Test Runner, etc.).
- Demonstrated ability with application debugging and code fixes.
- Proven understanding of database design.
- Expected Working Hours & Office Expectations:
- 40 hours per week. Contractor is expected to be available and in the office (Salt Lake City, UT 84116) Tuesday and Thursday of each week.
- Employees shall dress appropriately and professionally for their assigned job in both in-person and virtual work environments. Basic elements for appropriate and professional attire include clothing that is neat and clean. Managers or supervisors may determine if an employee is dressed appropriately for the workplace or situation.
- Collaboration: Contractor will be expected to engage with relevant stakeholders, attend team standup, retrospectives, and sprint planning sessions. The contractor will be expected to report on progress against deliverables and track time in an effective manner.
- Project Management Tools: The contractor will be expected to utilize the following tools to support tracking work and progress:
- Jira
- Confluence
- Skills & Experience