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.