Working at GoodMojo

Working at GoodMojo featured image

Being a San Francisco native, I’ve seen my city change for the good and bad. A hard realization hit me when I realized that if I wanted to survive in the city that I love, then I would have to change career paths. So in 2014 I began to teach myself front-end development in the hopes that maybe I could make a career out of it. The harsh realization that programming is hard was something that I had to overcome and take on if I ever really wanted to make it out of the front-end minefield. I became a human sponge, and I tried to learn something new everyday in the hopes that it would stick. When I read about these so called “programming bootcamps,” springing up all over the Bay Area, I had to see what was available for someone in my predicament.

These programming bootcamps offer you the world, and then some. Problem is, is that they either cost you a new boat, or their tests are made to weed out only people who were programmers to begin with. I tried my hardest to keep pursuing my front-end dreams while also receiving rejection letters from some of these bootcamps. It was really hard, and I felt like giving up. Until I read about an interesting offer that was being given to a select group of folks here in San Francisco. I put all my chips on the table, and hoped that I would be selected. A couple weeks later I found out that I was one of the lucky chosen. So began my two year journey with the folks at GoodMojo.

Cloud Computing Academy was the name of the four month bootcamp given by the folks at GoodMojo. It was split into different sections for each month, and so we learned and practiced HTML, CSS, JavaScript, PHP, SQL, documentation practices, as well as User Experience methodologies. I’ve never been one to brag, but when it came to learning these skills, having a leg up on all the other students really benefited me greatly. So while I was able to finish tasks like coding up a portfolio in HTML and CSS, I went and helped some of the other students because I knew just how hard some of these skill sets can be for some to pick up on. It was also becoming clearer that front-end development was actually sticking in my head, and I was able to retain information that I thought would never stick in my peanut brain.

By the end of the bootcamp, students were responsible for making an E-Commerce site using all the information that they learned throughout the four month journey. I created an E-Commerce site where you could purchase Galaxies and name them. I was able to use all the information that I gathered throughout my four months at Cloud Computing Academy. From proper use of HTML and CSS, to using JavaScript libraries, as well as using PHP in the backend to talk to my SQL databases that had all the Galaxy information. I was happy with what I accomplished, and so was GoodMojo, so much that they offered me an internship to work for them. Never before did I feel real accomplishment until I went through and finished the Cloud Computing Academy.

Galaxy Homepage Screen Galaxy Homepage

When I began interning for GoodMojo, they wanted to start me off easy and so I began to help their lead full-stack developer with a project that they had been working on called Charter For Compassion. The message that CFC wanted to send was that of compassion for others, and to bring people of all walks of life together. My job was helping Quy, GoodMojo’s full-stack developer, with implementing SQL databases that would then connect to Joomla websites that would then be maintained by the different non-profit charters. Essentially, what we did was clone a master copy of a bare bones Joomla website that we put together, made a new database for that site, connect them, and then help the people within the charters to fill up the site with their non-profit information. Working with Quy on the charter sites was a great learning experience for me. I learned a lot about what goes on in the real world of web development. How to traverse the waters and survive by completing deadlines for customers. While all the charter business was happening, GoodMojo also had another project that they wanted my help on, and it required me to put on my front-end development hat and tackle a major headache that they needed fixed.

Charter For Compassion Homepage Charter For Compassion Homepage

GoodMojo is a non-profit organization that designs and develops software for other non-profits, public agencies and socially conscious organizations, maximizing their ability to deliver quality services to low‐income communities. One of their main programs that they’ve created is called Axiom. Axiom is essentially nine applications in one, each performing a different task that someone in an agency needs so that they’re able to help low income individuals. My job was to refactor and update all of Axioms HTML, CSS, and some JavaScript. The thing that I didn’t know before starting this project was that Axiom was built using ASP 2.0. This ASP code also talked to SQL databases using Windows SQL Server, and I had to use Visual Studios 2008, because the code was so old that if I tried using VS2015, it would break. I must admit that at the beginning of this project, I felt like it was a bit over my head. There were so many different factors in play, that I didn’t know if I would be able to complete the task at hand.

Error Screen Errors as far as the eye can see

Luckily for me, Charlie, Quy, and Alfred were all very helpful in getting my virtual machine up and running with all the needed files. Little did I realize just how large of an undertaking this would be. Not only was the process long and laborious, but it wasn’t a DRY process. The reason being that these applications inside Axiom were usable without Axiom as separate programs. So if a company only needed to use say, GoodMojo Scheduler, then that HTML, and CSS files had to work without the use of Axiom. I implemented the use of a more modular approach in my CSS design using SMACSS, BEM, as well as using the Sass toolset called Bourbon. Axiom was a pretty old piece of software that truly needed to be remade instead of spruced up visually. However, that wasn’t an option, and so the process of removing old inline CSS inside archaic ASPX code was a real learning process. Did you know that DLL files could contain CSS code? Yeah, me neither, and it was a pretty big headache.

Modular CSS Screen Modular CSS

I did this refactoring process for the first six applications inside Axiom, and during that time at GoodMojo, I realized that while I was completely competent at front-end development, my real passion was design. Front-end development is all about problem solving, and having structure to those solutions. While I did enjoy trying to solve for those problems, my attempts never seemed to be enough. I would tend to google my problems, find something on Stack Overflow, throw it at my screen and see if that code would work. Sometimes it would, but I just didn’t seem to enjoy it as much as I had thought. During the internship, I had a lot of free time on my hands and so I taught myself UI Design, UX Design, Prototyping Software, and User Center Design Principles. I realized that I absolutely love to think up and design user interfaces for applications. While working on Axiom, I was around a lot of poorly designed UI. From extremely long forms, poor typography choices, as well as zero accessibility principles being implemented. So during my time at GoodMojo, I became a sponge again, but this time it was for user interface design, and the proper steps that go into designing accessible interfaces.

Old Axiom Old Axiom

In the end, I was able to complete the task at hand of refactoring a portion of the Axiom system. It definitely needed a lot more work, and I wish GoodMojo gave me more time to work on it. While they were very pleased with what I had accomplished, funds seemed to have dried up, and so my time at GoodMojo was over. It was bittersweet to say the least, but I absolutely do not regret the decision of interning for them. So I’d like to personally thank Alfred, Quy, Charlie, and Paul for taking a chance on me, and making a small difference within their company.

Unfinished Axiom Update Unfinished Axiom Update