The Connected Vehicle Services division of SiriusXM builds and delivers software-based services on our connected car platform. The software we develop not only adds convenience to the daily life of our subscribers, but safety and security as well; when the worst happens, our software helps to save lives.
We are in the early days of driving off the monolithic server beasts in favor of high quality, at-scale microservices in a cloud environment. Working on our team will give you the opportunity to craft software in an agile, team-focused environment while learning and exercising a multitude of skills. We focus on keeping developers happy and productive; fostering a positive atmosphere to help you make the right decisions and to learn and grow both professionally and personally.
We are looking for a motivated and passionate software craftsperson to help us create, extend, and maintain the core of our connected car software platform as we expand past our current offerings in services related to safety, security and convenience in order to take our business to the next level.
This position requires that the individual be capable of playing a pivotal role; providing technical guidance and direction to the core platform engineering team. This individual will also work closely with all levels of management across the various organizations, researching new technologies and making technical recommendations to help ensure that SiriusXM Connected Vehicles continues to be a thought leader within our industry.
While this individual must be able to think strategically to help establish the short and long term technical direction of the company, they must also be very hands-on and have the ability to develop or analyze code while filling the role of integration specialist.
Duties and Responsibilities:
- Monitor and research software trends and best practices; recommend and drive implementation methodology of such practices across the connected vehicle business line.
- Work with senior IT management to develop IT strategy and implementation plans.
- Improve existing process within the IT organization.
- Communicate succinctly with other groups and work with executives in prioritizing work for the development team.
- Help resolve complex problems.
- Review and improve code.
- Define detailed specifications, clarifying ambiguity in requirements.
- Provide mentorship for engineers in the design and implementation of complex solutions.
- Design, develop and consume integration interfaces using enterprise Java EE technologies like JAX-WS, XML, XSD, JAX-RS, JSON, JAXB and JMS.
- Provide technical solutions that follow best practices, are reliable, are easily maintainable and are scalable under sustained load.
- Run load tests and perform application tuning.
- Work in a constantly changing environment and support short releases.
- Be a self-starter, self-motivated and self-directed.
- Set and meet deliverable deadlines and estimates.
- Troubleshoot and enhance code that was written by other team members.
- Define, design and develop the architecture for the solution.
- Enable technical innovation throughout the organization.
- Analyze, design, develop, validate, and deliver the product features and stories for the agile team.
- Support new capabilities through early adopter customer use and overcome their limitations.
- Effectively transition applications and technologies to other technical and operational groups.
- Act as a bridge between the architecture and development teams.
- Facilitate complex problem resolution.
- Mentor other engineers, but no direct supervision.
- Bachelor's degree in engineering, computer science, information systems, or other technically related field, or equivalent, relevant experience.
- 10+ years of experience in a software development position; 3+ years building RESTful microservices in a cloud environment.
- Expert technical knowledge of building mission critical/highly available service-oriented software.
- Strong technical knowledge of building cloud-based software-as-a-service.
Requirements and General Skills:
- Be a subject matter expert and integration specialist matter expert in one or more of the following areas: Telematics, web and mobile applications, ESB technologies and implementations, Wireless Account Management, CRM or Financial systems.
- Skilled communicator both in writing and verbally.
- Acts with professionalism both in person and when working on the phone with partners.
- Excellent time management skills, with the ability to prioritize and work under shifting deadlines with potentially ambiguous or nebulous requirements in a fast-paced environment.
- Proven ability to lead and work within geographically distributed development and engineering teams.
- Excellent problem-solving skills, ability to decompose and simplify complex problems so that they can be solved easily.
- Ability to quickly assess multifaceted problems and complex situations and recognize patterns to identify and resolve the root cause.
- Mentoring skills and competencies, with an ability to transfer knowledge to junior and senior members of engineering teams.
- Ability to analyze new technologies, emerging standards and market trends, and understand how they affect products today and in the future.
- Proven ability to learn new technologies, often very quickly.
- A proven history of technical and organizational leadership.
- Occasional local and regional travel.
- Must have legal right to work in the U.S.
- Expert technical knowledge building mission critical/highly available service using current generation toolkits such as Spring, Dropwizard, or RESTEasy.
- Developing and designing web services through APIs using REST, HTTP, JSON/JSONP, etc.
- Expert technical understanding of Java including internals, libraries, and performance tuning.
- Expert technical understanding of test and behavior driven development using JUnit, Cucumber, Mockito or other frameworks.
- Expert technical understanding of the principles and practices of service-oriented software and large scale distributed systems.
- Expert technical understanding of SQL-based or NoSQL databases using JDBC, JPA or similar frameworks; strong technical skills with regard to stored procedures and RDBMS optimization and performance tuning.
- Expert knowledge of reactive programing and event-driven systems.
- Expert technical understanding ESBs.
- Expert technical understanding of message-oriented middleware with hands on experience in two or more of the following: JMS, AMPQ, MQTT.
- Expert technical understanding of cloud-based systems -- covering infrastructure, platform and software as services.
- Expert technical understanding of HTTP and transactional session caching theory and practice.
- Expert understanding of the concepts of pragmatic, agile and clean/lean software development philosophies.
- Code craftsmanship; rigor in high code quality, automated testing (JUnit, Mockito, Cucumber), andagileengineering and testing best practices.
- Expert technical understanding of modern software patterns and anti-patterns.
- Expert technical understanding of working within a Git/Gitflow-based multi-branched software environment.
- Expert with Java development tooling: Jenkins, Maven and/or Gradle.
- Ability to review code and work with engineers to resolve issues within the code.
- Expert technical understanding of parallelism and concurrency.
- Expert technical understanding of algorithms, software patterns and anti-patterns.
- Expert technical understanding of SOA, SOAP-WS and REST-WS.
- Experience working in an Agile software development organization; Scrum and/or Kanban.
- Recent work experience with one or more of the following: Spring, DropWizard, Jersey, Hibernate, JPA, JDBI, and Liquibase.
- Expert technical knowledge of Java and Node.js; experience designing and implemented APIs using Java and Node.js.