Full Stack Developer Co-op, ComPeters

What is ComPeters?

ComPeters is a software company that specializes in producing a specific type of project management software. Their two main products are called "Utilocate 2" and "uExcavate" each representing two sides of a task. The task is to dig in an area. Utilocate 2 allows users to manage their "Locates" in which a "Locator" will locate a utility under ground and "clear" the utility for a dig. Once the utility is cleared, users in uExcavate receive the cleared utility. Once all utilities for the dig are cleared they are good to dig. The dig site will have different means of marking, such as spray paint or flags. The managing of locates and digs is the main function of the software ComPeters produces. 

What major areas did I work on?

There were three main areas I focused on during my time at ComPeters. These were: Visual Basic .NET, SQL, AWS Lambda, and JavaScript. The last project I was working on was an email parser. I used VB.NET more during the beginning of my work term to assist with bug fixes on the main software, Utilocate 2. What the email parser needed to do was create a database entry from a received email, but it was not as simple as data entry. This incorporated knowledge from AWS Lambda and JavaScript. 

Visual Basic was not a language I was familiar with. This was not difficult to overcome as VB is very "wordy" so reading it was fairly easy. However, I did need to get used to reading the code with little or no comments. In VB I was tasked with bug fixes here and there. I am happy to report that some of my code exists in the project to this day!

SQL is very wide-spread. However, I had not had any practical experience with it, other than class exercises. This was my first exposure to a proper database system. The very first task I was asked to do was to create a query that was to be a report for one of the clients ComPeters had. The query would need to return information -plain or conditional - from several different tables within the client database. If I were asked to do this task today it would take me several minutes. However, back then it took me several hours. I was very proud of myself to see how far I have come with SQL. 

The final 4 months of my work term were spent transitioning the Java email parser to a JavaScript version of it. I was tasked with creating the final, largest section of the email parser. This involved reading existing (poorly commented) code, asking questions about it to clarify functionality, and implementing it into JavaScript using AWS Lambda. I was able to build the parser piece by piece with the wonderful organization of my Project Manager who was able to create a task for every individual thing to keep me organized. I was also developing in the Agile development process, which was a first for me in the real-world. I was pleasantly surprised to see how well it all came together in the end. 

What was my main goal?

My main goal I wanted to achieve this work term was to write readable and reliable code. I was happily able to achieve readable code after many design conversations with my project manager. He was able to give me advice in certain areas that lead to me writing more readable, such as a generic structure of functions that I should follow. The writing improvements did not come easy but eventually I was happy with the quality of my code as I felt it had improved much since starting there. 

Reliability has always been something I have struggled with for my code. I often tunnel vision certain aspects, which leads to me overlooking other aspects. I was determined to improve this on my work term. I was able to greatly improve the reliability of my code by forcing myself to test every corner of the code - even if it was seemingly pointless. 

I am pleasantly surprised with the increased quality of my code. I recognize that my writing style will change as I grow in my career, but the lessons I learned and ComPeters have laid a solid foundation in which to build the rest of my code on. 

Main take-aways

I very much enjoyed my eight months at ComPeters. I learned many invaluable skills - Catan included. I worked on improving the reliability and readability of my code, which I was successful in. I was tasked with a multitude of things from bug fixes, feature additions, to full projects only I was working on. I was able to achieve my goals and improve many of my skills. 

 Acknowledgements

Shuaib Solker - Project Manager / Full Stack Developer, ComPeters inc.