Workterms 1 & 2 at Zeitspace

January 10, 2019

Zeitspace logo

About Zeitspace

Zeitspace is a software product design and development consultancy. They were founded on Halloween 2016 and are currently located in uptown Waterloo. Zeitspace is different in that they do not sell their own software but rather their design and development expertise. Companies will pay Zeitspace for anything ranging from advice to product creation.

Zeitspace is a fast-growing company. When I was hired they had a total of nine employees, by the end of my work term they had a total of 15 employees including 3 Co-op students. They expect to hire many more employees this year.

Zeitspace is a company with a positive and friendly atmosphere. They have an open office layout with no cubicles that allows for easy communication with other team members.

Learning Goals

1. Learn and use many new technologies

These technologies include programming languages, libraries, and frameworks. My plan was to do work which is totally new to me and not being afraid of trying out new things. I got to learn many new technologies which are relevant in the web development industry. Some of the technologies I learned were, JavaScript, React, NodeJS, PostgreSQL, GraphQL, JQuery, HTML, CSS. One interesting technology I worked with was GatsbyJS. Gatsby generates static progressive web apps from React. It taught me how to build a web app following JAMstack principles.

2. Contribute more to project meetings

I have a more reserved personality, and I wanted to work on sharing my ideas in a group setting. To do so I worked on sharing and explaining my opinion more often. I did with a specific focus on project meetings because that is where I had the most trouble. In our weekly meeting, there was a portion called the retrospective. It is where everyone on the team reflects on the week and explains what they think the team should start doing, do more, keep doing, do less, and stop doing. The retrospective definitely provided a great platform for me to achieve my learning goals. This was definitely my most challenging learning goal. Although there is much room for progress, I definitely improved and my team saw it as well. I have learned that sharing my opinion can generate discussion and help not just myself, but others as well, with understanding the objectives of the team and the project.

3. Do some pair programming

What is pair programming? It consists of one programmer, the driver, who writes code and another programmer, the observer, who reviews the code as it is written. Ideally, there is a lot of communication between the driver and the observer, and the problem gets solved much quicker. I ended up pair programming twice. The first time, I paired up with a senior developer, and I was the driver. It was a confusing task and they helped me see things in different ways, which helped me to better understand the problem. The second time, I was the observer and helped my team member solve a few problems. Overall pair programming is an effective tool to speed up learning and task completion. I plan on using it much more in the future.

Job Description

I came into the job knowing nothing about web development and was given the opportunity of a three week ramp-up time to learn the technologies that I would be using on my first project. I ended up teaching myself Javascript and React. I read a lot of documentation and even created my own Tetris project. It was a small challenge that I created for myself in order to gain the knowledge of implementing a project from scratch.

During my time at Zeitspace, I had the opportunity to work on several distinct projects. All of the projects involved full stack development and followed the Scrum methodology. Following those methodologies, the team attended a weekly meeting consisting of a demo, a retrospective, and sprint planning. In a weekly demo, the team would demonstrate the progress of the previous week’s sprint to the client. A retrospective as mentioned earlier is where we reflect on the previous sprint and suggest anything that could improve the workflow of the sprint. Sprint planning is where we would discuss and decide on tasks that we would commit to finishing within a week.

The first project I worked on was a mobile first web app for Shore Centre. Shore Centre is a great place to go in Waterloo for information regarding sexual health options, resources and education. Zeitspace had worked with them previously and had developed a web app that can help anyone get a referral to the abortion provider in southwestern Ontario that best meets their needs. I worked on it with my boss Mark, who is a designer, as well as two full-time software developers. Our job was to improve upon the existing app in order to get it ready to work across all of Canada, rather than just southwestern Ontario. I worked on all portions of the app including what could be viewed by a user looking for a referral, and the content management system or CMS. One particular task that I completed was implementing a Google maps location autocomplete dropdown into the app. So essentially a user would type their location into a text field and locations similar to the input would be displayed below. While this was all handled mostly by the maps API, the task involved a lot of design. I got help from Mark and in the end, I implemented a solution that minimized any friction for the end user. This was an important task as it got me thinking not just about making a solution that works, but rather, a solution that works well for the end user.

The second project I worked on was for Fluxible. Fluxible is Canada’s user experience festival. I worked with the same team that I had on Shore and phase one of the project was to develop a web schedule app for Fluxible conference events. It was complete with a CMS and made from scratch in under 3 weeks just in time for 2018’s conference. We got it done using Gatsby and the Netlify CMS. While the Netlify CMS was quick and easy to implement, it lacked many features and was rather difficult to modify. Therefore phase two of the project was to create our own CMS from scratch with all of the features that the Netlify CMS lacked. This time around I had the opportunity to work with two other Co-op students. The completed CMS was much easier to modify from a developers perspective. It also contained more features and an improved design, which made it more useable for the end user.

Conclusion

I am glad to have had the opportunity to work at Zeitspace. This was my first job involving computer science and my Co-op at Zeitspace has confirmed that I chose the right career path.