Principal Software Engineer
Principal Software Engineer
Toronto, Ontario, Canada - Permanent
Do you want to make an impact on the world’s largest e-commerce website? Are you interested in building performance-efficient, high-volume and highly scalable distributed systems? Our client has a place for you!
The role is on their Product, Item and Transactions Experience Team. The team owns the Item details pages, Product pages, Transaction flows - such as Auctions, Best offers flows, SEO optimized landing experiences, and all their services. In other words, this team is responsible for the core systems and applications. They drive billions of dollars in revenue via 100’s of millions of page views delivered daily across the globe, across all devices & browsers. Performance, Accuracy, real-time systems (e.g. winning bid), Scalability and availability are paramount. Team and experience have a great financial impact and customer impact and the role is highly visible in the organization. In addition, being the core experience, it has to delight the diverse customer base across the world. They are a data-driven agile team. Developers have the liberty to come up with new feature ideas and work closely with product managers & user experience designers to make an impact on millions of users in the community. They ship often, get immediate user feedback and use experimentation to make decisions. Developers have end-to-end product ownership from design to implementation. They are seeking a highly motivated, talented and passionate application architect to build and innovate on backend services, applications and science-based systems to power commerce experiences, and lead junior engineers. Join them and invent the next generation of eCommerce.
They are looking for a strong Senior MTS/Principal Software Engineer to work in the product development team, who is responsible for handling the Buyer experience marketplace. As a self-motivated and enthusiastic member of their team, you will work with extremely hardworking peers in a fun environment. You will work in an agile environment with a focus on problem-solving and engineering perfection.
- Architect solutions using your strong background in distributed systems, and large-scale database systems
- Research, analyze, design, develop and test the solutions that are appropriate for the business and technology strategies
- Lead end to end technical designs and teams
- Participate in design discussions, code reviews, and project-related team meetings
- Work with other engineers, Architects, Product Management, QA, and Operations teams to develop innovative solutions that meet business needs with respect to functionality, performance, scalability, reliability, realistic implementation schedules and consistency to development principles and product goals
- Develop technical & domain expertise and apply to solving product challenges
Job Requirements:- 14+ years of work experience in software design and application development
- Software design and development experience, a solid foundation in computer science with strong competencies in data structures, algorithms, and software design
- Excellent knowledge in practicing OOAD, architectural and design patterns, open-source platforms, frameworks, technologies and software engineering methodologies
- Hands-on experience in Java/J2EE, XML, Web technologies, Web/REST Services, Design Patterns, OOA/D, Oracle/MongoDB (or other NoSQL databases)
- Experience in Node.JS, CubeJs, Event Source, Web Sockets, HTML5, CSS3, RWD, JQuery is desirable for a full-stack engineer
- Experience with big data solutions such as Hadoop, MapReduce, Hive, Pig, Kafka, Storm etc. is a major plus
- Experience in using source control systems such as Git, issue tracking systems like JIRA
- Experience with agile development methodologies in an iterative development environment
- Demonstrated ability to understand the business and ability to contribute to technology direction that gives to measurable business improvements
- Excellent decision-making, communication and collaboration skills