Frontend Engineer, January 2016 - April 2016
If I previously thought I knew how to do front end, I was completely, absolutely wrong. Working for Sequence (San Francisco) taught me that it may be easy to do front end development (usually the area of development where most people get started), but it is very hard to do front end development well.
Sequence, a design firm, takes on design (graphic design, UI/UX (what they call 'service design')) and web development projects from clients. Usually, one flows into the other - the client approaches Sequence looking for new visual or UI/UX design and then wish to see it as a prototype. Afterwards, client companies then take the prototype that Sequence has built and integrate it with their own codebase to make it fully functional. Each client is different, but this is the general pattern. The level of integration with clients also differs on a case by case basis. During my time at Sequence, I worked on two major projects - Chipotle's Responsive Online Ordering System, and Facebook's Facebook for Business.
Chipotle's Responsive Online Ordering system was a complex front end system that handeled all online orders, from selecting components of the meal, to managing multiple meals, to paying for the order and checking out. (Wow - looking up the existing Responsive Online Ordering system, it looks like it received quite a few complaints).The hardest part of this project was implementing the front end logic that handeled all the possible ingredient checked states of the application. (What happens if you choose Chicken -> Steak -> Extra Portion -> Rice -> Guac, etc). The logic started out simple, with the intention of coneying how a responsive design would scale from desktop to mobile, but evolved into a complex multi-state application after client requests. I also learned to build a custom, light weight front end grid system to build responsiveness into the design. Despite many technical challenges, sometimes the hardest part was explaining to a client why font sizes do not scale in the same way that containers scale.
The Facebook project involved building a content management for one of Facebook's monetization channels - Facebook for Business. Facebook for Business is a site that teaches business and organization owners how they can use Facebook to have a wider audience reach and find new clients. This includes information ranging from how to make a company Facebook page, to how to manage advertisements through Facebook. After seeing some initial designed, I was recruited to provide technical guidance to a team of designers about how to build (design) a content management system. We used inspiration from Assemble.io to define what constituted as a "component," "module," and "page." (This alone was a massive undertaking - then imagine figuring out how these components and modules would translate between desktop and mobile? It was a nightmare, as you can imagine.) This was a lengthy multi-week process full of whiteboarding, meetings and drawings. From this stemmed a collection of reusable items that would be built by Sequence developers to be reused in the Facebook for Business CMS.
Working on these project gave me a lot of insight about how to properly use HTML5 elements, how to style in correct, efficient ways (not a single !important was found) and how to create lightweight responsive front end applications. I worked with build tools like Grunt and Gulp, used Handlebars and Assemble.io for the content management system, and framworks such as AngularJS, ReactJS and Jekyll. Hosting each prototype involved setting up a separate (private) EC2 instance so that the client could view the work.
While working at Sequence, I became frustrated with one of the designs when it clearly violated several accessibility principles. It turned out that prior to this, Sequence had spent little time on design for accessibility. I strongly insisted that this should change - not designing for accessibility means rejecting as many as 30 million potential customers before they even try to use the application simply because they cannot. I advocated for Sequence to adhere to WC3 AA accesibility guidelines, especially for large clients such as Facebook and Chipotle. (I wrote a 47 page report on Accessibility for school - ask me about it). Soon, accessible designs began to trickle into other projects (Chevron, NerdWallet) - clients were pleased with the changes.
And what would working at a design firm be like without participating in some design workshops? It was fascinating to learn about the design process that some of the lead designers at Sequence followed - in some cases, they were different from the design proceedures that I learned in my Systems Design Engineering program. However, overall the trend was towards user-centered design (and frequently getting feedback from the user), a concept that was very familiar to me from my own start up.
Overall, it was a wonderful experience to work at Sequence, San Francisco. Working for a design firm is very different from working for a company (they consider all companies as "clients"!). The atmosphere is more corporate. Deadlines are very strict. People are careful about billing their time since they are billing directly to a client. All in all, it was fascinating and different from the environemnts I had previously worked in. I am very grateful for the co-op program; it allows me to pursue new opportunities every four months that I may not otherwise explore.