Software Developer
Role details
Job location
Tech stack
Job description
Goss was founded in 1999 and has been delivering digital transformation projects for over 25 years. Over that time, we have produced a lot of software, some of which includes two frameworks that provide the front ends that power our websites. As part of this role, you will be a member of a team responsible for modernising these frameworks by decomposing them into microservices and defining our core technologies going forward. You will have opportunities to shape our future technology and improve and design systems on mostly greenfield projects.
Role Responsibilities
Development
- Write clean, testable, maintainable and secure code following industry best practices.
- Practice good branching and merging hygiene, using revision control systems to ensure features can be safely reintegrated without large numbers of conflicts.
- Produce effective human-readable documentation and LLM-friendly documentation (AGENTS.md, etc.).
- Produce ADRs for larger technical decisions to ensure the context and reasoning behind them is not lost.
Software Quality and Security
- Create and maintain automated unit, integration and functional tests to ensure regressions are caught and system stability is high.
- Contribute to code reviews and share knowledge to improve the team's overall code quality.
- Maintain vigilance over codebases to ensure high security standards are met, following good practices set by projects like OWASP and monitoring CVEs to keep projects updated and protected against known vulnerabilities.
Team Contribution
- Contribute to systems design and engineering discussions with Senior Engineers and the Team Leader to shape and improve technical solutions.
- Effectively communicate progress, blockers and technical details clearly during daily standups so that direction is well understood.
- Participate in backlog refinement and team ceremonies and contribute to process improvements for increased team effectiveness.
- Share knowledge and learnings with peers to ensure that the team's understanding and skill set consistently improves.
Personal Profile
You are a strong engineering professional with solid fundamentals and a passion for writing clean and maintainable code. You can work as part of a technical team and provide valuable insight and contributions to technical discussions. You continuously strive to improve your abilities and are not afraid to get involved in areas potentially outside of your areas of expertise. You have an overall passion and appreciation for the field and enjoy producing high quality solutions that meet client needs.
Requirements
- A degree in Computer Science or equivalent computing field and/or industry experience in a related field
- Strong understanding of Web Development fundamentals and technologies including but not limited to HTML, CSS and JavaScript/EcmaScript and JSON.
- Very strong skills with Kotlin/Java, JavaScript/EcmaScript and Node.js.
- Solid understanding of software development principles specifically around Object-Oriented systems.
- Understanding of version control systems such as Git and the ability to employ merging and branching strategies for feature development.
- Solid understanding of secure coding practices and the ability to write modular, performant and testable code.
- Ability to debug and trace issues through complex systems.
- Knowledge of RDBMS such as PostgreSQL or SQLServer.
- Strong soft and interpersonal communication skills via verbal and written communication, able to communicate technical subjects with clarity.
Desirable
- Related industry relevant qualifications or additional training courses online or otherwise.
- Understanding of additional Web technologies such as API paradigms, i.e. REST and methods for securing transmitting claims, i.e. JWT.
- Experience working with dependency management tools such as Maven, Gradle and NPM.
- Understanding of package decomposition principles and the ability to apply them to large software systems.
- Understanding of CI/CD pipelines for automated deployment and testing.
- Familiarity with observability and logging systems such as OpenTelemetry and Prometheus.
- Knowledge of remote debugger tools for JVM and Node systems.
- Able to distil complex technical subjects into an easily digestible format for both technical and non-technical audiences.
Benefits & conditions
Pulled from the full job description Referral programme Free parking Company pension Paid volunteer time Casual dress Work from home Company events, * Casual dress
- Company events
- Company pension
- Enhanced maternity leave