Software

Engineer - Java

  • New York

  • $

    80 Per Hour

  • Contract

Reference: 21018

Description

Software Engineer – Java – New York (Contract)

Our Software Development practice is a growing and evolving part of the business which offers the opportunity to work with a range of diverse technologies across multiple business domains and project environments. We look for technologists who enjoy learning, building solutions using industry best practice and employing their development experience to assist in delivering quality solutions for our clients.


As a Delivery Consultant you will have the opportunity to deliver a wide range of solutions to a broad spectrum of clients. You will have direct access to our clients and will act as a subject matter expert within the development space and working in an agile environment you will deliver rapid and responsive solutions. As with all roles in BJSS, you will be expected to be creative and innovative when delivering high quality results.

You’re in charge of your destiny within BJSS and we will support you all the way. We will provide support and training, if it will clearly benefit both parties. You will have the opportunity to travel and get involved in a range of disciplines, to further develop you as a multi-faceted consultant.

  • Whilst no project, engagement or role at BJSS is the same, there are core sets of responsibilities for all of our Software Engineers that include:
  • Project Delivery: the day-to-day responsibility for technical aspects of a project, both internally at BJSS and at client sites
  • Analysis and Design: understanding of both functional and non-functional requirements to produce well designed software, including the ability to communicate your design to others including clients
  • Software Development: construction and testing of software components to a high standard within a team
  • Quality Assurance: understanding of system test plans and system testing. Eliciting and documenting System Functional and Non-Functional Requirements

What we are looking for:
• Strong “Software Engineering” fundamentals and practical experience
• Development of highly concurrent systems (multithreaded and/or distributed)
• UML
• Experience of web / app containers such as Jetty, Tomcat, JBoss, Weblogic
• Exposure to NoSQL technologies such as MongoDB, Redis, Riak, Couchbase, Hadoop
• Map/Reduce
• Persistence frameworks/APIs, such as JPA, Hibernate or Spring Data
• HTML5 and JavaScript
• Exposure to Test Driven Development or Behavior Driven Development methodologies
• Deployment automation technologies such as Chef, Puppet, Cobbler, Vagrant, Ansible, Docker
• Exposure to iterative/agile development methodologies (SCRUM, XP, DSDM, RUP, Kanban etc.)
• Scripting experience such as BASH, Python, Ruby
• Exposure to automated integration testing through tools like Selenium, Fitnesse, Cucumber
• Exposure to enterprise messaging technologies / ESBs (JMS, AMQP, RabbitMQ, Kafka, Tibco EMS, IBM WebSphere MQ)


Engagement Types
We undertake a wide variety of work and although no two engagements are the same, a BJSS Development engagement will typically:


Project Delivery
Working within a team on the end-to-end delivery of software projects for our clients, our developers use industry best-practice techniques to design, implement and then deliver solutions.
Projects may be delivered using our BJSS Enterprise Agile approach, or the clients preferred method, and may be a pure BJSS team or an integrated BJSS/client team.


Consultancy
Clients turn to us for development-based consultancy services such as the design and development of their IT systems, reviewing their existing technology stack and providing strategic input for future extensions to their IT systems. These are both advisory and in project delivery capacity at client sites.
Engagements may be delivered from our own offices or at one of our client office locations – an element of travel is part of the job.