At a Glance
- Tasks: Join us to build a game-changing Assessment Platform for environmental impact.
- Company: Global Canopy, a not-for-profit focused on transparency and accountability in nature conservation.
- Benefits: Earn up to £500 per day, flexible hours, and potential for extension.
- Other info: Collaborate with a passionate team and grow your career in a dynamic environment.
- Why this job: Make a real difference while developing innovative tech solutions for sustainability.
- Qualifications: Strong full-stack development skills in Python and TypeScript required.
Global Canopy is a data-driven not-for-profit that targets the market forces destroying nature. We do this by improving transparency and accountability. Our focus is on open data, aligned metrics and strong regulation, to help powerful organisations stop nature-related impacts and realise opportunities for positive action.
Global Canopy (GC) is seeking to contract a full stack developer to start the development of the GC Assessment Platform. This will be a new system to replace two legacy tools currently used by the Corporate Performance programme to conduct and manage the assessments that form the foundation of our Forest 500, Forest IQ and related data products. The platform will be used for the full assessment lifecycle: methodology setup, data entry, internal review, company engagement, and data export.
We are seeking to address accumulated technical debt and improve usability and performance by replacing two key tools used by the Corporate Performance programme:
- Original Data Collection Tool: The collection and review of data on companies and financial institutions is an integral part of the work of the CP programme. This work is carried out by researchers using the Original Data collection tool. This is a website that internal users log into to input assessment data, compare it with data from past assessments, and perform some basic data quality checks. Multiple different sets of assessments are run through this internally-used website every year, including those for Forest 500, Floresta 250 and Forest IQ.
- Comment Platform: The comment platform is an externally-facing website that allows assessed entities (companies and financial institutions) to view their Forest 500, Forest 500 Finance and Floresta 250 assessments before the assessments are made public. If they disagree with any of the findings, assessed entities can comment on them on an indicator by indicator basis. Global Canopy then reviews these comments, if necessary updates the indicator answers, and then responds. Currently it is a 2 step conversation, i.e. assessed entities can make one comment and GC can respond once. This comment process is an important quality control and engagement step.
The functionality of these two tools will be amalgamated into a single Assessment Platform as described by our PRD and SRS.
You will be responsible for starting the implementation of the Assessment Platform. You will cover the whole spectrum of development: infrastructure creation, backend and frontend. Our tech stack is as follows:
- AWS infrastructure defined and deployed using terraform.
- Python using FastAPI on EC2 and Lambda for backends.
- Next.js with TypeScript on AWS Amplify for the frontend.
- PostgreSQL on RDS for the database.
- Pytest, jest and Playwright for testing.
Key Tasks And Activities:
- Setting up infrastructure using terraform.
- Configuring authentication and access control.
- Building the repository layer over the existing PostgreSQL schema.
- Backend API development.
- Building the Next.js frontend application.
- Writing unit, integration and end to end tests.
- Documenting work done.
Expected Outputs:
- Platform infrastructure provisioned in terraform and deployed via CI/CD pipelines, covering all AWS components defined in the SRS (EC2, API Gateway, Cognito, S3, SQS, Lambda, networking).
- CI/CD pipelines in GitHub Actions for PR validation, deployment, and release management.
- Authentication and authorisation system using Cognito, with separate internal and external user pools, invitation flows, and role-based access control enforced at the API layer.
- Backend API in FastAPI with a data access layer over the existing database schema and endpoints for core functionality.
- Background worker functions for asynchronous tasks.
- Next.js frontend on Amplify with the foundational pages for both the internal workspace and company portal, prioritised in consultation with the project lead.
- Monitoring, structured logging, and CloudWatch alarms as defined in the SRS.
- Automated tests covering implemented functionality.
- Developer documentation sufficient for another developer to set up the environment and continue the work.
Requirements Skills and experience:
- Strong full-stack web development experience using Python and TypeScript, with at least five years of professional experience building and shipping web applications.
- Hands‑on experience with FastAPI or a similar Python web framework.
- Proficient in React, ideally with strong experience in Next.js, including server-side rendering and client-side data fetching patterns.
- Comfortable writing SQL directly against PostgreSQL – the project will use SQLAlchemy Core for query building but not as a full ORM.
- Extensive practical experience with AWS infrastructure, ideally including EC2, Lambda, API Gateway, Cognito, S3, and SQS.
- Experience defining infrastructure with Terraform is strongly preferred.
- Ability to set up and maintain CI/CD pipelines using GitHub Actions.
- Experience implementing authentication and role-based access control in web applications, ideally using Cognito or a similar identity provider.
- A commitment to code quality, including writing automated tests (pytest, Jest, Playwright) and structuring code for maintainability by future developers.
- Ability to work independently with minimal supervision, making sound architectural and implementation decisions guided by the product and technical specifications provided.
Desirable But Not Essential:
- Experience working with legacy databases – adapting a new application to work against an existing schema rather than designing from scratch.
- Familiarity with Docker and Docker Compose for local development and deployment.
- Experience working in or with non‑profit, research, or data‑driven organisations.
Benefits:
Our budget allows for a maximum of £500 per day including VAT for 66 days, expected to be worked at 4‑5 days per week. Due to the close collaboration with existing team members required, applicants must be within 2 hours of UK time. We would like this work to start as soon as possible. There is the possibility for extension if we are successful with further funding applications.
Full Stack Developer - Contractor in Oxford employer: Global Canopy
Contact Detail:
Global Canopy Recruiting Team
StudySmarter Expert Advice 🤫
We think this is how you could land Full Stack Developer - Contractor in Oxford
✨Tip Number 1
Network like a pro! Reach out to your connections on LinkedIn or at local meetups. Let them know you're on the hunt for a Full Stack Developer role. You never know who might have the inside scoop on job openings!
✨Tip Number 2
Show off your skills! Create a personal project or contribute to open-source. This not only sharpens your coding chops but also gives you something tangible to discuss in interviews. Plus, it’s a great way to demonstrate your passion for development.
✨Tip Number 3
Prepare for those technical interviews! Brush up on your Python and TypeScript skills, and practice common coding challenges. We recommend using platforms like LeetCode or HackerRank to get in the zone before your big day.
✨Tip Number 4
Don’t forget to apply through our website! It’s the best way to ensure your application gets seen by the right people. Plus, we love seeing candidates who are proactive about their job search!
We think you need these skills to ace Full Stack Developer - Contractor in Oxford
Some tips for your application 🫡
Tailor Your Application: Make sure to customise your application to highlight how your skills and experience align with the role. We want to see how you can contribute to the development of the GC Assessment Platform, so don’t hold back on showcasing relevant projects you've worked on!
Show Off Your Tech Skills: Since this role is all about full-stack development, be sure to mention your experience with our tech stack. Whether it's Python, TypeScript, or AWS, we want to know how you've used these technologies in real-world scenarios.
Keep It Clear and Concise: While we love detail, make sure your application is easy to read. Use bullet points where possible and keep your sentences short. This helps us quickly grasp your qualifications and makes a great first impression!
Apply Through Our Website: We encourage you to submit your application through our website. It’s the best way for us to track your application and ensures you’re considered for the role. Plus, it’s super easy to do!
How to prepare for a job interview at Global Canopy
✨Know Your Tech Stack
Familiarise yourself with the tech stack mentioned in the job description. Brush up on AWS, Python, FastAPI, Next.js, and PostgreSQL. Be ready to discuss how you've used these technologies in past projects and how they relate to the role.
✨Showcase Your Problem-Solving Skills
Prepare examples of challenges you've faced in previous development roles, especially those involving legacy systems or complex data management. Highlight your approach to problem-solving and how you improved usability and performance in your past projects.
✨Understand the Mission
Research Global Canopy's mission and values. Be prepared to discuss how your skills as a full stack developer can contribute to their goal of improving transparency and accountability in environmental data. Show that you're not just a techie but also passionate about making a positive impact.
✨Ask Insightful Questions
Prepare thoughtful questions about the Assessment Platform and the team's current challenges. This shows your genuine interest in the role and helps you understand how you can best contribute. Questions about their CI/CD processes or how they handle user feedback can be great conversation starters.