LINE demands highly scalable and reliable infrastructure that controls applications deployed on numerous amount of machines due to its scale of growing business. We have been using our in-house deployment tool which takes classic and typical approach however, we found it hard to provide slick delivery experience with such numerous amount of machines with it. The mission we Delivery Infrastructure Team have is ‘Take leadership among company-wide deployment systems to provide innovated and WOW! deployment ecosystem for all of LINE engineers’. You will be a part of our team who will design, develop, and manage such deployment tool stack that the world is still missing.
Our current deployment tool stack consists of some components as follows. You will need to enhance some of them or introduce new components when necessary:
- Control plane to distribute, restart, and rollback applications to be deployed on each servers.
- Build executor to build applications going to be deployed that needs to handle tremendous amount of build jobs fast.
- UI that LINE engineers use for their deployment jobs on their web browser.
- Inventory to manage information about application servers that use our deployment tool stack. HTTP API for all of above functionality.
- Write web based deploy tools as well as server management tool to provide great delivery experiences to all LINE developers.
- Apply best practices around DevOps technologies and make them accessible to all LINE developers by introducing it to our deployment tool stack.
- Collaborate developers outside of the team for problems that our deployment tool stack can solve for them.
- Code review for colleagues in the team to maintain good code quality.
- Design microservice architecture for the deployment tool stack that scales and fit to extensive usage from all of LINE’s services.
- Growth mindset and a desire to learn, teach, and improve skills.
- Belief in cultures for developing good software such as frequent F2F communication, sincere and detail code review, respecting others.
- Able to find important issue and solve it as a person who has an ownership of the issue.
- Business level English
- Proficiency in Linux and shell scripting
- Proficiency in computer science such basic algorithms, data structures, and concurrent programming.
- Proficiency in DevOps, such as experience to use deploy tool, CI/CD tool, container technologies such as Docker / Kubernetes.
- Proficiency in both JVM languages(such as Java, Kotlin) and scripting languages (such as Python, Ruby, ECMAScript).
Nice to haves
These aren’t required, but be sure to mention them in your application if you have them.
- Experience for develop Spring Application.
- Experience for administrative operation on production Linux servers (both manual operation / using automation tools such as Ansible).
- Proficiency in RDBMS (such as MySQL) and NoSQL (such as Redis, Elasticsearch, MongoDB).
- Experience for design microservice architecture.
- Experience for coach team members as a senior engineer.
- Proficiency in performance tuning (such as good understanding about index in RDBMS). Business level Japanese or Korean