Mentorship
GeoGuru.Africa offers mentorship for developers who want to contribute to GeoServer. Whether you’re new to open source or looking to deepen your expertise, we guide you through the journey from first contribution to sustained impact.
Getting Started with Docker Development Environment
The fastest way to start contributing to GeoServer is using the DevDocker environment - a pre-configured containerized development setup that gets you coding in minutes, not hours. This is the recommended approach for all GeoGuru participants.
Why DevDocker?
Traditional GeoServer development requires installing and configuring multiple tools: Java JDK, Maven, Git, Tomcat, and more. Getting all these tools working together can take hours or even days, especially if you encounter version conflicts or platform-specific issues.
DevDocker eliminates this setup friction by providing:
- Pre-configured build tools: JDK 21, Maven 3.8+, Git - all versions tested and working
- IDE connectivity: Connect your favorite IDE (Kiro, VSCode, IntelliJ) via SSH
- Remote debugging: Set breakpoints and debug GeoServer live with JDWP
- Fast builds: Optimized Maven caching means 2-3 minute builds after the first run
- Production parity: Environment mirrors the official GeoServer Docker image structure
Time to first contribution: 15-20 minutes from zero to running GeoServer with your first code change.
Prerequisites
Before starting, ensure you have:
- Docker Desktop (Windows/Mac) or Docker Engine (Linux) - Install Docker
- Docker Compose 2.0+ (usually included with Docker Desktop)
- SSH client (built into Windows 10+, macOS, and Linux)
- GitHub account (free) - Sign up here
- Basic command-line familiarity (navigating directories, running commands)
System Requirements:
- 8GB RAM minimum (16GB recommended for comfortable development)
- 20GB free disk space (for Docker images and Maven dependencies)
- Internet connection (for initial setup and dependency downloads)
Follow the guides below in order to go from zero to your first contribution.
Quick Start: Your First 20 Minutes
Go from zero to running GeoServer with your own fork in about 20 minutes.
Read moreMaking Your First Code Change
Make a simple change to verify your development workflow end to end.
Read moreConnecting Your IDE
Connect VSCode, Kiro, or IntelliJ IDEA to your DevDocker container for full remote development.
Read moreRemote Debugging
Set breakpoints and debug GeoServer live using JDWP, with working Hot Code Replacement.
Read moreDevelopment Workflow
The day-to-day cycle: finding issues, branching, testing, and submitting pull requests.
Read moreCommon Development Tasks
Rebuild, restart, view logs, run tests, and other day-to-day commands.
Read moreMulti-Project Development
Build GeoTools and GeoWebCache from source alongside GeoServer.
Read moreTechnical Focus Areas
Our mentorship program emphasizes key areas where GeoServer needs ongoing development:
Docker Development Environment
- Setting up reproducible dev environments
- Creating custom Docker images for testing
- Optimizing container builds for faster iteration
Custom Builds
- Building GeoServer from source
- Creating custom distributions with specific extensions
- Managing dependencies and build configurations
Community Modules
- Developing new community modules
- Testing and documenting community extensions
- Contributing to the community module ecosystem
GitHub Actions and CI/CD
- Improving automated testing pipelines
- Adding new test scenarios
- Optimizing build times and resource usage
- Contributing to continuous integration infrastructure
Security
- Identifying and fixing security vulnerabilities
- Implementing security best practices
- Contributing to security documentation
- Participating in security reviews and audits
These focus areas represent ongoing needs in the GeoServer project. Whether you’re interested in infrastructure, security, or feature development, there’s a place for your contributions.
Next Steps: Your Contribution Journey
Now that you have a working development environment, here’s your path forward:
Week 1-2: Familiarization
- Explore the GeoServer web interface
- Read the GeoServer Developer Guide
- Browse the codebase in your IDE
- Make small experimental changes to understand the build process
Week 3-4: First Contribution
- Find a “good first issue” on GitHub
- Start with documentation improvements or small bug fixes
- Submit your first Pull Request
- Respond to maintainer feedback
Month 2-3: Build Expertise
- Tackle more complex issues
- Write tests for existing functionality
- Contribute to community modules
- Help other developers with setup questions
Month 4+: Sustained Impact
- Take on feature development
- Review other contributors’ PRs
- Mentor new contributors
- Consider joining the GeoServer community as a regular contributor
Remember: Every expert contributor started exactly where you are now. The key is consistent, incremental progress. Small contributions build trust and familiarity with the codebase.
Getting Help
If you encounter issues or have questions:
1. Check existing documentation:
- DevDocker README: Comprehensive setup and troubleshooting guide
- GeoServer Developer Guide: https://docs.geoserver.org/latest/en/developer/
- GeoServer User Manual: https://docs.geoserver.org/ (for understanding features and functionality)
2. Search for similar issues:
- GitHub Issues: https://github.com/geoserver/geoserver/issues
- GeoServer Discourse forum (includes 20+ years of archived mailing list history): https://discourse.osgeo.org/c/geoserver/
3. Ask the community:
- GeoServer Discourse forum β Developer category: https://discourse.osgeo.org/c/geoserver/developer/63
- GeoServer Gitter chat: https://gitter.im/geoserver/geoserver
4. Contact GeoGuru mentorship:
- Email: info@geoguru.africa
- Tell us about your issue, what you’ve tried, and where you’re stuck
- We’re here to help you succeed
Why This Matters
Contributing to GeoServer isn’t just about writing code - it’s about joining a global community of developers working on critical geospatial infrastructure. Your contributions help:
- Organizations worldwide: GeoServer powers mapping applications for governments, NGOs, and businesses
- Open source ecosystem: Your work benefits the entire geospatial community
- Your career: Open source contributions demonstrate real-world skills to employers
- Future contributors: Your improvements make it easier for the next generation
The DevDocker environment removes technical barriers so you can focus on what matters: learning, contributing, and growing as a developer.
The Kaizen Philosophy
We follow the Japanese Kaizen philosophy of continuous, incremental improvement. You don’t need to make massive contributions to have impact. Start small, build trust, and grow your involvement over time.
The Journey:
- Start with documentation - Fix a typo, clarify a confusing section, add an example
- Build familiarity - As you read the docs, you’ll understand the architecture better
- Tackle small bugs - Fix issues you encounter while learning the system
- Contribute features - Once you understand the patterns, add new capabilities
- Volunteer for the unglamorous work - Take on the big, scary, audacious tasks that no one wants to touch - the dirty behind-the-scenes work that keeps projects healthy but rarely gets celebrated
- Mentor others - Share what you’ve learned to help the next generation of contributors
This path mirrors Peter Smythe’s journey from FOSS4G Tanzania 2018 to GeoServer PSC member. It starts with curiosity and grows through consistent, quality contributions.
Welcome to the GeoServer community. We’re excited to see what you’ll build.
Resources
- DevDocker Docker Hub: https://hub.docker.com/r/geoguruafrica/devdocker
- DevDocker GitHub: https://github.com/geoguru-africa/DevDocker
- GeoServer Developer Guide: https://docs.geoserver.org/latest/en/developer/
- GeoServer GitHub: https://github.com/geoserver/geoserver
How to Get Mentored
Ready to start your GeoServer contribution journey? We’re here to guide you.
Contact us: info@geoguru.africa
Tell us about your background, what you want to learn, and how much time you can commit. We’ll match you with resources, suggest starting points, and provide ongoing support as you grow your skills.
Mentorship is free. Our goal is to build a stronger, more diverse GeoServer community by removing barriers and bringing knowledge to developers across Africa and beyond.