Work Term 1 & 2

About the Company

Tulip Retail was founded in 2013 with a mission to empower retail store workers. By taking the best parts of an online shopping experience, Tulip took their mobile platform to conventional brick and mortar stores. Today, Tulip’s core products include simple-to-use mobile apps that enable store associates to look up products, manage customer information, and communicate with clients. Check out the clip below of Tulip in action:

Working at Tulip

Tulip has a unique and engaging work culture. There is a mutual understanding that is shared among everyone - your success is everyone's success. Hence there was always a helping hand if I ever needed one. The work was interesting, challenging, and more often than not collaborative.

Tulip is based out of Toronto, however, they also have an office in Kitchener’s innovation district and I usually worked out of there. At the beginning of my term, the Kitchener office was located in the historic Tannery Building, which was retrofitted into urban office space from a factory. Our building was directly connected to Communitech. We later moved into a bigger space in another building (which was ironically another retrofitted factory), this one was super modern and bright and was a cool environment to work in.

On my first day, I was greeted by our office manager Stephanie, who showed me to my desk where a MacBook Pro, iPad, cool welcome card, and some onboarding papers were waiting for me. She also introduced me to Connor, who was my assigned buddy and would help kickstart my onboarding. The onboarding process was smooth, the onboarding checklist on my desk helped me get my local environment setup on my new computer, and Connor was super helpful in answering questions I had.

QA was a newly formed team within the company. Mona, the director of the QA department, was also new to Tulip. Our team was comprised of Mona, Abdallah (another QA co-op), Pavel (QA specialist), and myself.

Learning Goal 1: Teamwork

Work within a software development team, learn team-related processes and become a proficient member of the team.

Despite being a brand new team in a medium-sized organization and having team members stationed in different offices (including contractors in Belarus), we assembled quickly. Our roles had never really been formalized prior to my starting of the co-op term. There was a limited amount of documentation pertaining to QA processes, but this allowed us to start on a clean slate (literally). We shared learnings and developed inter-team processes and worked very effectively with one another in a short period of time.


QA Associate

My role as a Quality Assurance Associate was to ensure the quality of complete technical solutions that were developed at Tulip. I focused largely on the consumer-facing product (in our case, our consumers were the store associates), which was comprised of web and mobile technology. As new features were introduced into the core-product, regression and exploratory testing became a standardized task I would undergo prior to every release.

QA was heavily involved in testing and validating a brand new and unreleased product offering which was a big undertaking for the whole company. I would connect with developers, product managers, and technical writers on a daily basis to exchange updates on what would later become “Clienteling”, a lean and scaled down version of Tulip aimed at smaller retailers. This would also be Tulip’s first turn-key product offering. Spinning up an instance of it should be as easy and fast as turning a key in the ignition - this was our primary goal.

At the beginning of the project, it would take several days to bring up an instance of Clienteling. In the end, it took no longer than two and a half hours to have a functional Clienteling cluster that could be connected with our mobile client. It was super gratifying to be involved in the successful completion of this important business goal, and have the product be delivered on time to our first Clienteling customer - Mejuri.

During this time, QA also began looking into possible automation frameworks. The core application included mobile and web contents, which made it all the more difficult as there was no out-of-the-box framework to automate such a hybrid application. I was tasked with developing a proof of concept using Apple’s native XCUI Test framework, where I utilized and improved my Swift skills and was introduced to mobile automation. Despite the XCUI Test framework ultimately falling short (in handling web contexts within the app), I gained a distinct skillset which was later instrumental in diagnosing and rectifying automation issues in the future.


Test Automation Developer

As I began my second term, I landed head first into mobile test automation. We utilized CodeceptJS - a modern (and new) test automation framework, whose awesome architecture enabled us to automate mobile/web contexts with a breeze. We had Yuri, a contractor from Belarus join our team along with Anthony, another fellow co-op student from the University of Guelph - go Gryphons!

I could rave about CodeceptJS all day. This framework enabled test automation for web contexts inside our mobile client, and could also be used solely for web. I mainly focused on mobile automation testing and in doing so, I would write automation scripts in JavaScript utilizing the Appium and WebDriverIO helpers. These scripts would then be compiled using the framework and executed using a special driver (software) on an iOS simulator. I also learned how to use other supplementary tools like Appium Desktop (mobile inspector) and Safari Web Inspector to identify element locators.

Learning Goal 2: Depth & Breadth of Understanding

Develop a deep understanding of the technology stack that is used to perform test automation on Tulip software products.

I created written documentation and instructional videos pertaining to our test automation framework, the creation of Tulip test environments, and other important team-related processes. This documentation was handy in the onboarding of Anthony and Gagandeep (our new developer). As the assigned buddy for both Anthony and Gagandeep, I was responsible for helping them get set up and start using the automation framework. Teaching and mentoring my new colleagues, as well as creating documentation, solidified my understanding and knowledge of the technology stack used in the test automation initiative.

CodeceptJS connects to several different types of helpers (and their APIs), enabling test automation for both web & mobile contexts (including web views inside of mobile apps).

Learning Goal 3: Problem Solving

Utilize unfamiliar tools and technology, and learn new processes to successfully complete complicated technical tasks.

The Test Automation project was a big undertaking, and the QA team utilized Microsoft Azure (formally Visual Studio Team Services) to track product bugs, manual test cases, and inter-team tasks. This tool was not easy to use and required some tinkering and even Googling to successfully get around. GitLab was used as the hosting service for version control using Git, which I had limited experience working with prior to Tulip. I read Pro Git, a book that was recommended to me which significantly contributed to my knowledge and understanding of this technical tool.


Final Thought

Tulip Retail was truly an incredible place to work. The people at Tulip contribute to a friendly and inclusive environment, which was instrumental in the development in my early career. I gained an interesting inside perspective into a fast-growing company and a large software development environment. The future definitely has much in store for Tulip, and I can see myself working here after graduation.

Left to right: Mona, Anthony, Gagandeep, & Me!

Acknowledgments

I would like to thank everyone in Tulip for an amazing 8 months, I would not have had such a meaningful experience without the help of some awesome people. Connor, Nick, Brad, Stephanie, Carrie (I could go on for a while...) - thank you for always being willing to help me, I truly appreciate it. Thank you to my incredible team members - Yuri, Gagandeep, and Pavel for inspiring me to work as craft, and teaching me new things every single day. Thank you to my fellow co-op counterparts - Anthony and Abdallah for making my co-op experience so memorable. Tulip was an incredible place to work, I learned more than ever, and this would not be possible without my amazing manager, Mona. The success I've had in my career thus far is due to a great degree of her support and encouragement. I appreciate Mona so much and value everything that I had learned from her.