Responsible for:
- Providing input and expertise into the architecture, design, and technical governance of various digital and Cloud applications.
- Applying effective analysis, design, programming, and testing skills to produce software systems.
- Contributing to the technical direction of projects and software applications.
Main activities:
- Work closely with other developers, both internal and external, to deliver high-quality working software on a regular cadence in accordance with company standards and methodologies.
- Work close with other developers to continually improve processes and provide internal process automation
- Participate in peer code-reviews
- Crate automated unit-tests
- Create automated acceptance tests when required
- Participate in production deployment activities as required
- Provide mentoring to other team members and the wider business as practical
- Provide analytical and problem-solving support to the development team and the wider business
- Assist in the production of systems design artefacts such as integration plans, wireframes, process or workflow designs, and functional design documents
- Produce working prototypes to demonstrate solution efficacy and suitability to developers and stakeholders
- Work in a hybrid Waterfall/Agile environment
- Identify development risks and issues as necessary
- Evaluate tools and technologies with a view to delivering efficient, cost effective quality solutions.
- Author and maintain documentation including design, tool use and development processes, as required.
- Analyse software requirements and translate these into epics and user stories, as required
- Undertake assigned integration planning and software build definition tasks.
- Assist in short or long term technology planning, making recommendations on technical policies within an overall program.
- Assist in the preparation of project proposals and with estimations.
Typical experience:
- 5+ years of software development experience.
- Tertiary qualifications in computer science and/or information technology.
Key skills:
- Good written and oral communications.
- Problem identification and process management skills.
- A demonstrated ability to perform work in a team.
- Previous experience mentoring junior staff.
- Ability to work with and present to customers.
- Excellent time-management skills
- Ability to deliver to deadlines based on provided estimates
Technical skills:
Mandatory:
- Sound and in-depth understanding of OOP, functional programming, MVC and design patterns
- Expertise in API design/delivery using RESTful, SOAP and GraphQL interfaces
- Expertise in responsive web development
- Expertise in modern front-end web technologies: HTML5, CSS3, JavaScript ES5/ES6,
- Exposure to modern web tooling such as Webpack, Babel, SASS/LESS/PostCSS, Browserify
- Exposure to and expertise in at least one JavaScript framework such as React, Angular, Ember, Knockout
- Proficient in modern back-end web technologies: NodeJS, C#, Java
- Proficient in web application database design and development: SQL, Postgres, MySQL
- Proficient with front-end unit testing eg. Jasmine, Mocha, Jest
- Proficient with using AWS services such as EC2, SNS, SQS, RDS
- Proficient in web accessibility standards including local applicability and the impacts on the development process
- Proficient with build and management tools e.g Git, grunt, gulp, Jenkins, WebPack
- Experience with modern issue tracking tools such as Jira
- Exposure to Agile Development methods
- Excellent communication skills and team worker
- Strong problem-solving ability and work well under pressure
- Experience with Continuous Delivery
Nice to have:
- LINUX (RedHat, Ubuntu)
- Shell scripting (Bash/Zsh)
- Puppet / Salt
- PostgreSQL / MySQL
- Docker
- Apache/Nginx
- CI/CD tools (e.g. Jenkins)
- SVG, canvas, Web3D, GIS, data visualisation using D3 or similar