Voyaging to a new level. Destination….. Lost and Found.

Greg Munker
Chingu
Published in
9 min readSep 7, 2017

I was first introduced to Chingu Cohorts in May of 2017 by a fellow junior developer. When he told me about Chingu Cohorts I was so excited by the prospect of working on some projects in a group environment!

When I joined I wanted to be a part of everything, which then pivoted to not joining anything due to my personal scheduling. Though not to be a troll, in the slack channel I popped on every day to help and contribute wherever I could.

Along comes Chingu Voyage. This time I would not sit on the sideline even with my crazy schedule. I signed up and joined B2L (Build to Learn).

What is this Chingu Cohorts, Voyage & B2L (Build to Learn) you speak of?

“If coding resources are like roads, Chingu is the bus people can jump on to help get to their coding goals in a faster, more robust and enjoyable way. That being said, this bus isn’t perfect and may sometimes have engine troubles. We generally believe that it’s better to drive with others in a vehicle that sometimes has engine troubles than it is to walk alone the whole way, but it’s worth noting that there’s a list of things we’re looking to improve:”

Chance Taken

Voyage is the name and type of this session of the Chingu group. Chingu sessions run 5 weeks. In past sessions you could sign up to do challenges, B2L projects, accountability-buddy and much more. With Voyage this was a mission to complete B2L projects in one session.

So what is B2L? Build 2 Learn allows members to join small teams of fellow members. One is assigned as a project manager and controls the flow of the project. As a team you decide on what project you would like to work on and get to working.

To see a full description of what it is, check out this link here written by Chance, the creator of the Chingu Cohorts.

Fresh out of the academy…

So putting it short this was the first time I was ever working with someone else on any project. I can’t even lie, I was both nervous and excited and worried I would not like it. Which in fact I didn’t for the first week. Here was this guy Matthew Madden, trying to tell me what to do! Though he wasn’t, he was trying to just guide the project along, and continues to do a great job of it.

We continued working on his project from the previous cohorts session, which is an application for a volunteer group. They find, document and report lost and found animals in their county. They were doing all this via spreadsheets and just wanted something better.

When I first pulled down the code from GitHub, it was an eye opener seeing how others code. I could actually see the different styles of coding, and how it was all put together. It was a solid foundation for the previous group who were still learning ReactJS. I couldn’t believe Matthew Madden just started learning ReactJS about a month prior to joining the group.

Looking for a promotion…

We took about a week to get organized and get on a call to go over what we were planning to do as a group this session. In that week I decided to earn my gold star with the project manager.

A little background…

I am a father of 2 amazing children and currently an Uber / Lyft driver full-time while I’m looking for my first dev job. Lack of time is an understatement to a whole new level for me. As stated above, I was not letting this session pass me by so I have been making it work, from coding through the night, while watching kids, or sitting in my car waiting for rides on the laptop (this is more often than not). With that said…

I asked if I could implement React Redux into the application to manage state better. At the time, state and props were running around like kids in a school playground. They all know where they are going and need to be, but looking at it seemed like chaos. He was cool with it, though not knowing redux he said I would need to teach him after I did so.

Within the first week, I implemented Redux, setup Router to the id of the pets and refactored most of the code to es2015 code. In total I manipulated/created 27 files, with +7,727 −397 changes.

You can find the Pull Request here.

It took me by surprise how much I actually accomplished in such a short amount of time. Now don’t get me wrong, I know my code was not perfect, and that is where working in a team environment comes into play.

Lieutenant Junior Grade…

Matthew Madden introduced us to our Trello board to work in SCRUM style workflow. We had cards of work that needed to be done for the project, and just went with it. We implemented and started working on code together almost daily via Slack. I was being tasked with more and more and I am continuing to love it. It has been one of the best experiences yet.

Working by myself for close to two years I thought was great because I was able to keep my code in one way, and it worked in the flow I wanted it to. Although the reality is that’s not reality. There will always be someone else’s code, and someone to work with. That goes from co-workers, to project managers and if you decide to just go in as a solo freelancer, the client. They will always want something different and look to you and say, get it done. Well maybe not that bluntly (all the time) but you get the idea.

Once the team process started and we were working together on everything, the project started to move along at a fast pace. So fast that I think it overtook us for a minute.

“At ease, Ensign, before you sprain something,”

— Janeway (Caretaker)

We managed to create lots of mistakes in our pursuit to move forward, and each one was some of the best learning experiences I have come across in the past 2 years. And this is why Chingu is so important, they were real mistakes, real bugs that needed to be handled. As someone who has spent the past 2 years doing Udemy courses, watching YouTube, and FreeCodeCamp on a daily basis, none of it compared to this. All of those were guided to a point, they held your hand to some extent. When you’re working on these projects, it really is a “Build 2 Learn”.

Engineering…. Give me a full report.

  • React Router v4
  • React Redux
  • ES2015
  • Google Maps
  • ScriptLoader
  • Firebase Database
  • Firebase Auth

Within the first 2 weeks of working with Matthew Madden on this project we implemented and refined Router, Redux, es2015, and firebase auth.

After that we added in Google Maps for geolocation of the animals when being added to the db, displaying the most recent location on a map in the detail page, and the ability to update the location in the update page.

Working on the Google Maps as a team was by the far the biggest learning experience for me in this project. Not only did we both need to learn the Google Maps API (which is a world into itself), we wanted to do lots of custom things with it.

The first challenge was simply loading the maps correctly within react components asynchronously, in the correct lifecycle methods.

It was much more challenging than you might expect, and if you’re interested keep an eye out for a possible article by both Matthew Madden and myself on how this was all accomplished.

Once we got the maps loading, that’s when the real challenges poped up. We were coming up with new ideas using the maps daily. The possibilities are endless with an API that large.

We decided to start simple and just work in grabbing the geolocation on the add page, adding it to the animal, and pushing to the db. Then, displaying this info in the detail and update page.

Which later escalated to custom markers (pins) of a cat or dog depending on what was chosen, red or green depending on the status of the animal lost or found.

One step further, we thought it would be a great idea to create a full history log of all updates… This took us the longest to do throughout the whole project. With that functional, Matthew Madden displayed all the history in a great color coded way that can be clicked on and it pans the map to that marker.

The greatest part about adding all of these features is, neither of us ever did something like this before, and we did not look up and copy / paste someone else’s code. We took the time to learn it and do it.

Once again this is the true power of the B2L projects of Chingu. The flexibility to learn as you build and still have somewhat of a deadline to force you not to stall out on it.

Final Report…

So far my experience within the Chingu group has been nothing less than positive. I have yet to come across anyone I did not want to associate myself with. Everyone is very encouraging, helpful, and in general just great people.

The Voyage journey has been fantastic for me personally and I highly recommend everyone to try to join (spaces are limited). You can be a senior developer (which I think would be great to share your sage advice), to someone just learning HTML / CSS. There is a place for everyone.

B2L — This as I stated above both scared and excited me, and it still does to some extent. I feel I’ll always be learning and there is no better way than to just code to learn. This allows that, with the bonus of working with others to help you along the way. Both by accepting help from them, and by helping and validating your own abilities. You grow a bit of confidence you never knew you had (at least this was for me), to think you really can do this.

Since posting about this project I have actually had recruiters and jobs contacting me now. I am still looking as of this article for my first dev job, but at least now I’m being noticed.

I’ll continue to be in the Chingu Cohorts as long as @chance keeps accepting my applications, so if you join, or are already a member reach out to me. I’m am always willing to lend a hand, just BS or give feedback.

GitHub Repo to this project at:

Live Demo:

Greg Munker Portfolio:

New course laid in, Voyage-2… Engage warp six…

--

--