Job Description
Technologies We Use:Front-end: TypeScript, React, JavaScript, Tailwind CSS, Node.js/npm
Back-end: Python, Django, SQLAlchemy, Celery, REST/OpenAPI
Data and services: MariaDB/MySQL, Redis
Build and deployment: Docker, Linux, Webpack, GitHub Actions, Nginx, Gunicorn
Testing and development: Pytest, Jest, automated CI/CD, code review
Job Description
70%:
Contribute to the development and extension of the Specify 7 web platform by applying sound software engineering practices in design, implementation, documentation, and automated testing to deliver reliable, maintainable software with a global impact.
Develop, test, debug, document, and maintain software with an appropriate level of independence, seeking guidance when needed and taking responsibility for understanding and resolving assigned technical problems.
Investigate software issues by reading existing code and documentation, reproducing problems, using appropriate development and debugging tools, and researching solutions before requesting assistance.
Write and maintain automated tests and use testing, code review, and continuous integration practices to help ensure the reliability and maintainability of the software.
Participate in code reviews by providing and responding to constructive technical feedback and applying established coding and architectural standards.
15%:
Interact with team members to discuss software issues and features, and determine an appropriate technical approach based on requirements, existing code, documentation, and established development practices.
Participate in technical and architectural discussions, contribute to decisions regarding implementation approaches, security, standards, and software design, and help improve development tools, workflows, testing practices, and DevOps processes. Research unfamiliar technical questions and use existing code, documentation, and appropriate development tools to independently investigate and resolve problems before seeking assistance when needed.
15%:
Work with team members to understand requirements, investigate technical problems, evaluate implementation options, and contribute to solutions that are general, flexible, maintainable, and scalable. Develop a growing understanding of the Specify platform and its architecture while taking increasing ownership of assigned work.
Learn and work effectively within an existing, complex software system, gradually developing a deeper understanding of the Specify platform and its technical architecture.
Required Qualifications
Bachelor’s degree in Computer Science, Biology, or closely related field with 2 years of professional software development experience OR a Master’s degree in a related field plus demonstrated software development experience.
Demonstrated understanding of fundamental software engineering principles, including software design, implementation, debugging, testing, and version control, as evidenced by application materials.
Previous experience with Python and JavaScript or TypeScript, with an understanding of fundamental programming concepts, as evidenced by application materials.
Demonstrated experience learning independently, researching unfamiliar technical problems, and applying new knowledge to assigned work as evidenced by application materials.
Fundamental understanding of how web applications work, as evidenced by application materials.
Successful collaborative work in a team or group environment as evidenced by application materials.
Excellent verbal and written communications skills as evidenced by application materials and previous work.


