Java Software Engineer

AmherstIT

Apply
Description:

Software Engineer

Position Summary

This software developer will implement improvements in a responsive and responsible manner and working with other staff (mainly Engineering & IT Development and IT Infrastructure). The role also includes interacting with business program managers and delivery managers to better understand and develop requirements and to communicate deliverables and design considerations.

Design and develop a variety of software applications that are used by our internal and/or the Internet community. Work closely with the end users, other departments in our company and other software engineers to develop new or equivalent applications and improve existing ones. This position reports to the Delivery Manager, Technical Services Support.

 

Key Responsibilities

  • Design and develop both server-side and client-side layers of our website and internal tools
  • Accelerate the entire build-test-deploy cycle from months to minutes; building upon Agile, Continuous Integration/Continuous Delivery (CI/CD) and DevOps practices to transform and automate the delivery of high-quality software.
  • Proactively analyze situations and champion innovative solutions for the selection of new or improved methodologies, techniques, and evaluation criteria for achieving objectives.
  • Develop and maintain software solutions that are used in various business functions. These include internal systems used by staff, as well as customer-facing applications used by external constituencies through websites.
  • Collaborate with other team members and partners in the design, implementation, and support of new services and features to meet business needs and improve our core functions.
  • Conduct comprehensive reviews of projects/tasks to ensure adherence to design and quality objectives
  • Proactively interact with the end users to gather product requirements.
  • Create software installation packages with installation guides. Assist IT to deploy the final applications into product environment and support post-release maintenance.
  • Run and monitor performance tests on new and existing software for the purposes of correcting mistakes, isolating areas for improvement and general debugging.
  • Liaise with network administrators, systems analysts, programmers, and other software engineers to resolve any defects in products or company systems.
  • Recommend, schedule and perform software improvements and upgrades for optimal performance of company workstations.
  • Work on call and other duties when required or requested

Qualifications

  • Experience developing high-quality Java code
  • Knowledge of cross-browser HTML5/CSS3/JavaScript/jQuery
  • Knowledge of open-source development and contributions are a plus
  • Proficiency with software architecture, modular and object-oriented design
  • Familiarity with “DevOps”; the role will involve developing and implementing process improvements that can involve coordinating multiple stakeholders. Deployment processes should be repeatable, well documented, and involve automation to the maximum extent possible
  • Working knowledge of WebService API Integration (RESTful, etc.)
  • Solid understanding of file structures (XML, ISON, flat file, etc.)
  • General knowledge of communication protocols (FTP, HTTP, HTTPS, etc.)
  • Must be a team-oriented person with excellent analytical skills
  • Experience with agile / scrum management tools (JIRA preferable)
  • Experience with source control repositories (GitHub preferable)
  • Able to work from the office, and able to travel up to 10%
  • Experience in Test Driven Development (TDD) and/or Extreme Programming (XP)
  • Good fundamental and hands-on knowledge of relational database design and operation
  • Experience through the full lifecycle of application development projects
  • Knowledge of the Internet and Domain Naming System required
  • Ability to work in a small team, with minimal supervision
  • The successful candidate will understand the constraints that may limit action, and how their position fits into the business team as a whole
  • Excellent interpersonal and communication skills
  • Proven ability to compose clear reports, summaries and other written communication in English
  • Ability to solve complex issues in an ambiguous environment
  • Ability to work with a highly diverse workforce
  • The successful candidate will be self-organized, capable of moving forward on multiple projects at the same time. Attention to detail and flexibility are also key qualities. Strong interpersonal communication skills and the ability to maintain effective working relationships with co-workers, partners, vendors and the public are required
  • Ability to be a quick learner and multi-task

 

Education and Experience Requirements

  • Minimum 3 - 5 years in software design and development experience
  • At least 3 years’ experience with modern Java web application frameworks (Spring, Spring MVC, Tapestry, Grails)
  • Bachelor’s or Master’s degree in computer science or related field
  • Experience with a relational database system (e.g. Oracle, MS-SQL Server, MySQL)
  • Experience developing and consuming web services (RESTful)
  • Ideally, experience with software development in Python
  • Ideally, experience with Unix and/or Linux systems administration and troubleshooting
  • Ideally, experience with integration/middleware tools (e.g. Informatica, Cast Iron, Pervasive, Scribe)
  • Prior international experience will be a strong plus
  • Job duties will require the use of a computer for prolonged periods of time. The primary method of communicating with external stakeholders is through the Internet
Location: Los Angeles, California, United States
Salary: Depending On Experience
Required Qualification: Java, Spring, Relational Database
Required Travel: none
Job Length: permanent
Number of Vacancies: 1
Key Skills:
database
Java
Python
Spring