Description
The Senior Software Engineer designs, develops, tests, and maintains software applications across the full development life cycle. This includes analyzing and refining requirements, making sound design decisions, and documenting software designs and specifications. The Senior Software Engineer also diagnoses and resolves defects in a timely and accurate manner, contributes to code quality through testing and peer review, and collaborates with the team and other groups across the organization to deliver solutions.
Duties and Responsibilities
- Design, develop, and deliver software applications end-to-end, from defining requirements through design, implementation, testing, and production support.
- Partner with application owners and analysts to define, document, and refine requirements and specifications.
- Write, test, and maintain high-quality code, making sound design and implementation decisions that balance maintainability, performance, and delivery timelines.
- Design and maintain relational database structures, write efficient SQL and stored procedures, and safeguard data integrity across the team's applications.
- Write unit and integration tests and take accountability for the quality, reliability, and security of delivered code.
- Review peers' pull requests, enforce coding standards, and provide constructive feedback through the team's Bitbucket workflow.
- Troubleshoot and resolve production issues across applications and databases, including performance analysis, debugging, and root-cause investigation.
- Support production releases by implementing and verifying the required application and database changes during deployment.
- Create and maintain technical documentation, including design documents, guidelines, and application guides.
- Effectively communicate project status, technical options, and recommendations to management, application owners, analysts, and team members.
- Leverage AI-assisted development tools to improve productivity and code quality, applying sound judgment to review and validate their output.
- Evaluate emerging tools, languages, and standards, and recommend improvements or upgrades where value is added.
- Collaborate with system administrators, analysts, and fellow engineers to resolve cross-system problems.
- Perform a variety of complex tasks with a high degree of independence and judgment.
- Staff supervision and development: No
- Decision making:
- Creates policy and resolves problems
- Travel: Up to 5%
- Flex Designation: Anywhere
Requirements
Education and Experience
Education Requirements
- Bachelor's or Master's degree in Computer Science, Software Engineering, or equivalent work experience.
- 4-6 years of software development experience, including at least 3 years of Java/J2EE web development in a WebSphere environment, with an emphasis on custom application development.
Required
- Strong Java/J2EE development using JSP, EJB, and Tag Libraries, with a solid understanding of J2EE design patterns.
- Strong expertise in MVC web frameworks such as Spring or Struts.
- Object-relational mapping experience with Hibernate using XML mappings and annotations.
- Deep understanding of relational database concepts and strong ability to write complex SQL stored procedures and queries.
- Proficiency with SQL Server and SQL Server Management Studio (SSMS).
- Solid front-end fundamentals: HTML, CSS, JavaScript, jQuery, and AJAX.
- Experience building and consuming web services (RESTful APIs and SOAP; e.g., Jersey) and testing with tools like Postman.
- Solid grasp of application security concepts, including container-managed authentication and authorization.
- Experience with web and application servers such as IBM WebSphere, Apache Tomcat, and Apache HTTP Server.
- Skilled in build and dependency management using Maven.
- Advanced proficiency with distributed version control (e.g., Bitbucket, Git), including branching strategies and pull-request review.
- Experience writing unit and integration tests using frameworks such as JUnit.
- Adept at using AI-assisted development tools to improve productivity, with the judgment to review and validate their output.
- Experience with issue tracking (JIRA) and working within an Agile process.
- Proven troubleshooting, analytical, and problem-solving ability.
- Strong written and verbal communication skills, and the ability to work both independently and collaboratively in a fast-paced environment.
- Experience mentoring or leading other developers, and overseeing delivery of software solutions on larger projects.
- DevOps development and collaboration experience.
- Familiarity with SQL Server Reporting Services (SSRS).
- Experience working in large, established enterprise codebases using Eclipse-based IDEs.
Corporate - Remote - General office environment requiring ability to:
- Stand, walk, sit for extended periods of time .
- Speak and listen to others in person and over the phone and video conferencing.
- Use keyboard and read from computer screen and reports.
- The ability to lift up to 15 lbs.
Safety
Must be able to perform this job safely in accordance with standard operating procedures and good manufacturing practices, without endangering the health or safety of self or others.
corporate corporate corporate
Apply on company website