Our platform includes a number of technologies, including Java, Kafka, AVRO, and Node.js as. Candidates are expected to provide impactful technical leadership, both in design and through mentoring other team members.
This is a hands on position, where the candidate is expected to work independently and develop robust, tested and highly optimized code and to participate in code reviews and architectural design. There is also an operations aspect where the candidate is expected to help troubleshoot production issues and to share in a pager duty rotation.
So what is it going to take for you to be part of this team of world-class engineers?
Ideally you will be that expert who first and foremost - is a solid coder, debugger and lives and breathes building quality systems and enhancing quality so that systems always work! You should be unafraid to get into complex code, debug complex interactions and systems and quickly figure out why they're not working.
As an MTS Software Engineer, a big onus is on enabling the team to succeed on their projects.
- You have a keen design sense, and should be able to guide others to adopt elegant designs before starting to code. You should also be a Code Reviewer extraordinaire and be willing to give detailed guidance to improve the code that the team produces.
- You are someone that likes learning new tech and working with multiple team members in order to understand and improve first, but then later develop standard methodologies as well as up level others and their software.
- You will also partner with internal customers to provide best practices and patterns to help them effectively integrate with our infrastructure.
- You will share and develop patterns of writing great quality software and help others on the team do the same.
- Gather requirements and develop great design documents
- Drive, design and build complex software systems from scratch
- Define the interfaces needed to integrate with partner teams like Mobile Native Applications, Web Applications, and Backend Services
- Implement and automate Continuous Integration and Continuous Delivery
- Work multi-functionally with various teams at eBay including: product management, QA/QE, various product lines, and/or business units to drive forward results
- Demonstrate a passion for developing well architected, elegant, web and/or mobile apps
- Experience with Agile Development, SCRUM, or Extreme Programming methodologies
- Collaborates with engineers and senior architects on Design for Testability, Quality Frameworks, DevOps and Data driven designs and engineering patterns and behaviors
- Explores, evaluates and develops new advances in diagnostic tools and methods, and build high-quality tools to debug and diagnose system failures, perform failure analysis and effectively identify root causes of alerts and failures.
- Demonstrates ability to turn innovative ideas into new and improved diagnostic tools and methodologies
- Proven expertise in building platforms that support scale, security, availability, performance and automation.
- Hands-on experience in building a microservices based architecture and platform developed and deployed at scale.
- Strong track record of engineering excellence including continuous delivery of high quality, massively scaled, innovative software.
- Expertise in test-driven development and establishing a DevOps practice are a plus.
- Domain expertise in one or more e-commerce or cloud infrastructure services.
- Well understood distributed and ecommerce processing systems, operating systems, system debuggers, microservice architectures and applications development skills
- Experience and knowledge of IC functional test pattern generation and debugging
- Exceptional Linux, Java, coding and scripting skills
- Excellent in collaborative environment with the ability to lead a development team.
- Strong skills for verbal & written communication targeting technical and non-technical audiences
- Flexible, adaptable, and able to autonomously manage multiple tasks in a dynamic, fast-paced, iterative development environment with short turnaround times.
- Self-motivated, passionate about technology, and strong drive for results and continual improvement.
- Standout colleague - you work well independently and in multi-group cross-discipline environment.
- BS/MS in CS with 7-10 or more years in software engineering, design and architecture.
- 6+ years minimum of real-world coding, debugging and diagnostics experience in high scale distributed microservice architectures
- Experience with code analysis (dissecting features, stepping through program execution with a debugger, examining system internals)
- Experience at analyzing and mining very large data sets by using existing utilities and writing new tools if needed
- Programming & Coding experience. Java strongly preferred
- Experience with at least one high scale data storage/database system (preferably experience with relational and non-relational databases