Role: Senior Software Development Engineer II – Java Developer
Job Description:
Mobile Premier League (MPL) stands as the foremost mobile eSports platform globally, facilitating users’ participation in both free and paid competitions across a diverse array of 60+ games spanning multiple categories, including fantasy sports, sports games, puzzles, casual, and board games. Established in 2018, MPL hosts hundreds of millions of tournaments monthly and boasts the trust of over 90 million registered users across Asia, Europe, and North America.
Responsibilities:
- Ensure the platform’s architecture and design consistently uphold standards of scalability, availability, reliability, and maintainability.
- Establish clear career paths for team members and nurture their growth through regular mentoring sessions. Conduct routine performance evaluations and foster a culture of open feedback exchange.
- Assume the roles of both technical architect and hands-on technical manager for a team of engineers.
- Take ownership of end-to-end availability and performance of features, driving swift product innovation while ensuring service reliability.
- Collaborate closely with various stakeholders such as Program Managers, Product Managers, the Reliability and Continuity Engineering (RCE) team, and the QE team to estimate and plan projects within an agile environment.
- Set up and advocate for engineering and development best practices. Lead by example and actively promote their adoption.
- Manage and drive the execution of the tech backlog for non-functional requirements essential to maintaining platform resilience.
- Assist in release planning and prioritization based on technical feasibility and engineering constraints.
- Demonstrate a relentless drive to explore new avenues for improving architecture, design, and ensuring timely delivery and high quality.
Requirements:
- Profound understanding of highly distributed, low-latency, and high-throughput systems.
- Familiarity with globally distributed disaster-recovery enabled architectures.
- Strong grasp of cloud engineering, preferably AWS.
- Expertise in microservices stack and principles (12-factor app) and related network architectures.
- Experience with best practices for both REST (SpringBoot, jHipster, Dropwizard) and non-REST (gRPC) communication.
- Exceptional code review skills and proficient programming abilities, particularly in Node.js/Java.
- Exposure to various data storage and retrieval strategies, including relational, non-relational, document, graph, object, and timeseries databases.
- Solid understanding of CAP theorem, transactional consistency, distributed transactions, and eventual consistency.
- Knowledge of essential distributed design patterns such as backpressure, bulkhead, circuit breaker, event sourcing, CQRS, and event-driven architecture.
- Good understanding of mid-tier caching strategies.
- Familiarity with containerization, orchestration, and service mesh frameworks like Kubernetes, Mesos, Istio, etc.
- Proficiency in API design best practices.
- Advocate for engineering excellence through initiatives such as code reviews, unit tests, and documentation of system design and architecture.
- Hold a degree in Computer Science or equivalent engineering discipline from a reputable institution.