This job posting covers horong for both Senior Software Engineer and Software Engineer positions.
Qualifications
Experience developing production software
Experience with one or more OOP languages including but not limited to: Java, C/C++,C#, JavaScript, Java, Python.
Good system design, algorithmic skills, good knowledge of data structures
Strong problem solving and debugging skills
Solid understanding of testing principles and high-quality software
Excellent collaboration skills and critical thinking
Good communication skills both verbal and written
Nice to have
Degree in Computer Science, Mathematics, Engineering or related fields
Experience designing, building and running large scale and highly available cloud services or distributed systems
General database knowledge and experience of working with data at high scale
Troubleshooting skills across network, application, caching, queuing, load-balancing storage and distributed services layers
Passion for high-availability, automation, performance and building highly available distributed systems at scale
Practice of modern software engineering, including coding standards, code reviews, source control management, build processes, testing, and releasing
Responsibilities
Collaborates with stakeholders to understand user needs and define features for different scenarios.
Designs and builds distributed services that are secure, scalable, reliable, and performant, using best practices and technologies.
Writes and improves code that is high-quality, performant, resilient, and maintainable, using various tools and techniques.
Defines and measures customer success metrics and engineering goals, and ensures that the services meet and exceed them.
Drives cross-product features and project plans, leveraging subject-matter expertise and partnering with appropriate stakeholders, such as project managers and technical leaders.
Integrates with other teams to create seamless and consistent end-to-end experiences for customers while mentoring others along the way.
Identifies and resolves performance and reliability issues across hardware and software boundaries, using performance and profiling tools.