Software Engineer, Media
Full-time
🤖 What you will do
- Design, develop, test, and maintain backend services and RESTful APIs using Java to support applications serving millions of daily active users.
- Build scalable, reliable, and maintainable backend services to support high-traffic applications with high throughput and low latency requirements.
- Design and optimize database queries, data models, and caching strategies using SQL, NoSQL to improve system performance.
- Monitor system performance, identify bottlenecks, troubleshoot production issues, and improve service stability and availability.
- Work with microservices, RPC frameworks, message queues, and distributed caching systems to build reliable and efficient backend services.
- Write clean, maintainable, and well-tested code. Participate in code reviews and follow engineering best practices.
- Work with Linux-based environments, monitoring tools, and deployment pipelines to support development, deployment, and operation of backend services.
- Collaborate with Product Owner, Frontend/Mobile Engineers, and other teams to deliver features that meet business and technical requirements.
👾 What you will need
Qualifications
- Bachelor's degree in Computer Science, Software Engineering, Information Technology, or a related field, or equivalent practical experience.
- At least 2 years of professional experience in backend software development.
Technical Skills
- Good proficiency in Java, object-oriented programming, common design patterns, exception handling, collections, and Java concurrency fundamentals.
- Solid understanding of common data structures, algorithms, time and space complexity, and problem-solving techniques.
- Hands-on experience with SQL databases such as MySQL or PostgreSQL. Understanding of indexing, transactions, query optimization, and database design.
- Experience with Redis or other caching systems. Basic understanding of NoSQL databases and their use cases.
- Experience developing RESTful APIs and understanding HTTP, TCP/IP, authentication, and common networking concepts.
- Understanding of microservices, service-to-service communication, distributed systems, and basic system design principles.
Nice to Have
- Experience working with high-traffic systems serving millions of daily active users.
- Familiarity with RPC frameworks such as gRPC or Thrift.
- Experience with message brokers such as Kafka or RabbitMQ.
- Understanding of Docker, CI/CD pipelines, and monitoring tools.
- Experience analyzing application performance, memory usage, thread contention, and database bottlenecks.