The Software Developer’s responsibilities include 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 productive in other languages.
- Skilled to create and maintain SQL and / or databases as required to support 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:
- Languages – C#, Ruby
- Web Frameworks – ASP.Net MVC, ASP.Net Web API, Ruby on Rails
- Cloud platforms – Microsoft Azure, Amazon AWS
- SQL databases – SQL Server
- NoSQL databases – MongoDB, RavenDB, Azure Table Storage
- Caching – Redis, Memcached
- Search technologies – ElasticSearch, Logstash, Kibana, Solr, Lucene
- Source Control – Git, GitHub, Mercurial, Bitbucket
- Message queuing – RabbitMQ, Azure Service Bus, Amazon SQS, Azure Queues, MSMQ
- Server automation tools – Chef, Puppet, Vagrant
- Continuous Integration – TeamCity
- Mocking frameworks – RhinoMocks, Moq
- Testing frameworks – NUnit, AutoFixture
- IoC Containers – Ninject
- ORM tools – Dapper, Simple.Data
- Object mappers – Automapper
- Productivity Tools – Resharper
- Logging frameworks – Logstash, Kibana, NLog
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 firstname.lastname@example.org 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.