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:
4+ 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
Fluency in the Ukrainian language.
Ability to work independently and in a team.
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