Development is the largest discipline at Endava. Our developers design, build, and release software products in multiple programming languages, frameworks, and libraries. Always collaborating with cross-functional project teams, our developers are adaptable problem-solvers with a client-oriented mindset.
As a Senior Developer at Endava...
- Codes, amends and refactors moderately complex programs / scripts in accordance with the design.
- Verifies and tests moderately complex programs / scripts; corrects errors and re-tests as appropriate.
- Documents work in accordance with agreed standards. Applies version control in accordance with agreed procedures.
- Applies agreed standards and tools as required, to achieve a well-engineered result.
- Collaborates in reviews of work with others as appropriate. May be involved in peer review activities such as pair programming. Monitors and reports on progress.
- Assists with the production of outline specifications, collecting and collating information to help determine scope, business objectives, constraints etc. to be taken into consideration.
- Undertakes design of moderately complex software applications or components.
- Assists as part of a team in the design of components of larger software systems.
- Produces logical designs including processes, objects, data flows, inputs, stored data and outputs.
- Identifies common processes and specifies user and/or system interfaces
- Translates logical designs into physical designs taking account of target environment, performance (and other non-functional) requirements and existing systems and services.
- Produces detailed designs including for example: physical data flows, class diagrams, file layouts, common routines and utilities, software specifications or prototypes, and backup, recovery and restart procedures.
- Applies agreed standards, guidelines, patterns and tools
Responsibilities:
- Designs, estimates, and implements technical solutions for medium/high complexity applications.
- Participates actively in all phases of the application development lifecycle.
- Collaborates with various project stakeholders to provide support for clarifying requirements, processes, architecture, and priorities.
- Recommends and promotes IT industry standards, tools, and practices (DevOps, etc.) to achieve well-engineered software products.
- Proposes improvements and escalates risks/issues related to development activities.
- Participates in the review of the work done by development team members.
- Learns and applies new technologies, practices, and tools as appropriate to the project.
- Participates in internal and external tech communities, events, etc.
- Shares experience and knowledge gained from projects.