Online Judge Systems are designed for the reliable evaluation of source code submitted by users. The system queues the code, compiles and tests them typically in a FIFO manner. However, we found that the cloud-native design of an online judge system is still a pending issue. Many existing open-source online judge systems are hard to deploy and scale, due to the tight coupling with some specific environments and the vague boundaries in their system architectures. In addition, these online judge systems hardly provide the support of resource scheduling as they are usually more concerned about the homogeneity of the resources. In this research, we design and develop a cloud-native online judge system that is able to (1) be built and run stably in dynamic environments (2) scale vertically and horizontally to the workload (3) do resource scheduling over CPUs and GPUs. Furthermore, this research also analyzes the consequence of adopting some modernly advocated design approaches and technologies; these are: microservice architecture design, event-driven architecture, domain-driven design, and containerization technologies such as Docker and Kubernetes.