Our client’s Software-as-a-Service (SaaS) solution enables employers to provide an outstanding leave and return-to-work experience, maintain business continuity during key absences, reduce HR support time, and uphold their family-friendly brand commitment.
Waverley Software is looking for a software engineer with practical experience of back-end development and database management to become a part of our development team working on an HRM system. On this project, you’ll collaborate with team members from diverse locations, having to communicate effectively and deliver a high-quality application.
Requirements:
- 5+ years of experience in commercial software development.
- Experience with the Go programming language (or any other similar), including its syntax, standard library, and best practices for writing efficient, clean, and maintainable code
- Experience with relational databases, including writing and optimizing SQL queries, designing schemas, and managing migrations
- Basic understanding in containerizing applications using Docker and managing Dockerfiles
- Experience with CI/CD pipelines, automating build, test, and deployment processes, and familiarity with tools like Jenkins or GitHub Actions
- Proficiency in Git for version control, including branching, merging, pull requests, and code review practices
- Proficiency in testing and debugging, including writing unit and integration tests
- Ability to design and implement scalable RESTful and GraphQL APIs, with a strong emphasis on security best practices (e.g., OWASP Top 10)
- Analytical and problem-solving abilities to address technical challenges and optimize existing systems
- Strong communication and documentation skills with the ability to explain technical concepts to both technical and non-technical stakeholders
Responsibilities:
- Participate in the design, implementation, and maintenance of server-side code for web applications and services, ensuring it is efficient, scalable, and secure
- Design and manage databases, including schema design and improvements, query optimization, and ensuring data integrity and security
- Develop and maintain integrations between different parts of the system and with external services, ensuring robustness and clear documentation
- Ensure code is developed with a comprehensive understanding of deployment procedures and how it will function within the overall project scope
- Implement and maintain comprehensive test coverage to ensure the reliability and stability of the codebase
- Regularly maintain and refactor the codebase to address issues, improve performance, and manage technical debt
- Work closely with a geographically distributed team of engineers, QA, UI/UX designers, and PMs to ensure seamless integration, align on project goals, and collaboratively address technical challenges
- Actively participate in regular internal team meetings and company-wide meetings to stay aligned with project goals, share updates, and contribute to broader organizational challenges
- Implement and adhere to security best practices to protect against common vulnerabilities and ensure the safety of the application and its data
Will be a plus:
- Understanding of concurrency models, goroutines, channels, and parallelism
- Familiarity with additional database technologies like Cassandra, Redis, or Elasticsearch can be beneficial for handling diverse data storage and retrieval needs
- Familiarity with cloud platforms such as AWS, including deployment, scaling, and managing services
- Experience with GraphQL, which can complement RESTful API skills
- Experience with message brokers can be useful for managing asynchronous communication in distributed systems
- Familiarity with Ruby on Rails since we have an internal project using this framework