Job Description
SOFTWARE ENGINEER
About the Role:
Engineers in the Payments team are dedicated to implementing strategic
billing and payment operations to support hundreds of transactions per minute
globally. Our system supports hundreds of different payment methods globally,
has state-of-the-art integration capabilities with top payment vendors (Stripe,
PayPal, Adyen), is full-stack responsible for all the purchase flow, scaled to
payout thousands of instructors monthly, and is constantly refactored to lead
the way. The team plays a mission-critical role in Udemy to ensure all the
monetization capabilities are highly resilient and always provide a
high-quality experience.
Here's what you'll be doing:
. You will work in a highly collaborative, cross-functional environment,
which requires collaboration with product managers, designers, and engineers to
identify opportunities and implement solutions.
. You will be actively involved in every part of the software development
cycle, such as designing, coding, reviewing, and test writing.
. You will relentlessly refactor existing systems to make them more robust,
maintainable, and scalable.
. You will use best software development practices and processes and are
willing to spread this knowledge/experience to the team.
. You'll contribute to a team culture that values openness, quality,
robustness, and scalability while fostering innovation.
Basic requirements:
. Have Bachelors or Masters in Computer Science or equivalent discipline.
. Have 3+ years of professional software development experience.
. Are team-oriented, friendly, reliable, humble, receptive to feedback, and
gain satisfaction from teamwork.
. Are a great learner, and always seek improvement points.
. Have a deep sense of quality, and sharp engineering skills with strong
Computer Science fundamentals in data structures, algorithms, and software
design abilities, including object-oriented design patterns.
. Are self-driven, own your services by all dimensions, and intrinsically
have a desire to get things done
. Have experience in developing web applications.
Nice to have:
. Experience with at least one modern language such as Python, Java, Kotlin
. Have a basic understanding of software design of large-scale, caching,
resiliency, databases, service-oriented architecture, object-oriented design,
and distributed programming.
. Experience with scalable data processing techniques such as Kafka, Spark,
ElasticSearch, Celery
. Experience with SQL and NoSQL Databases
. Testing methods and practices.