Sr. Java Programmer
Sr. Java Programmer
03/10/2023 ● Scottsdale, Arizona ● Direct Hire
Job Title: Sr. Java Developer
Duration: Perm
Location: Remote in Phoenix, Arizona
Definition: Under general supervision from the Development Supervisor, designs, codes, tests, documents and maintains all custom designed software applications. Assists departments with developing in-house data management programs or contracting outside software development services. This job class is treated as FLSA Exempt.
Essential Functions: Essential functions may vary among positions and may include the following tasks and other characteristics. This list of tasks is ILLUSTRATIVE ONLY and is not intended to be a comprehensive listing of tasks performed by all positions in this classification.
Tasks:
- Project Lead: Ensures the timely success of several IT development projects and meeting the deadlines set forth by IT Management.
- Provides input during project planning and scheduling.
- Manages resource allocation as needed.
- Mentoring for Level I & II Programming Staff: Assists programmers with frequently asked questions and common pitfalls.
- Provides training in existing technologies and methods.
- Recommends training courses relevant to current and future technologies.
- Provides formal and informal peer code reviews, documents findings and provides guidance and recommendations for improvements as relevant to Programmer II and I staff.
- Assists the development supervisors and managers by performing reviews to ensure quality standards are being met and guidelines and procedures being adhered to by all members of the development team.
- Establishes best practices through mentoring and ensures implemented best practices are consistently adhered to.
- Communicates Project status: Provides formal and informal communications of project status to development supervisors and managers.
- Provides immediate notification of problems and provides recommendations for solutions.
- Assists in the preparation of formal presentations and communications of project status for project stakeholders.
- Provides Level I/II/III In-house Application Support: Assists in resolving problems with in-house developed applications including but not limited to code bugs, deployment, user access and maintenance.
- Provides top-level support for issues that cannot be resolved by Programmer I or II.
- Performs root cause analysis on critical and recurring issues and implements changes to prevent recurrence.
- Provides 24×7 support of critical applications as assigned and directed by the Enterprise Architect.
- Software Distribution Management: Assists in the adherence to a timeline of software distribution of new installations, upgrades, and patches in conjunction with project schedules.
- Ensures all code artifacts are adequately and consistently tested and quality checked prior to release into production environments.
- Component Architectures: Evaluates the most appropriate technology for a given project and design components that take advantage of the technology’s code reuse.
- Maintains custom Java packages and API’s that can be used by Programmer I and II.
- Manages and publishes the documentation of Java API’s through the use of JavaDocs or other appropriate tools.
- Performs all steps of lifecycle software development from UML modeling to class design to coding.
- Manages Web Server Technologies: Manages Java Application Servers in an environment that will support a J2EE architecture.
- Ensures connectivity between presentation-tier and business logic-tier.
- Performs load test analysis and monitors the web servers for usage and traffic.
- Maintains Development, Training & Production Environments: Ensures that software deployment occurs in the proper sequence.
- Verifies that upon completion of the project, all states of the software are consistent including development, testing and production.
- Ensures that a training environment is maintained and can be easily reset between sessions.
- Prevents changes from being made outside of the software development process and moved directly into production.
- Miscellaneous: Performs other job related duties as assigned by the Enterprise Architect, Principle Architect, Assistant IT Director or the IT Director.
Knowledge, Skills, Abilities and Other Characteristics:
- Knowledge of IT infrastructures and applications.
- Knowledge of database table design methodology and data table normalization.
- Knowledge of object oriented software development and implementation methodologies.
- Knowledge of software testing and documentation methodologies.
- Knowledge of Java, Spring Boot, HTML, Thymeleaf, JavaScript (jQuery), SCSS, AJAX/JSON, RESTful Web Services, and Software Development Lifecycle Methodologies (SDLC).
- Knowledge of systems configuration, security, and resource monitoring.
- Knowledge of microservices and container-based environments such as Kubernetes.
- Knowledge of test automation frameworks such as Selenium and/or TestNG.
- Skill with problem solving and group analysis.
- Skill resolving application development and software installation problems.
- Skill designing and developing software systems.
- Skill communicating effectively both verbally and in writing within the team environment.
- Ability to learn new programming languages, frameworks and methodologies quickly with minimum supervision.
- Ability to accurately and quickly identify and diagnose application development related problems and take appropriate corrective action.
- Ability to develop and maintain positive and effective working relationships at all levels within the Tribal Government and Community.
- Ability to perform tasks requiring advanced problem-solving skills.
- Ability to identify long-term impact of recommended application configurations.
- Ability to work independently and make good judgment regarding project issues.
- Ability to work effectively in a team environment.
- Ability to follow verbal and written instructions.
- Ability to explain complex problems or situations.
Qualifications:
- Education: A Bachelor’s degree from an accredited college or university in Computer Science, Engineering or related IT discipline required.
- Experience: Seven (7) years of experience in development, implementation and maintenance of large and medium-scale systems required. Seven (7) years demonstrated experience with Java, HTML, CSS, SCSS, JavaScript, Spring Framework, and Software Development Lifecycle methodologies (SDLC) required.
- Demonstrated successful experience performing the following technologies required:
- Model View Controller architecture
- Spring framework (Boot, WebMVC, Data, Security, and others)
- Client side technologies including JavaScript (jQuery), SCSS, AJAX, JSON and Bootstrap
- JPA with Hibernate or MyBatis
- Object Oriented Analysis and Object-Oriented Design methodologies
- Adherence to Agile Software Development Lifecycle Methodologies
- Microsoft SQL Server or equivalent database technology
- Demonstrated successful experience in the following technologies is preferred:
- Tomcat or similar application server in a containerized environment
- JMS, RabbitMQ, Active MQ or similar middleware technologies
- Continuous integration/delivery automation with Hudson/Jenkins or similar
- Lifecycle management tools (Atlassian Jira and Confluence or similar)
- Microservices and container-based environments such as Kubernetes
- Selenium and/or TestNG Frameworks
- Cucumber Test Specification Development
- Comprehensive understanding of systems and applications so that practical solutions can be provided that factor system performance, usability, quality, cross-system interdependencies, scalability and overall cost to develop and maintain.
- Experience with intranet/internet development and implementation required.
- Equivalency: Any equivalent combination of education and/or experience that would allow the candidate to satisfactorily perform the duties of this position, will be considered.