July 17, 2017

Interning with the Contactually Engineering Team

Title slide bg wide

In April of 2017 I began a four month internship at Contactually in DC. Prior to my internship, I graduated from a Coding Bootcamp in New York City in September 2016. I spent the last 3+ years working in Human Resources at a nonprofit and after attending the World’s Maker Faire, which renewed my interest in technology that I had as a child, I decided to switch careers to tech. Before entering the world of HR, I worked as a Specialist at an Apple Store. As a result, I brought my love of technology and experiences at Apple with me to my HR position and found myself creating and integrating technological solutions into existing HR processes. When I’m not coding I enjoy tinkering with robotics, crafting dollhouse miniatures, and all things horror (movies, books, podcasts, etc).

Getting Started

My experience, like so many that have come from non-engineering backgrounds, for one reason or another is becoming more and more common. I was in a job that wasn’t challenging enough, happen to be in the right place at the right time, and stumbled upon the existence of coding bootcamps. After many months of research and self teaching, I jumped into this new world and over the course of a year I changed my life. It wasn’t an easy transition by any means, but it was definitely worth it. I graduated from Actualize (located in NYC) in September 2016 and before graduating I began what would be a six month journey of searching for a place to test out my new skill set and learn from others in the industry.

In March of 2017, I was offered a paid internship with Contactually and accepting it was one of the best decisions I’ve ever made. I packed up a few of my belongings and headed to D.C. to officially begin my new life in the engineering world.

From day one I felt like a part of the team; the onboarding process was amazing and seamless. By the third day, I was already learning ReactJS and at the beginning of the second week myself and the co-engineering intern were given our main project, which I’ll discuss later.

Weekly Deep Dives into Specific Topics

I came to Contactually with an intermediate understanding of Ruby on Rails and AngularJS. The engineers had in place a series of what they called ‘Deep Dives’ or ‘Lunch & Learns’ to get everyone on the same page about different concepts, to learn more about ReactJS, and to provide insight into how certain features in the Contactually app work. Some of the deep dives that were provided included:

  • Debugging Tools — Reviewing the React and Redux browser tools to aid in debugging.
  • React Native — Seeing the how the web app translates to the mobile app.
  • React & Redux, MVI pattern and Entities — Learning about model, view, interactions (actions), entities (developed by Contactually), and sagas.
  • V2 API — As the Contactually app is being migrated from Backbone to React it was important to learn about that process especially as it would relate to the main project we’d be working on.

From Backbone to React

The main focus of my internship has been the conversion of the Contactually referral page from Backbone to React. To accomplish this, I was provided a sample React spec file, which contained several tests I needed to make pass by creating my own multifunctional page in React. This exercise was challenging and provided the opportunity to learn React with the framework knowledge I had from my experience with Angular and by reviewing similar Contactually React files. After about 2 days and some peer programming I had a high level understanding of React that I spent the rest of my internship diving deeper into.

The conversion of the referral page was very involved:

Old Referral Page in BackboneJS

  1. Aesthetically, the referral page wasn’t too difficult to recreate, however, functionality wise it was a bit more complex. Between connecting the React page to the API on the rails server and accessing the information to display on the newly created React page, let’s just there were a lot of learning moments along the way.
  2. Eventually the co-engineering intern and I split the work between the backend and frontend. I was pretty familiar with Ruby on Rails and wanted to learn more about React so I took the frontend.
  3. As the page was recreated we began to work with the Marketing team in order to understand their goals for the referral page and how we could accommodate the requested functionality.
  4. As we continue to work on the referral page the occasional roadblock comes up, but we’ve been able to find our way with the help and guidance from the engineering team.

New Referral Page in ReactJS

The Importance of the Sprint Retrospective

In Actualize, I learned about Sprints and was prepared to expect Sprint Kickoffs, and daily stand-ups, however at Contactually I learned about and came to appreciate / look forward to Sprint Retrospectives (aka ‘retros’). At the end of each Sprint the team takes an hour, usually on Fridays to reflect on how the week went, what could be done differently, and to share / demo anything they worked on during the sprint. During the retrospectives, I saw a lot of really great intentionality around fostering an understanding and positive team environment, which I haven’t experienced with other teams I’ve worked with.

Everyone has a voice. Overall the environment at Contactually is one of transparency and listening to the ideas of others, and the retrospectives narrow that down into the work the specific work the product and engineering team does.

What went well? Taking the time to celebrate the accomplishments and milestones met by the team is how the retros usually start. It’s great to see the celebration of new hires, progress made by the interns, and to hear shout outs thanking one another for support, whether it came in the form of peering on an issue or just lending an ear while someone needed to talk through a problem. While it’s easy to focus on things that need to change it’s important to take a moment to reflect and celebrate and this team definitely gets that.

What went wrong? / What do we need to improve on? The discussions during this part of the retros are often well thought out and solution driven rather than a general airing of grievances. It has been awesome to see the passion that many of the engineers display in voicing suggestions regarding workflow improvement.

Lastly, Show and Tell. It’s great seeing the new features that the engineers have spent many hours, tirelessly working and reworking that will soon be added to the app. This is a part of the retro that I think has had a really great impact and that I think many enjoy not only sharing but seeing the finished or nearly finished products of their colleagues, I know I do.

For millions of professionals, relationships are the backbone of a viable business. Whether you’re working with clients, prospects, or potential investors, Contactually helps you build stronger relationships with the people who can make you successful.

Contactually is looking for experienced software engineers who are passionate about solving complex problems with code. We’ve taken a novel approach to building business software — focus on the end user — and it’s been working! Our users love us. Come help us build a product that makes contact management easy and rescue 10,000s of people from the jaws of clunky, outdated software.

Interning with the Contactually Engineering Team was originally published in Contactually Product and Engineering on Medium, where people are continuing the conversation by highlighting and responding to this story.