SENIOR SOFTWARE ENGINEER
| Londres | Fulltime
Resumes that are not in English will not be considered
Location: London (Remote work from Spain)
The essence of this role
Reporting to the Tech Team Lead, you will take responsibility for developing key aspects and functions that form the backbone of our product portfolio (ConOP™). This includes development at different Technology Readiness Levels, writing functions to analyse data sets, develop prototypes releases of software (for pilots to prove concepts), and “glue” systems together to integrate different business applications. You will support technical review and have a passion to design, develop and implement quality software solutions to be deployed at scale.
Within this role you will be expected to undertake tasks such as gathering user requirements, defining system functionality and writing code in various languages, like Java, python, or .NET programming languages (e.g. C++ or JScript.NET.) Our ideal candidate will be familiar with the software development life cycle (SDLC) from preliminary system analysis to tests and deployment. Ultimately, the role of the Senior Software Engineer is to build high-quality, innovative and fully performing software modules that complies with coding and technical design standards.
This role requires significant existing knowledge as well as a keen passion and enthusiasm to work as a team on one of the most exciting technical challenges of our era.
The responsibilities of the Software Engineer are as follows:
- Design, Develop and Test Software Functions (front end and back end) suitable for inclusion in our ConOP™ product.
- Develop prototypes instances and pilots to prove concepts in public and client trials.
- Solve technical problems across multiple technologies, developing new methods if required.
- Contribute to a diverse range of assignments for both internal and external clients, including bidding for new work.
- Contribute and manage knowledge sharing within the company and across related communities.
- Developing tests, reviewing code and assisting in quality assurance.
- Execute full software development life cycle (SDLC).
- Develop flowcharts, layouts and documentation to identify requirements and solutions.
- Write well-designed, testable code.
- Produce specifications and determine operational feasibility.
- Integrate software components into a fully functional software system.
- Develop software verification plans and quality assurance procedures.
- Document and maintain software functionality.
- Troubleshoot, debug and upgrade existing tools and systems.
- Comply with project plans and industry standards.
- 5+ years of experience in a related role
- Qualification in Computer Science (or equivalent) to degree or masters level.
- Experienced in developing in Java, C++, Python.
- Working knowledge of web service interfaces.
- Extensive experience of different operating systems.
- Key fundamentals in object-oriented design.
- Key fundamentals in data structures and distributed systems.
- Proven experience as a Software Engineer or Software Developer.
- Experience designing interactive applications.
- Experience with test-driven development.
- Proficiency in software engineering tools.
- Ability to document requirements and specifications.
- Experience with web-based user interface development.
- Experience of working with configuration management tools.
- Experience of software testing practices, verification and software QA.
- Fully understands the software development life cycle.
- Strong written and verbal communication to present complex concepts to multi-disciplinary teams.
- Agile Methodologies e.g., Scrum or Kanban
- Experience with/Knowledge of team collaboration and communication tools like JIRA, Slack, Azure DevOps, TFS, VSTS
- Exposure to techniques of Machine Learning or Artificial Intelligence, applied to real-world challenges, e.g., predicting maintenance of aircraft and parts
- Exposure to Data Science or Data Analysis techniques, e.g., create dashboards from real-time data and evidence-based recommendations
- Exposure to IoT technology, e.g., create gateway and correction of measurements from environmental sensors and messaging protocols like Kafka, MQTT, RabbitMQ or equivalent and protocols like DDS, DIS or equivalent
- Exposure to GIS tools (like QGIS, ArcMap) & methods, e.g. estimate the overall journey time and travel distance of a bus
- Exposure to microsimulation packages like SUMO, Aimsun, Vissim
- Exposure to DevOps practices, e.g., create container-based apps
- Technical coaching
- Certifications in related areas e.g., ITIL, GDPR, TOGAF, etc…
- Experience with Apache Stack (e.g., Hadoop, Spark, Kafka, Storm, etc.)
- Can-do, positive attitude.
- Intelligence, listening and learning.
- Proactivity, energy, enthusiasm.
- Collaborative and non-hierarchical style of working.
- Strong technical skills linked to business acumen.
- Able to command a high-profile presence both internally and externally.
- Able to adjust approach and communication style in empathy with the audience.
- Able to demonstrate courage and conviction to deliver better strategic outcomes