Software Developer/ Engineer/ Architect

Platform Senior Staff Software Engineer

Key Responsibilities:

  • Design, develop, test, and release libraries, components, and tools for creating and maintaining best in class server-side software at Udemy.
  • Identify and evaluate new technologies that improve performance, maintainability and robustness of our backend software.
  • Plan, organize, and complete work within agile sprints.  Communicate effectively on progress towards meeting expectations.
  • Contribute in code reviews, design discussions, and develop features and solutions that scale.
  • Serve as a technical lead for various projects/tasks as needed.
  • Use best software development practices and processes to coach and mentor junior engineers to become proficient developers.
  • Evaluate and introduce relevant new technologies where appropriate.
  • Contribute to a team culture that values openness, inclusiveness, quality, robustness, and scalability while fostering innovation.

Preferred but not required:

  • Familiarity with containerization technologies (docker, lxc, etc.).
  • Familiarity with container orchestration technologies (Kubernetes, Marathon, Nomad, etc.).
  • Experience working with cloud computing services providers (AWS, Google cloud platform, Azure, etc.).
  • Experience with Spring Boot Microservices
  • Familiarity with monitoring and alerting tools (DataDog, HoneyComb etc)

Qualifications:

  • Minimum six (6) years of experience as a backend software engineer.
  • Ability to learn and work with existing code bases.
  • Strong technical communication skills.
  • Knowledge of Object Oriented software design patterns and computer science fundamentals (e.g. data structures, algorithms) Web application development using modern frameworks.
  • Understanding of Web Framework ORMs (e.g. Django, Rails, etc.).
  • Minimum 2 years of experience with Python or other dynamic languages such as Ruby, PHP, etc.
  • Minimum 2 years of experience with Java, Kotlin or other strongly typed language.
  • Experience with relational DB (e.g. MySQL) including development of complex SQL queries.
  • Experience with microservice development and communications using gRPC.
  • Experience developing software that runs on Linux and/or Unix servers.
  • Experience working with Real-time messaging and NoSQL infrastructures: Redis, RabbitMQ, Celery, Kafka, etc.
  • Experience with Testing methods, including unit and integration tests.