JRS Virtual Studio

Junior Software Developer
May 2019 - September 2019


About JRS Virtual Studio

JRS Virtual Studio is a software development company headquartered in Guelph, Ontario. They program products primarily for the Canadian Agri-Food Industry as well as markets in the EU, UK, US, and Latin America. In addition to performing contract work for clients, Virtual Studio also develops its own products, including Transport Genie, Trespass Tracker, mPowered, and more.

To learn more about JRS Virtual Studio, visit their website: https://www.virtualstudio.ca.

Work Term Goals

For my second co-op term, I set new goals to continue to improve my oral presentations, to learn about and practice user interface design, and to improve my organization and time management.

  • Communication at Demos and Client Meetings

    My first goal was to continue with improving my code demonstrations, and to be more active during meetings.

    The main project I worked on involved refactoring a client's website, and involved regular trips to the client's office in Elora, Ontario. This meant that I was able to frequently give quick updates and demos of the user interfaces I had been working in face-to-face meetings with the clients.

    I also participated in meetings where we discussed potential changes to the website, such as selecting a base template to start out with. In those meetings and other meetings to discuss small changes, I was able to use tools such as the browser development tools to quickly demonstrate the appearance in real time to the clients.

  • User Interface Design and Implementation

    Having just completed a course in UI Design at the University of Guelph, I was looking to apply that knowledge during my co-op.

    As it turned out, much of my work ended up being creating user interfaces using HTML, JavaScript, JQuery, Bootstrap, and other front-end libraries. Primarily I worked on creating the website UI for a client's website refactoring, based off Sketch diagrams, website templates, and other notes from previous meetings.

    In addition, I also spent a couple weeks creating the dashboard for Virtual Studio's Transport Genie project, where I made use of another template to get started as well as Bootstrap. For that project, I worked closely with the rest of the Virtual Studio team who were focused on the back-end and database implementations to connect the front-end to the back-end APIs.

  • Organization and Time Management

    One of the challenges during my co-op was to keep on top of the many tasks that were assigned to me as part of primarily a 3-man team working on a client project.

    I received many smaller tasks on a daily basis in addition to the larger ones I was working on. To keep track of them, I used excel spreadsheets to track upcoming tasks as well as tasks I completed on a daily basis. Each week I would submit the spreadsheet of completed tasks to my supervisor and each day I would send a summary of what I worked on to my teammates so that we could stay aware of our project's status.

Review of Goals

I believe that I was able to accomplish all of my goals this term successfully. As my primary responsibility was creating user interfaces using HTML and JavaScript, and since we had regular visits with our client, I spent much of my time working towards the first two goals on communication and UI design.

I also believe my third goal on organization and time management was a success. While we did not use a project management system like JIRA, I was able to stay on track through the user of spreadsheets and daily updates in my teams group messaging app, Telegram.

Job Description

Development Team

In my co-op, I was primarily part of a 3-person team working on refactoring a client's website. My main responsibilities included creating the website's user interface, as well as some back-end work in Python and database work in SQL.

Knowledge & Skills

​​The main piece of knowledge I required during this co-op was in UI design and development. Going into the co-op, I had just completed the CIS*2170 User Interface Design course, where I learned a lot about elements of a good interface, which I was able to apply.

As for UI development, I did not have too much experience with web development, outside of a course project, so I had to learn and improve as I went. By the end of 4 months, I had become very confident in my ability to create HTML interfaces using libraries such as Bootstrap and JQuery.

In addition to front-end work, I also worked with Python and Python frameworks like Pyramid to create server endpoints to send and retrieve data. I was fairly familiar with Python going into the co-op, so it was not hard to pick up and learn about server development using Pyramid.

In order to actually retrieve and send data, I also had to work with the database we were using. My only previous experience with databases was from the CIS*2750 Software Systems Development and Integration course, where we used basic MySQL queries. After a brief refresher, I was able to confidently create basic SELECT, UPDATE, and INSERT queries, and then begin learning about creating and altering tables/columns.

​ All in all, I was able to come out of the co-op learning a variety of new skills I didn't expect to learn when I started.

Conclusions

Summary

For my second work term, my role involved a lot more development and I was exposed to a new variety of languages and libraries.

My primary goal of learning about and improving in UI design also ended up being my primary responsibility. I was able to expand my knowledge about web design from my UI Design course and apply it by developing website pages. In addition, I unexpectedly learned a lot and subsequently became more comfortable in database programming, which will help me in future courses, particularly the Databases course I will be taking, as well as in future jobs.

Another new experience I was able to have during this work term was regular face-to-face meetings with clients. It gave me a good opportunity to view and participate in these types of meetings, and build upon the knowledge gathering requirements, gathering feedback, and doing time estimation that I received from my Software Design courses.

Altogether, I very much enjoyed my time working a JRS Virtual Studio, and am planning on returning for my next co-op.

Acknowledgements
  • Joel Sotomayor - President & CEO
  • Peter Bacalso - Machine Learning Developer
  • Zak El-Bastami - Software Engineer