Pathways for GIS Software Development: From River to Ocean

1301
2
09-23-2024 07:00 AM
Marko-Zlatic
Occasional Contributor
6 2 1,301

Greetings GIS professionals, enthusiasts, and inquisitors, and thank you for taking the time to read this blog post about gaining practical GIS software development skills/experience without the traditional background in computer science. My name is Marko Zlatic, I am a GIS developer with Montrose Environmental Group (MEG). I graduated with a Bachelor of Science in Natural Resource and Conservation Science at The University of British Columbia (UBC), as well as recently graduating with a Master of Science (M.S.) in Geographic Information Systems (GIS) at The Johns Hopkins University (JHU).

 

MarkoZlatic_12-1726516602131.jpeg

Figure 1: Photo of my most recent LinkedIn post, celebrating a milestone achievement in receiving my M.S. in GIS.

 

As some of you might be asking, how might one ‘enter’ the realm of software development without the traditional background in computer science? Just like any profession, it comes down to. The more you have, the greater chance you'll succeed in the career path of your choosing (in my case, it was software development).

The ultimate follow-up question to that is... How can someone gain experience when most opportunities require experience to begin with? It might seem paradoxical, but reading about my GIS journey could offer some helpful insights on how to gain valuable experience!

 

How to Begin: The Riverhead

During my sophomore (2nd) year at UBC I took my first GIS course, and as you can imagine, I fell in love with being able to visualize complex ecological relationships in a comprehensive and visual way (essentially, anyone can look at my GIS deliverables and be able to understand what is being portrayed, in layman terms).

I found this to be very powerful and decided to take the risk to learn more about GIS through seeking co-operative (CO-OP) internship opportunities (ie paid internships that also count towards university credits). After applying to hundreds of applications, I was very fortunate to secure GIS-related CO-OPs every summer during my time at UBC (totaling close to 2 years of GIS-related experience). Keep in mind, I really do mean hundreds of applications (2 – 5 job applications each day during every spring semester).

MarkoZlatic_13-1726516602148.jpeg

Figure 2: Photo showcasing myself working during one of my summer CO-OP Terms for Ledcor Construction Group, where I was a part of the TELUS Communications Fiber Optic development project, as a GIS intern.

 

When you are a young professional, it’s imperative to have experience. But, lets say you graduated from undergraduate school with little to no GIS experience or you are looking for a career change in GIS software development, where do you start? It’s not easy but nowhere in this blog did I say it’s impossible.

For starters, any GIS position has the potential to leverage the Python, JavaScript, and/or R programming languages. So if you are having trouble securing positions for a software developer, but are very interested in software development, I would recommend first looking at GIS analyst (or even cartographer) positions and start showing your employer that you can code; as the months turn to years, you can have quite a bit of code written for your organization, illustrating your capabilities as a robust developer.

After receiving an offer from MEG soon after graduating from UBC, I immediately began developing scripts that optimized GIS and tabular workflows. These enhancements not only saved the company and our clients' money, but also maintained the integrity of our deliverables. By demonstrating the value of these improvements, I was able to showcase my ability to identify and solve workflow limitations, making processes more robust and efficient. During this time, I was also pursuing a master’s degree in GIS at JHU while working full-time at MEG. This allowed me to apply graduate-level concepts directly to my work, which significantly advanced my software development capabilities. Balancing both roles also demonstrated my exceptional time management skills.

 

Gaining Experience: Determining the Length of your River

What if you don't have a lot (if any) computer programming experience, but still want to be a software developer? To be on the safe side, it will be around 2 – 3 years of very frequent programming exercises; but you will thank yourself for the rest of your career if you truly would like to get into software development.

Three exercises I would recommend getting you started with are:

  • Hackathons
  • Webapp development, visualizing government data
  • Redoing previous school assignments/final projects

 

Hackathons.  These are a great place to hone in your programming skills; youre often paired in teams (so you can see different coding styles) and it is often very competitive (so placing in a hackathon is considered very impressive). DevPost is a great website to get you started with participating in countless Hackathons.

MarkoZlatic_14-1726516602163.png

Figure 3: The above screenshot is an illustration of a Hackathon submission I did for the Johns Hopkins University Hackathon, called HopHacks. I placed in the top 20 participants (out of 180+ participants); illustrating my skills as a GIS developer. Click HERE to see my DevPost blog (Additionally, the webapp is best viewed when the web browser is in full-screen mode).

 

Visualizing government data. There are countess government datasets out there that already have APIs and endpoints already set up. As a result, take advantage! Much of the government data that I work with, hardly get incorporated into a publicly hosted web application... that's where you can come in! Web development is arguably one of the most popular career paths in GIS due to the increasing demand. Thus, creating a web application that uses datasets that a large audience can relate can have the potential in individuals using your application, and potentially even help your local community!

MarkoZlatic_15-1726516602191.png

Figure 4: Screenshot illustrating the beginning portion of an ArcGIS StoryMap that I created for the Esri/ISI Student GIS competition, where I was a finalist; a machine learning project predicting forest fire causes in Canada, using datasets created by the Government of Canada. The URL for the StoryMap can be found HERE.

 

Revisit previous projects. If you're like me, you might not have had as much time as you’d like to work on some previous assignments/final projects from school... but it doesn't mean you cant work on them again! With many school assignments/final projects being structured in directions, you can perhaps leverage what you have learned afterwards and further integrate new technologies to make those assignments more representable and potentially helpful for the end user.

 

MarkoZlatic_16-1726516602204.png

Figure 5: Screenshot illustrating one of my final drafts for the JHU AS430.619 final project. If you were to see the source code, there are areas where more robust code can be written, condensed, and potentially omitted. Thus, this can be a great project for myself to better improve my JavaScript coding abilities. The URL for the hosted web app can be found HERE.

 

Final Thoughts: Smelling the Ocean Breeze

So, what does this all mean? It means the longer you wait, the longer your river to the ocean will be. But no matter what, your river will eventually lead to an ocean; perseverance, patience, and persistence are the 3 P’s that I like to live by and provided much merit towards my accomplishments.

Here are some key takeaways from this blog post:

 

  • There are many experiences out there that are opportunity based (ie hackathons, using public data to make applications, remastering previous work, etc.), which means if you uphold the 3 P’s for 2 – 3 years, I will consider you to be software development ready. Leveraging Python, JavaScript, and/or R are great programming languages to work with GIS data and workflows.
  • Before I was a software developer, I was first an analyst and took my time identifying workflow limitations where computer programming was a sure way to increase efficiency and decrease human error; greatly benefiting your respected clients and organization(s). Eventually, your efforts will be noticed, and you will be rewarded.
  • You dont need a traditional computer science background to be a software developer! What you need is a solid foot in the door and working with what you have, solving limitations with your computer programming skills. As the saying goes, every river leads to an ocean; so, stay positive and keep trying (believe in yourself and the rest will take care of itself!).

 

All the best to your current and future endeavors! I am always open and willing to connect with like-minded individuals so please dont hesitate to connect/reach out!

 

Email: mzlatic1@jhu.edu

LinkedIn: https://www.linkedin.com/in/marko-zlatic/

2 Comments