Maps and the T-Shaped Developer
Recent times have been a flurry of becoming a "T-shaped Developer." This is a concept that was introduced to me by .NET engineer Christopher Johnson. The premise of being a "T-shaped Developer" is to go "deep not wide," but to still have horizontal domain knowledge in a way that makes you a more complete developer. I call the focus point of this T the "stem," and the more shallow and horizontal components the "arms".
I may want to learn everything there is to know about DevOps, Machine Learning, and Security, but if I try to learn everything, I will master nothing. And yet knowing nothing about these disciplines also doesn’t seem a viable option for the engineer or developer who wants to be flexible to meet the shifting needs of the market, as well as the creative opportunities unlocked by innovation.
Of course there is always the danger of losing focus. This is where a strategy of having at least one ongoing project in the stem of your "T" comes in handy. I try to have a heavy daily project or two in my area of focus, which I will supplement with a few smaller, simpler projects in other areas that are not my main focus, but which I am curious about exploring.
How is that working out for me right now?
My main project, which uses the MERN stack (MERN = MongoDB, Express, React, and Node) and is in the development stage, is a Fullstack application called LocalBarter. LocalBarter is a bartering app that uses Geolocation to enable a moneyless economy of trade within whatever radius the user decides he is comfortable traveling within. This will be a fully-featured app with all the bells and whistles I can add without introducing bloat or over-complicating the user experience.
One of my side projects, which is entering its beta phase, is called Gravity Cult. This app is written in Python/Django and deployed on Heroku with an Amazon S3 bucket for storage. The premise of this app is that artists from around the world paint rocks and deploy the painted rock, along with a rock with QR code/link, in their favorite park. When someone stumbles upon and scans the rock, Gravity Cult opens and shows them the art/poetry others have posted from all around the world, along with a map of all the global portals along with an opportunity to post their own work.
You will notice the theme of Geolocation and maps within both my main and side projects. I am a huge fan of map-based applications, with one of my favorites being radio.garden. This is a globe-based map that enables access to radio stations all around the globe. (Seriously, check that app out. It is absolutely stunning). Another website I am a huge proponent of is ecovillage.org/projects/map. This site is another map that contains information about global farmers/ecovilliage communities who are potentially open to work-trade and volunteers. Think of it as a study-abroad portal that doesn't require you to attend an expensive university to participate.
How does this help bring my use of two different technologies (Javascript for LocalBarter and Python for Gravity Cult) back to the concept of the T-shaped developer?
Well, my interest in implementing maps offers an opportunity for convergence.
When it comes to my MERN app, I am going to see how deep I can go. Can I unlock the full potential of Geolocation? I want to explore every feature that may be available to see how each one might evolve my concept. Just how beautiful and custom can I make my map? My dedication to learning as much as I can within the stem of my T offers me an opportunity to flex and dive deep.
Gravity Cult, however, I have designated as a fun side project, mainly because it is in Python rather than my current stem language (Javascript). However, this time limitation enables me to approach my study of "Geographic apps'' from the other side. What is the simplest way to implement maps effectively? What is the minimum needed to provide a delightful user experience? Do I even need advanced APIs or Geolocation to implement the features I want?
So by delegating my time in a focused manner and imposing restrictions on time spent on the "arms" of my T/side-projects, I am also opening up opportunities to explore other realms of my focus areas. I also believe that approaching maps with both JS and Python will help me understand the potential of maps more fully.
When you want to learn as much as you can, but still need to have relative mastery of a narrow area to be employable in an increasingly uncertain global economy, it can be useful to find "convergences" that allow your disparate interests to inform each other. I look forward to watching all of my projects grow, whether they be simple and light or more fully-featured.