Sr Software Development Engineer
Workday India Private Limited
Job Description
About the Role Our Senior Software Engineers deliver core features and services while collaborating with multiple partners and mentoring team members. We use mainly Java and Scala, and are pursuing Senior Software Engineers who have deep experience in multi-threading, concurrency, and solving exciting distributed systems design problems! You will be involved in all aspects of software development, including designing, coding, testing, deploying, while providing support for our customer-facing software solutions. Key responsibilities Design, develop and deliver enterprise grade solutions with robust unit tests and metrics Maintain continuous improvement within the team to ensure a high quality service Delivering quality features on-time and on-budget and implementing towards project plans and delivery commitments Handling the day-to-day development activities including participating in designs, design review, code review, and implementation Mentor and learn from other team members through pairing, code reviews, knowledge shares, hackathons, etc. Collaborate with multi-functional teams to drive technical initiatives. About You Basic Qualifications(Required) Bachelorβs degree in Computer Science or related fields (or equivalent experience) 8+ years experience in software development engineering 4+ years experience designing, developing, and deploying distributed backend systems Fluency in Java or Scala, common design patterns with good grasp of distributed systems and ability to communicate design ideas effectively Expertise in dealing with horizontal scale, high availability, concurrency, profiling, deployment, upgrade/migration, production support and other SaaS enterprise software issues Proficient in major development tools and processes, such as source control, requirement spec, design and design review, unit test, system test, performance test, etc. Other Qualifications: Experience collaborating with teammates to design, maintain and improve sophisticated object-oriented software following clean code standard methodology Understanding of Agile methodologies Demonstrated ability in Algorithmic Thinking, including design of efficient and scalable solutions for specific distributed backend database systems Solid experience with API Development, including understanding of API protocols like REST or gRPC and experience in designing and building distributed APIs Good understanding of Code Testing methodologies and experience with testing tools and frameworks in a distributed environment. Strong understanding of Distributed Systems Software principles, including data integrity for distributed operations and ACID consistency models and fault tolerance mechanisms Working knowledge of High Availability strategies like CAP Theorem and their implementation in distributed systems Experience with Large Scale Data Processing technologies and frameworks such as Spark or Kafka or Trino within a distributed architecture. Good understanding of Large Scale Systems design principles, and Object-Oriented Design (OOD) principles and their application in building modular and maintainable distributed components.
Basic understanding of System Security principles and best practices relevant to distributed environments, including specific security aspects like authentication or authorization and LDAP protocol