Area / Job Type
Cape Town area, South Africa (hybrid & flexi-hours)
Permanent - Fulltime
The Company
Our client develops and maintains software for business customers in the online casino and lottery industries. Our client’s ultimate goal is to create a safe and fun environment for the entertainment of their customers’ players.
Job Description
Our client is looking for a Senior Software Engineer to join their team. They are looking for talented individuals with a passion and strong drive for self-improvement. The ideal candidates have a preference for working in teams in an agile environment.
Key Performance Indicators
- Write quality, consistent solutions following best practices utilising OOP, TDD, BDD, FDD, SDLC, Coding Standards, Peer Review, Continuous Integration, 12 Factor App, DORA Metrics, Enterprise, and Microservices Design Patterns.
- Interact with technical (architects) and non-technical (business) stakeholders.
- Propose and implement efficient business and technical goals.
- Anticipate requirements and build software in a flexible, scalable way.
- Communicate issues, risks, and dependencies with line managers, escalating where appropriate.
- Function within an agile environment:
- Attend and contribute to agile ceremonies.
- Assist with a breakdown of tasks from business requirements into technical solutions.
- Help the team understand the technical requirements, so that they can achieve consistent velocity.
- Document solutions and assist others in doing their documentation.
- Communicate constructively and effectively and be passionate about mentoring team members and peer review in person or virtually.
- Accurately track time within the systems provided on a daily basis.
- Deliver on sprint commitments.
- Contribute to team planning, discussions, and solution designs.
- Take guidance from and support your line manager.
- Report accurately on progress both within the systems and directly to your line manager.
Personal Characteristics
- You display strong problem-solving and analytical skills.
- You are a lateral thinker, who can solve problems using creative reasoning.
- You are a curious person who learns and improves your professional skills.
- You have the enthusiasm to learn and expand your technical knowledge as both a manual and automation engineer.
- You are a dependable person, who delivers consistent quality.
- You collaborate well within a team environment and develop relationships with the other teams and stakeholders in your area.
- You have a friendly, positive, and proactive attitude to your role and your colleagues.
- You have excellent verbal and written communication skills and can interact professionally with a diverse group of people.
Soft Skills
- Communicate clearly and effectively to all levels of the organisation.
- Convey technically complex topics to developers.
- Convey technical concepts to the business unit (Product or C-level).
- Condense elaborate technical topics into summaries.
Key Skills
Modelling:
JDK latest LTS:
Spring Cloud:
- Configuration
- Discovery
- Stream
- Integration
- Gateway
Spring Data:
- JPA
- RDBMS
- ANSI SQL
- Normalisation
- Indexing
- NoSQL
- Caching
- Flyway
- Spring Security
Spring Boot:
- Observability
- Testing
- AOP
- Validation
- AOT for GraalVM using buildpacks
- JAXB
- Eventing
Spring Web:
- Sync and Async controllers
IntelliJ:
- Debugging procedures
- Refactoring
- Optimisation
Maven:
Git:
- Sharing a repo with 15+ active developers
- Branch management
- Git hooks
- GitLab CI
- Gitlab Environments
Cloud: (beneficial)
- GKE K8s
- ArgoCD
- Scale to zero
- Observability
- Alerting
Front-end: (beneficial)
- VueJS
- Angular
- Typescript
- Promises, Observables & RxJS
- Webpack
- Testing frameworks
Responsibilities
- Conform to all ISO-based company policies and procedures.
- Conform to all customer SLAs.
Benefits
- Flexi hours (with the exception of core hours).
- Unlimited coffee in their brand new office made with love by their barista.
- 21 days annual leave.
- The teams are exposed to quality learning platforms, and if you’re self-driven, you will be able to learn and use that knowledge to improve your own skills and deliver better solutions to the business.