Work Term 3 - Tulip Retail

Tulip Retail

About the Company

Tulip Retail was founded in April 2013 as a sister company to well.ca, an online health and beauty store based out of Guelph. Taking what they learned from ecommerce, Tulip took the best parts of online shopping to conventional brick and mortar stores. Their core product is a simple to use mobile platform designed for retail associates which enables them to perform tasks such as browse product catalogs, lookup inventory levels and reviews, and conduct point-of-sale transactions interactively with customers. While not available to the general public through Apple’s App Store, it can be found on the sales floor of retailers like Toys”R”Us, Coach, Chanel, and Saks Fifth Avenue. The following clip gives a quick run through of how the application is used:

Working at Tulip

Tulip was a great place to work. My coworkers were warm and welcoming, the work was challenging and interesting, and the many perks made it fun to come into work every day.

I had the opportunity to work at the company’s Kitchener office, located in the innovation district’s Lang Tannery building. My first challenge was finding their office. The Tannery is a historic building converted from a factory of sorts, so its layout isn’t necessarily the most intuitive and took a while to navigate.

The Lang Tannery Building

Thankfully I eventually found my way to the office and was welcomed by the office Manager, Stephanie, who introduced me around and introduced me to my supervisor, Milosz, who showed me the ropes from there. Waiting for me at my desk was a new Macbook Pro, a nice welcome card, and a getting started checklist which guided me through a tutorial set up for new hires to help them get up and running. There’s nothing worse than the anxiety of starting a new job without really knowing what to do– luckily with their streamlined onboarding process I was able to hit the ground running and get started on my first ticket by the end of the day.

Tulip Retail

The company has a second office in Toronto as well, and as an employee you were given the choice of working out of either during the week or even just working from home if you preferred. The company ran on core hours, where you were just asked you to be available between 11am-2pm where possible. Essentially, you to more or less given the option of working whenever from wherever so long as it totaled to 40 hours at the end of the week. Between the lax work hours, free weekly catered lunches, people bringing their dogs to work, and seating that ranged from exercise balls to sofas, I almost felt as though I stumbled into some time of hipster compound rather than a tech company, and to be honest I was kind of apprehensive at first.

Learning Goal 1 (Written Communication): I would like to improve my ability to collaborate with others over the course of the co-op term. Soft-skills like communication are often emphasized by employers in this field. Real world software development happens in teams and the ability to communicate technical ideas with others effectively is important to hone. Between the main development team being split between two offices, having the option to work from home, and collaborating with Belorussian contractors, this often takes place via Slack, code commit descriptions, and issue ticketing systems.

But as it turns out, everything worked out fine– even though we had team members stationed out of both offices, along with a couple of contractors working out of Belarus, we just held our daily scrum meetings over Google Hangouts and communicated over Slack. By putting a little bit more effort up front into documentation, test cases, coming to scrum with well-prepared notes, I found it just as easy working with the rest of the team despite not necessarily physically occupying the same space at the same time.

Full Stack Developer

There are three main categories of developers that work at Tulip: mobile, who work on the iOS client and front-end of the application, development operations, who manage systems administration-related tasks along with internal development and deployment tooling, and finally full stack, the group that I fell into, who are generalists. Before starting on at Tulip, this is the sort of position I saw myself working when I graduated, so I was really exciting to be able to get an idea of what it would be like, and to see if I would be a good fit for it.

Day to day, my main duties revolved around back-end integrations for the the high-end retail chain Saks Fifth Avenue. What this consisted of was integrating the Tulip retail platform with Saks’ data and tailoring the service to their needs. This involved tasks such as writing data import scripts, designing internal APIs to communicate between Saks’ servers and and the tulip iOS client, and developing an inverted index to facilitate searching so that data could be retrieved quickly within the client application. I came aboard at a particularly interesting time during the development process, about midway through the project. The timing ended up working out well because my last day falling on the delivery deadline for phase one of deployment. This kept me pretty busy right up until the end. Even though it ended up being a lot of work towards the end, it was gratifying being able to leave on a high note, with a sense of completion being able to hit that target.

The following is a rough diagram of software stack we used at tulip. As a full stack developer I had an opportunity to work on more or less everything pictured below less the iOS application, however even then I often had the opportunity to work in conjunction with mobile developers to develop new features for the mobile client.

Tulip Software Stack

Unlike my previous coop terms, I actually had some familiarity with Tulips software stack and infrastructure. We did the bulk of our work in PHP and MySQL, both of which I had prior experience with. Although I always like the challenge of trying new things, it was refreshing coming into the job with the ability to be productive on the onset and being able to carry some semblance of confidence. This time around, I was able to refine my existing skill set instead of starting from scratch. One of my goals was to become more proficient working with databases.

Learning Goal 2 (Technological Literacy): Unlike that of my previous coop experiences, I came into this work term with a working knowledge of the technologies and tools that I typically use day to day. I’m getting comfortable working with PHP, Git, Solr, Docker, AWS, but one thing that I’ve been meaning to get better with is working with SQL. I was introduced to MySQL briefly in my CIS2750 class last year, played with SQLite and Microsoft SQL Server at my previous two coop terms, and have ventured onto using MongoDB and Redis in my own personal projects. Databases are useful, have a tendency to be a performance bottleneck in system design, so I would like to learn how to use them more effectively.

Although Tulip’s platform had been adapter for a dozen or so other clients, none had anywhere near the magnitude of data that Saks had and scaling was one of the main difficulties they faced. Whereas importing an product delta file for a customer like Coach would take a few hours, Saks could literally take weeks. Since these scripts needed to be run daily, this obviously was not going to work. Unlike other retailers who simply tracked inventory at a product level, Saks tracked products at a per-store variant level. Take for example a T-shirt– while another retailer may just store data for “T-shirt”, Saks would have an entry for a blue medium T-shirt at store X, and others for each other possible permutation of size/color/location combinations. In order to scale for this level of complexity, we needed to leverage data caching strategies, using tools like Memcached and Redis, along with optimizing lookup times using software like Apache Redis– all of which were new for me.

Final Thought

Learning Goal 3 (Networking): As my time as an undergraduate draws closer to an end, I find myself not only reflecting on immediate concern of where I’d like to be on an upcoming work term, but where I might want to start my career. While it may be premature for assumptions or commitments, I can easily say that Tulip is a place I could see myself working after graduation– the people are great, the work is interesting, and its an up and coming company, the kind that you can grow with. With that in mind I’d like to double down on my networking efforts to demonstrate my value, make genuine connections with my coworkers, and position myself for employment after convocation.

I’d like to thank everyone at Tulip for what turned out to be an amazing work term. Tulip Retail was a great place to work, and perks aside, it was the people that made it. It was interesting getting an inside perspective into the company as its began to gain momentum and grow at such an impressive rate. I can’t wait to see what the future holds in store for the company, but its definitely somewhere I could see myself being proud to work upon graduation.

Lineup

Tulip’s 2017 coop lineup– four out of six representing the University of Guelph, go Gryphons!