Software Engineer (Research Technology)
- London, England, United Kingdom
- Permanent, Full time
- 10 Jan 17
Requirements We are looking for an experienced, highly motivated, Software Engineer to join the Research Technology team. We are seeking fresh talent for an established team that is currently lacking senior technical leadership in one or two areas. We are firm advocates of Agile methodologies (primarily Scrum) and are looking for a keen technician who understands this development approach and is keen to find a secure role where they will enjoy a happy and challenging environment.
The Software Engineer is responsible mainly for the implementation of new features and solutions and also for identifying and correcting defects. They need to be experienced in the review and interpretation of software design concepts in order to trace, debug and develop software implementations that meet the specified design objectives through proper observance of Research IT and UBS standards and conventions. They must be a strong problem solver who can trace a problem to its root cause and then provide a robust, efficient and timely solution.
• Analytical mindset that picks up new technologies and business concepts quickly. Strong problem solving skills is the key requirement for this role.
• Very strong attention to detail, always looking for ways of tightening up code and maintaining standards. Serious attention to detail.
• Personal initiative & a 'can-do' attitude – enthusiasm. Is self-motivated. Is a team player, willing to “roll their sleeves up” and help others when appropriate.
• Experience of working to tight timelines, whilst still keeping calm and positive. Can work effectively under deadline pressures.
• Lead the development of technical solutions through the full lifecycle, from analysis to production release. Make key technical decisions in partnership with your colleagues and influence the overall technical design.
• Oversee code contributed by other members of the global team and review for standards and quality. Provide technical guidance and help to junior team members. Mentoring junior members of the team will be necessary in some roles. Pair programming when appropriate.
• Layout technical standards for a project including code standards, toolsets and quality. Oversight of testing standards and strategies on the application, e.g. ensuring appropriate unit test coverage.
• Take an active role in an Agile (Scrum) team and contribute process improvements. ScrumMaster certification would be a bonus. Manage a continuous stream of work in a strict Agile environment and balance your workload such that you don't become a bottle-neck for others.
As well as development and analysis work, all team members play an active role in fixing defects, release management and providing ad hoc reports. This will also include assisting business and support teams with data queries and ad hoc requests.
Your team :
Within IB IT, the Research & CRM Application Delivery group has around 160 staff located throughout the world. Development is undertaken predominately by the London team with smaller teams based in New York, Zurich, Singapore and India. The support team is globally distributed.
Your experience and skills :
Extensive experience in the following technologies:
Core Java, including frameworks/libraries such as Spring Boot/MVC/Security/Integration, Guava, Apache Commons/HttpComponents, Jackson etc.
UNIX/Linux development experience (shell scripting). Experience of Apache/Tomcat on UNIX, or similar.
Strong OO understanding e.g. classes, interfaces, polymorphism, collections, generics etc. Core Java. Collections, Multithreading, JDBC etc.
Use of Design Patterns and basic development principles.
Good understanding of agile practices, have experience in different agile methodologies such as Scrum, KanBan, Lean, XP and etc.
Experience in software design, development, data structure and algorithm in different programming paradigms such as procedural, object-oriented, functional and etc.
Adobe Experience Manager 6/CQ 5.6
Experience in software testing concepts including unit, integration, TDD/BDD, spec by example, end to end and non-functional testing.
Experience with CI/CD workflows and tools such as Jenkins/TeamCity.
Experience developing multi-tier distributed scalable and user-centric reliable applications that operate 24x7.
Familiar with multiple GOF design patterns and Enterprise Integration Patterns.
Very proficient with one of more IDEs such as Intellij, Eclipse, Emacs, Sublime, Vim.
Some exposure to relational databases (transactional and non-transactional, SQL and NoSql).
Advanced knowledge of Excel, VB and Excel macros would be very useful.