I have been a GIS Analyst for over 10 years and am currently studying java (50% through the course). My plan is to develop GIS applications mainly focused towards open source solutions. I would like to develop some form of a portfolio to gain more experience, but I am not sure what the best way to do this would be. I have thought about joining some groups/communities like Geotools, but I am concerned with my lack of experience. I feel I would be more of a hindrance than a benefit. The other idea, is that I could look at developing some in house applications or even some Android application to build up some credibility. If anyone could provide some suggestions, or share their similar experiences, it would be greatly be appreciated. How should I go about building a portfolio from scratch to further my open-source GIS App career aspirations?
A few ideas come to mind for building your geospatial programming credentials:
- Create a legacy of solutions and answers on GISse and Stack Overflow. You will notice that many people on GISse creatively and wisely use this forum to further their freelance work.
- Create a web page or blog to show potential employers what you know. Some of my favorites, and good examples in the GIS world, include Smathermathers Weblog and Spatial Thoughts.
- Do pro bono work for NPOs. Not only is this a great way to give back by helping cash-strapped non-profits, but the work you do for these willing clients looks great on your portfolio/resume.
- Find programming jobs on freelance sites such as Elance. Then add these jobs to your portfolio.
I think the way that we create mapping applications is changing fast and the key to success in this industry is being ahead of that curve.
For example 10+ years ago when we wanted a blog we get a shared hosting solution, download a blogging platform like Wordpress or Movable Type install it on the server, buy a domain name, install a theme, bang our head against a wall etc, etc. Now we just sign-up for a Tumblr or Wordpress hosted account and off we go.
The same thing is happening with online GIS. The days of building your own stack from scratch and deploying it to your own server are numbered. A few years from now it will only be the big guns with big budgets and very specific requirements that will still be doing it.
I would focus on learning the new cloud based mapping platforms such as ArcGIS Online, CartoDB, MangoMap and MapBox inside out. If someone said to me that in 2014 I had the choice between my CV saying that I know how to roll out and tweak web map servers or I know all of the cloud based GIS systems inside out then I know which one I would choose by a country mile.
I'm a programmer by trade and can tell you that the guys that in 2010 were busy becoming experts on cloud systems such as Amazon EC2 are now the hottest property in the industry whilst DB admins and Java developers are ten a penny.
but I am concerned with my lack of experience. I feel I would be more of a hindrance than a benefit.
My expirience is that Open Source communities does not look at things this way at all. While your Java experience might not exactly meet the standards of the project, there are always tasks to be done. Mundane tasks like filing bugs, testing etc are things that anyone can do, and this is a great way to contribute. And, while your expertise in Java might not be that good, you are in this to learn, so try some simple tasks (look through their issue tracker) solve them and submit a patch. Most teams welcomes new contributors, and if they have the time they probably will guide you in the right direction.
Your GIS-expirience can also be a great benefit to open source projects, try to look at the project from a "professional gis analyst" viewpoint and suggest new features. You could also try implementing them and then ask for ideas for improvement. This may be a great way to get to know the core developers.
In general: do not let your lack of experience stop you from contributing, I think this mentality is a big "threat" to open source projects, people feel they have to be experts in order to contribute. In most cases, all that is needed is the will to contribute and to learn. And yes, after some time you will get the experience, and being an active developer on an open source project (of some size) is a great asset when applying for jobs in software development. Good luck!