Home » Careers » Software Developer I (Platform Engineer I)

The (Senior) Platform Engineer’s responsibilities include a full stack engineer who drives efficiency in the application development and deployment tools and processes. This role will primarily be focused on the health and performance of the systems they support.  They will build out and maintain automated CI systems and monitoring.  The will participate in troubleshooting across the entire stack – hardware, operating system, application, and network.  The platform engineer may also assist the teams they support in systems development in both new project work and bug fixing.  A Platform Engineer may also develop shared libraries to help development teams with common tasks.

Candidates should be self-motivated and collaborative IT professionals with a strong background in software development, systems administration and IT automation.

Responsibilities:

  • Work on small projects or individual tasks independently, with guidance from more senior Developers or Platform Engineers.
  • Expected to be a part of the 24 hour on-call rotation
  • Conducting root cause analysis for incidents
  • Participate in code reviews for the development teams they support
  • Developing code libraries for common patters like circuit breaker, bulkhead, and retry patterns.
  • Monitoring load and managing either manually or through code how our cloud systems scale up and down.
  • Automation and scripting of our cloud server setups.
  • Error log analysis
  • Writing automated monitoring and testing applications.
  • Ability to understand and modify our production code base (C#, Ruby, Javascript) for the team they are supporting.
  • Analyzing the health of our systems utilizing APM tools.
  • Troubleshooting issues across the entire stack – hardware, operating system, application, and network.
  • Scripting, configuration, and or coding our continuous delivery solutions.

 Requirements:

  • Bachelor degree in Computer Science or related field, or equivalent experience.
  • 4 – 7 years of related experience in a technical environment.
  • Basic understanding of the applicable target or equivalent technologies (i.e. C#, JavaScript, JSON, XML, ASP.NET MVC, etc.).
  • Familiar with advanced features of at least one high level language and able to be productive in other languages.
  • Able to do advance diagnostics.
  • Administrator level understanding of the target OS they will support (Windows, Linux, etc).
  • Experience troubleshooting throughout the full stack – hardware, software, OS, and network issues.
  • Experience developing, deploying, and supporting applications and services at scale.
  • Experience with running, scaling, tuning, and debugging production SQL databases.
  • Experience with distributed data storage technologies like MongoDB, Apache Kafka, and Azure CosmosDB.
  • Experience with configuration and orchestration management tools such as Cheff, Ansible, Terraform, Consul, Jenkins, and Docker.
  • Experience developing, deploying, and supporting highly available systems at scale.
  • Familiarity with Javascript and CSS.

 What’s Next:

As you’ve probably guessed, OverDrive is a place that values individuality and variety. We don’t want you to be like everyone else, we don’t even want you to be like us—we want you to be like you! So, if you’re interested in joining the OverDrive team, email us your resume at jobs@overdrive.com and tell us what inspires you about OverDrive and why you think you are perfect for our team.

 

OverDrive values diversity and is proud to be an equal opportunity employer.