Job Description Roles and Responsibilities Background & Summary Purpose of the Role The Software Developer role provides a technical leadership role in projects to develop and maintain the Ci Tools and other solutions for our AEC (Ci AEC (Architecture Engineering and Construction) sector customers comprising Architects, Draftspersons and Volume Homebuilders. Key Responsibilities
Manage overall software architecture and architectural direction of the software in accordance with the Roadmap agreed with the Development Manager and Product Owner
Assist Development Manager and Product Owner with Roadmap development
Write development specifications for Stories/Features/Tasks planned for the Sprint according to Ci Development coding standards
Write software code for Stories/Features/Tasks planned for the Sprint according to Ci Development coding standards
Manage code base into Ci code repository according to Ci Development coding standards
Work with Development Manager and Product Owner on Sprint/Epic Planning for Stories/Feature allocation and prioritisation
Provide accurate estimates of feature/bug fix/development efforts needed for Stories/Features as assigned during Sprint/Epic Planning
Communicate with Product Owner/Development Manager role or Customer where required for Sprint on functional requirements to get additional understanding of the Story/Feature/Task requested
Act as Technical Lead during product definition/breaking down story activities for the Sprint backlog (Sprint Kickoff/Estimation meeting)
Work closely with the team to understand bugs raised and provide effective fixes or workarounds
Support debugging (level 2 and 3) of critical errors raised by the Support team
Refactor and comment legacy code where assigned
Check code quality of other team members
Participate in Code review and Integration testing to ensure quality is maintained
Provide direction on all test activities including integration, alpha and beta testing
Key Performance Indicators Quality
Number of critical issues per feature/story developed
Number of issues per feature/story developed
Time to resolve issues
Performance
Time to develop the feaure (Story/Task) vs estimated time
On time delivery of software release
Innovation
Improvements.
Reuse of code and libraries.
Effort
Person-hours in the project/iteration/sprint.
Qualifications/Skills/Experience Overview of General Requirements of the Role
Technical leadership in a Software Development Role - either as development manager or scrum master on an agile project
Proven Experience in a Software Development Role.
Proven Experience in designing client-side software products
Ability to product technical documentation
Direct experience in end-to-end development projects.
Understanding of Agile Development process
Understanding of Unit Testing/Test Driven Development.
Self-discipline and time management
Overview of Technical Requirements of the Role
Languages and Technologies:C++ (Essential) - using QT Framework, XCode, JS, Python
Code Repositories: GitHub, BitBucket
IDE: Visual Studio, QT creator, XCode
Knowledge and experience would be well regarded: Mac OS, GDL- Geometric Description Language used with GRAPHISOFT Archicad, GRAPHISOFT Archicad software
Personal Attributes
Leadership
A positive and enthusiastic way of looking at things.
Not a 'clock watcher'.
A can-do-attitude.
Can be Independent and self-motivated.
An appropriately enthusiastic team player.
Commitment to agreed timeframes and deliverables.
Innovative.
Ability to contribute to positive relationships with customers and colleagues.
Employement Category:
Employement Type: Full timeIndustry: RecruitmentFunctional Area: ITRole Category: Software DeveloperRole/Responsibilies: C++ Developer