Our Software Engineers enjoy 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.
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. Working in an agile environmentm 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.
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
The successful candidate will have excellent written, oral communication and interpersonal skills and demonstrate skilful application of the following core competencies:
- Performance bias – takes responsibility for achieving results, overcomes obstacles and adapts approach
- Strong decision making – effective in analysing situations and clarifying key issues
- Strong interest in new technology – makes appropriate use of technology to deliver an optimal business solution. Good awareness of the modern technology landscape.
- Partnership and teamwork – actively engages and respects the diverse contributions of team, partners or networks.
- Self-starter – excellent communication skills, proactive with good prioritisation and work management skills
- Rigorous attention to detail and a ‘can-do’ attitude
- Minimum of a 2:1 degree or significant industry experience
- The individual should be delivery focussed and flexible in the work undertaken, they should be willing to learn new technologies and languages.
- They should have the ability to work in varying sizes of project team as well as on occasion individually. They should be comfortable in presenting their ideas to peers, management and clients.
You must also have the following technical experience:
- Knowledge of and experience in jQuery, HTML/XHTML and CSS
- Computer Science or related background
- Strong Object Oriented skills
- Thorough understanding of the fundamentals of computing, e.g. logic, data structures, algorithms, low-level architecture, systems infrastructure, network stack, etc
- Experience working in an Agile team
- Experience with one or more unit test frameworks, e.g. Jasmine
- Exposure to continuous integration, build tools and scripting
- Use of source code version control using tools such as Git, Subversion or Mercurial
- Experience in developing in a cross-browser environment
The following will be advantageous:
- Experience of other languages such as Java, Python, PHP or C#
- Experience consuming RESTful services
- Web Server technology such as Apache and Nginx
- Good knowledge of SQL and NoSQL databases
- User experience design and testing
- Other Web/network application frameworks. Understanding of non-blocking I/O
- Experience of modern build tools, e.g. Grunt and/or Gulp
- Experience of CSS frameworks such as Bootstrap/Foundation
- Automated testing, integration and end-to-end testing e.g. Selenium, Protractor
- Working knowledge of diagnosing browser compliance and performance issues
- Working knowledge of modern user interface design patterns and practice
- Exposure to Test Driven Development or Behaviour Driven Development methodologies
- Experience of multiple operating systems: Windows, Linux, Mac OS