Software Engineer

Location: Mountain View, CA

Ref#: 1648.6349

posted: 4-Jan-2018

Responsible for analyzing, designing, debugging and/or modifying software; or evaluating, developing, modifying and coding software programs to support programming needs. Maintain and enhance existing code with focus on implementation. Collaborate with and assist team of engineers in writing functional, design and user interface specifications. Follow software lifecycle process when developing software. Help identify solutions to problems encountered in software cycle. Play a key role within each phase of the software development lifecycle. Create and maintain medium to large sized highly scalable client and server-side applications. Work closely with product teams, architects and service delivery teams to understand product requirements and translate them into software requirements. Prototype and design solutions to address the software requirements using object oriented analysis and design methodology. Develop and maintain backend application code and/or web services(REST/SOAP) using technologies such as Java and/or JavaScript, JAXB, JMS, Spring, Hibernate, Apache Struts, JPA, JQuery, XML/JSON, WSDL, HTML, CSS, Java Container such as Apache Tomcat and Jetty, application servers such as JBoss or Websphere, IDE including Eclipse, NetBeans and IntelliJ. Database programming using JDBC, PL/SQL and Oracle. Develop unit tests leveraging unit test framework such as Junit. Follow software development methodology such as Iterative, SCRUM or Agile, continuous build and continuous integration best practices using tools such as Jenkins or Hudson. Utilize source code control system such as Git, Clearcase, SVN or equivalent. Work closely with QA teams for integration and regression testing to ensure product quality. Work closely with service delivery team to deploy the applications in data centers and/or cloud in Unix/Linux environment. Troubleshoot and participate in root cause analysis of production issues to ensure timely resolution, service availability and quality. Gather and document technical requirements and specifications. Mentor and provide technical guidance on application development to junior members of the team. This is an individual contributor position; no direct reports. Employer will accept Bachelor’s degree in Computer Science, Engineering or related technical field and five years of work experience in job offered or five years of work experience in a computer-related occupation. Alternatively, employer will accept Master’s degree in Computer Science, Engineering or related technical field and 3 years of work experience in job offered or 3 years of progressive, post-baccalaureate work experience in a computer-related occupation. Any suitable combination of education, training, or experience is acceptable. Position requires 3 years experience in the following if candidate has Bachelor’s (1 year experience if candidate has Master’s): 1. experience developing backend application or Web Services (SOAP/REST) using one of the following technologies: Java, JavaScript, jQuery, XML/JSON. 2. experience using one of the following technologies: Spring, Hibernate, Apache Struts or JPA. 3. experience using one of the following technologies: Java Container such as Apache Tomcat or Jetty, Application server such as JBoss or WebSphere 4. experience with Database programming using JDBC, PL/SQL and Oracle 5. experience with Source code control system such as Git, ClearCase or SVN 6. experience with Unit testing framework 7. experience using different development methodologies such as Iterative, Agile or SCRUM 8. experience in mentoring other developers and providing technical direction on application development; 9. experience with gathering and documenting technical requirements and specifications. Position requires 2 years experience in the following if candidate has Bachelor’s (6 months if have Master’s): 1. Experience with Continuous Integration Tools: Hudson or Jenkins 2. Experience with IDE such as Eclipse, NetBeans or IntelliJ