Software Engineer Web Development Industrial Placement 2021
Computing is essential to the science that STFC supports. We have placement opportunities for enthusiastic software developers to join the ISIS Computing group. These placements are in our teams that develop and maintain unique web-based software which support scientists’ access to large scientific facilities across STFC’s National Laboratories. Other teams in the group deliver IT services and infrastructure.
We are based in STFC’s neutron and muon department, ISIS. ISIS is a world-leading centre for research in the physical and life sciences at the Rutherford Appleton Laboratory near Oxford. Our suite of neutron and muon instruments gives unique insights into the properties of materials on the atomic scale. Software lies at the heart of many ISIS activities.
We choose the best technologies we can to develop software that meets the latest needs of our customers who are world-leading scientists and engineers.
We have two remaining Industrial Placement opportunities to join our growing teams to help develop business software used by the ISIS and other large scientific facilities across STFC’s National Laboratories. You will benefit from working on software used across many departments but also, by being embedded in a scientific department, be close to the action!
The Role
As part of a team you will be involved in all stages of the software development life-cycle, from requirements capture through modelling, coding, testing, and deployment. This will give first-hand experience of developing a product from conception through to maintenance using Agile and DevOps techniques. This placement will enable you to work on various software solutions that meet the evolving needs of our internal and external users.
You will benefit from working in a supportive team and have exposure to advanced programming methods in the real-world.
Training will be provided as necessary. In addition to a full induction and “on the job” training, you will have opportunity to subscribe to professional online tutorial sites, attend conferences, undertake various soft skills training, and take part in our organisation-wide events where you can network with other students and graduates.
Responsibilities
During your placement you will be expected to:
- Communicate and work with fellow software engineers within the team on a daily basis
- Communicate with users, scientists and management to understand their requirements and translate these into a specification
- Design software solutions making use of various modeling techniques such as UML and mock-ups
- Write clear, well-structured (mostly object oriented) code that implements the design and is easy to maintain
- Write unit, integration and front-end tests following team practices
- Take an active role in meetings including team meetings and code reviews
- Take responsibility for ensuring your code passes all existing tests and new tests and that it deploys correctly to our test server
- Deploy software solutions to production using our continuous integration server
- Write documentation for technical and non-technical users
- Support our users (internal and external) in using existing and new systems (2nd and 3rd line support)
- Use a variety of tools and technologies used by the team to develop software (e.g. GitHub, Jenkins, IDEs such as IntelliJ IDEA, NetBeans and Visual Studio, Oracle and SQL Server databases, application/web servers such as Payara and IIS, various languages including Java, Java EE, Spring, C#, web services - SOAP and RESTful- ASP.NET, HTML5, CSS3, JavaScript libraries)
Requirements
This placement will give you the opportunity to put into practice the things you have learned at university and give you brand new skills and exposure to enterprise technologies perhaps not taught at university.
As a starting point we expect you to have:
- A strong academic background with very good module grades at university so far
- A good understanding and experience of programming in Java, C# or similar language
- A good understanding of relational database theory and SQL
- An awareness of software engineering principles, including testing and best practice
We also expect you to be able to:
- Work with others on projects and solve problems of varying complexity together
- Approach your work positively, with an open mind and be organised
- Take initiative and work effectively with limited supervision at times
Essential
- At university, enrolled on an undergraduate degree course and required or have requested to take a year out of studies to gain experience within industry
- Right to live and work in the UK
- A-levels or equivalent qualifications or experience
- Studying for a degree in computer science, software engineering or any other degree with a strong element of computer programming
- Experience of object oriented software development in Java, C# or a similar language
- Knowledge of relational database design and SQL
- Knowledge of different types of software testing
- Good communication skills both verbal and written
- Ability to give an example of good team working capabilities and be open minded and flexible in relation to the type of work assigned to you
- The willingness to learn new skills, both technical and non-technical
- Good organisational skills
- Excellent problem solving skills
- Ability to take initiative and to work effectively with limited supervision at times
Desirable
- Interest in User Experience (UX)
- Knowledge of database environments such as MySQL, Oracle and SQL Server
- Knowledge of modelling and design tools such as UML
- Knowledge of web services and XML/JSON
Experience does not have to be paid experience. For example, it could be some project you have done as part of a university module, a personal project or an open-source/volunteer project you have contributed to.