The Developer I is responsible for developing code for new or existing systems based on direction and/or specifications provided by the Product Owner, Development Manager, Director of Software Development, or Chief Technology Officer. Job duties may also include researching new technologies to determine if they can be applied to OverDrive products and projects.
Work on small projects independently; contribute to medium-sized projects with guidance from more senior developers; projects may impact immediate or cross-functional teams.
Participate in all aspects of the software life cycle, including analysis, design, development, testing, documentation, and support.
Assist in reviewing the scope, complexity, and effort to deliver project tasks.
Assist team leads with breaking larger tasks into more manageable steps.
Develop explicit and thorough documentation of all source code and resources.
Research new technologies and recommend appropriate utilization for OverDrive projects.
Suggest improvements to current processes.
Develop a deep understanding of the customer’s perspective.
Write high-quality code; find opportunities for code reuse, loose coupling, and reduced complexity as appropriate.
Participate in code reviews.
Provide production support for core systems with assistance from more senior developers.
Leverage multiple technologies and coordination of requests across service boundaries.
1 - 5 years of related experience.
Familiar with advanced features of at least one high level language and able to be productive in other languages.
Skilled to create and maintain SQL and / or databases as required to support development projects.
Capable of designing and integrating with web based architecture including knowledge of REST, SOAP and other web service technologies.
Thorough understanding of object oriented analysis and design.
Adept in the concepts and workflow of software development and quality assurance, including build and deployment processes, toolset, use of appropriate language, relational database organization and implementation, etc.
At least one major related skill outside of programming (i.e., monitoring, performance optimization, documentation, integration testing, visual design, etc.).
Ability to communicate effectively with both technical and non-technical audiences.
Ability to prioritize and perform multiple tasks in time-critical situations.
Our Tech Stack:
Most things we build use:
NET MVC / Web API
Common supporting infrastructure includes:
Centralized logging with Elasticsearch and Kibana
Messaging with RabbitMQ
Application monitoring with New Relic
For source control and pull requests, teams choose between:
We use automated build and deploy, and encourage unit testing.
Our code runs in Microsoft Azure and Amazon AWS, as well as in our own data center.
We’ve adopted other data stores to deal with issues of scale and performance, and to better fit our evolving data models. For example:
Azure Table Storage
We also have applications that make heavy use of the following technologies:
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, apply below 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.