The Developer builds and maintains web sites using the Drupal development platform. The Developer is involved in all aspects of the software development lifecycle, including designing, building, testing, implementing and supporting applications using programming languages and development tools.
In addition to the duties described for the Level 2 will:
Research and promote the adoption of application development best practices that could benefit Duke.
Develop automated solutions to inefficient or repetitive application development tasks.
Contribute to the development of several products within a given technical domain.
Identify frameworks and tools that are best suited for the task at hand.
Write technical specifications, given functional requirements.
Refactor code to share methods and plug-ins wherever possible.
Research and promote the adoption of automated testing tools and techniques that could benefit Duke.
Diagnose problems with existing application code and develop technical solutions that resolve the problems.
Assist with in-depth analysis of technical problems, suggest short- term and long-term resolutions.
Required Qualifications at this Level
Bachelor's degree in a related field or four years of equivalent technical experience required working in web or web-related technologies.
None required. Preferred certification in development technologies, as appropriate for the position.
Experience: Level 2 - Two years of directly related experience is required working in the Drupal platform.
Basic understanding of underlying technologies that support the application (e.g. MySQL, Apache, Unix).
Demonstrated ability to navigate the development environment in a variety of ways (e.g., IDE, command line).
Familiarity with a specific framework.
Familiarity with one high-level programming language (e.g., Ruby, Visual Basic, C#, PHP, Python).
Familiarity with web development languages (e.g. HTML, PHP, CSS)
Basic understanding of language-specific data structures (e.g., linked lists, dictionaries, classes, and objects).
Ability to leverage standard algorithms and patterns when writing code.
Adherence to agreed-upon coding and naming conventions.
Basic understanding of database concepts, such as normalization, transactions, and simply select statements.
Ability to write code according to given requirements.
Ability to adequately document specific functions, methods, and classes.
Ability to appropriately diagnose and troubleshoot code and tools.
Ability to communicate effectively with peers.
Ability to complete tasks as assigned with close oversight.
In addition to the KSAs described for the Level 2 will demonstrate:
Comprehensive understanding of underlying technologies that support the application (e.g. MySQL, Apache, Unix, OpenShift, Docker Containers).
Comprehensive understanding of the deployment process and methodologies. Extensive knowledge of one or more multiple frameworks and high-level programming languages.
Working knowledge of source control system (e.g., VSS, TFS, GIT, Subversion).
Ability to write software that optimizes leverage of the underlying technologies (e.g., Phusion, TCP, sockets).
Comprehensive understanding of common algorithms and patterns and the ability to apply them appropriately.
Strict adherence to agreed-upon coding standards.
Demonstrated proficiency in refactoring code and developing reusable functions/objects.
Ability to design systems that span multiple technologies/platforms.
Ability to write technical documentation describing system architecture, including functional and technical specifications.
Demonstrated ability to coach more junior members of the team in a constructive manner.
Ability to complete tasks with minimal oversight that is normal in scope.
Able to direct and oversee the work of Level 2 Developers from a technical perspective to maintain project timelines and deliverables.