Senior Java Engineer
GR8 Tech is a global product company that provides innovative, scalable platforms and business solutions for the iGaming industry.
We have Π° great experience: GR8 Tech platform successfully handles millions of active players and offers best practices to develop and grow in the gambling industry. We are here to provide great gaming tech to satisfy even greater ambition!
We develop complete tech coverage for gambling businesses worldwide, including iGaming platform solutions, consulting, integration, and long-lasting operation services.
We are driven by our ambition to make a great product with great people! Together we move the world of iGaming forward β join!
About your key responsibilities and impact:
- Design and implement scalable and efficient software architectures.
- Write, test, and debug complex code for new and existing software applications.
- Provide guidance and mentorship to junior engineers and team members.
- Conduct thorough code reviews to ensure code quality, security, and best practices.
- Create and maintain comprehensive technical documentation for software development and system design.
- Lead and manage software development projects, ensuring timely delivery and quality(shared responsibility with Delivery Manager)
- Work closely with cross-functional teams, including product management, design, and operations, to align development efforts with business goals.
- Research and implement new technologies and methodologies to improve software performance and development processes.
- Identify and resolve complex software issues and technical challenges.
- Develop and enforce testing protocols to ensure software reliability and performance.
- Drive continuous improvement in software development practices and processes.
- Communicate effectively with stakeholders, including presenting technical concepts and project updates.
- Deliver code to production in timely manner according to business expectations
Essential professional experience:
Advanced knowledge of Java Programming
- Proficiency in core Java concepts such as OOP (Object-Oriented Programming), multithreading, collections, exception handling, and memory management.
- In-depth understanding of Java 8+ features, including Streams API, lambda expressions, Optional, and the new Date and Time API.
- Mastery of Java concurrency and synchronization, thread pooling, and concurrent data structures.
- Experience with JVM internals, including garbage collection, performance tuning, and profiling
Java Frameworks and Libraries
- Extensive experience with Spring Framework (Spring Boot, Spring MVC, Spring Data, Spring Security).
- Proficiency in Hibernate or JPA for ORM (Object-Relational Mapping) and data access.
- Familiarity with other Java-based frameworks like Apache Camel, Vert.x, or Micronaut.
- Knowledge of build tools like Maven and Gradle for project management and dependency management.
Web Development
- Proficiency in building RESTful APIs and web services using frameworks like Spring Boot or JAX-RS.
- Understanding of web technologies such as HTML, CSS, JavaScript, and front-end frameworks (e.g., Angular, React, or Vue.js).
- Experience with asynchronous programming and handling real-time data using WebSockets.
Testing and Quality Assurance
- Expertise in unit testing with JUnit, TestNG, and integration testing frameworks.
- Knowledge of mocking frameworks such as Mockito or PowerMock.
- Familiarity with behavior-driven development (BDD) tools like Cucumber or JBehave.
- Experience with performance testing tools like JMeter or Gatling.
Database and Persistence
- Advanced skills in SQL and experience with relational databases (e.g., PostgreSQL, MySQL, Oracle).
- Proficiency in working with NoSQL databases (e.g., MongoDB, Cassandra, Redis).
- Experience with database migration tools like Flyway or Liquibase.
DevOps and Continuous Integration
- Experience with CI/CD tools specific to Java projects, such as Jenkins, GitLab CI, or Travis CI.
- Proficiency in using Docker for containerization and Kubernetes for orchestration of Java applications.
- Knowledge of infrastructure as code (IaC) tools like Terraform or Ansible for provisioning and managing infrastructure.
Performance and Scalability
- Skills in profiling and monitoring Java applications using tools like VisualVM, JProfiler, or YourKit.
- Experience in optimizing application performance, including memory management, CPU usage, and response time.
- Understanding of load balancing, caching strategies (e.g., EHCache, Hazelcast), and distributed systems.
Security
- Knowledge of secure coding practices and understanding of common security vulnerabilities (e.g., OWASP Top Ten).
- Experience with authentication and authorization mechanisms, including OAuth2, JWT, and SAML.
- Proficiency in implementing security features within the Spring Security framework.
Advanced Networking
- Understanding of network programming using Java NIO and async I/O.
- Experience with messaging systems like Apache Kafka, RabbitMQ, or ActiveMQ.
Additional Tools and Technologies
- Familiarity with version control systems like Git and collaboration platforms like GitHub or Bitbucket.
- Knowledge of code quality and static analysis tools such as SonarQube, PMD, or Checkstyle.
- Experience with logging frameworks like SLF4J, Logback, or Log4j.
What we offer:
Benefits Cafeteria:
- Sports compensation;
- Medical coverage;
- Psychological support;
- Home-office coverage.
Work-life:
- Remote work, Coworking compensation;
- Childcare budget;
- Maternity leave;
- Paternity leave;
- Additional 2 days for family events.
Our GR8 Culture:
- Open feedback and transparent direct communications;
- Growth and development: better every day;
- High tolerance to experiment and mistakes;
- Supportive friendly environment.