“You must feel the Force around you; here, between you, me, the tree, the rock, everywhere, yes.” – Master Yoda

The Danger of Team Debt

At her PyCon 2015 keynote, Kate Heddleston explains how a familiar engineering concept – technical debt – applies to any growing organization. Any technical system can accrue technical debt as a consequence of bad design. Heddleston argues that organizations can also accrue ‘team debt‘ as a consequence of bad design: where each person added to your team eventually decreases overall team productivity. Productivity drops because each new addition lacks an understanding about the team’s processes, cultural norms, how to do their job, corporate values, code standards, architecture, and more.

Steve Blank sums it up as “all the people/culture compromises made to ‘just get it done’ in the early stages of a startup.” It’s like death by a thousand cuts – each person’s inefficiencies compound to a point where their time and effort spent navigating your ‘system’ outweighs their time and effort spent shipping code.

This was exactly our situation in our Engineering group two years ago. Our team had tripled in size from 13 to 39 in the span of two years and was slated to double again to 78 in 2014. So much of our ‘just get it done’ approach lead to misaligned expectations and lack of understanding of our code base, our practices, and our culture. Symptoms of the problem trickled in to me periodically, but the depth of the situation really hit home when someone I had hired resigned and cited some of these issues in their exit interview.

That event radically shifted the way I looked at introducing new engineers.

Lechon Kirb photo via Unsplash.com

Read More →

Why Bother?

The obvious question that initially emerges is WHY? Why bother with all the hassle of migrating the code away from GitHub and maintaining the instances that provide the service on our own?

First of all, GitHub Enterprise offers us a more secure way to store the sensitive parts of our codebase by bringing the repositories inside our VPC. Furthermore, because the instances hosting the code and the ones using it are now much closer together, code provisioning can be done much faster.

Secondly, it is better to have some control over your downtime than to be at the mercy of GitHub (or any other service for that matter), which can lead to canceled deployments or angry developers who cannot pull their code. As frustrating as downtime is, it’s not a matter of ‘if’ it will happen, but rather ‘when’ will it will happen.

We chose GitHub Enterprise over other forms of repository hosting providers, like GitLab, because of the reasons above and because our developers were already familiar with the interface, features and embraced the GitHub flow. GitHub Enterprise is easy to update and it had a better API.

image02

Will it stand up in our Production Environment?

Before we could actually start using GitHub Enterprise in production, we needed to see if it could support our blue/green deployment system (more details on this can be read here). This meant that it should stand hundreds of instances that needed to pull their code from the repository, simultaneously.

To test this, we have used two r3.xlarge memory optimized instances, offering 32GB of memory and 4 vCPU, in a replication setup. This is what GitHub recommends for a seat range of 500 to 3000 people.

Read More →

The art of storytelling has existed since the dawn of time, and is one of the few things that has both changed drastically over the years and yet remains essentially the same. Technology has given us the printed word, theatre, movies and television, and more – but it can all be traced back to people gathering together to share experiences.

@mixhellereid shares her story - photo by @ivancouverite

@mixhellereid shares her story – photo by @ivancouverite

Hootsuite Labs is working to bring Vancouver’s tech community together to share stories about life in technology. Labs is the force behind some of our new products and initiatives such as the new Hootsuite Suggestions app and Hootlet, the Chrome extension that allows you to share content from anywhere you browse, and they’ve been very busy lately: in addition to their new blog, they’ve launched Venture This!: True Tales from the Tech Frontier with Rain City Chronicles. In their own words:

Venture This! is a live event series and podcast featuring real stories about life, love, and work experienced through tech-coloured glasses. Stories are told in front of a live audience, are 100% true, and offer a range of perspectives, from tech tycoons and young upstarts to the adventures and misadventures of total tech newbies. Every night reveals new insights into the strange and wonderful mysteries binding our connected world.
On Monday, June 29th, Venture This! had its inaugural event at Hootsuite HQ1. The topic was “Rejected!”, and featured storytellers from Vancouver’s large and diverse tech community sharing their stories of rejection in the tech world. These stories will soon be available as a podcast for you to enjoy, but in the meantime, check out the Tech Vibes review of the event:
The above is only a whisper of the richness of the personal accounts at the Venture This! event. With humour and honesty, the presentations provided relatable, cathartic, and cautionary stories of adversity, of external and internal origins, and coming out the other side alive.
Don’t miss out on the next Venture This! event! Sign up to be notified when the next session is announced, and come hear about the personal triumphs – and spectacular failures – from some of Vancouver’s best and brightest in tech.

Storytelling at Hootsuite! Photo by @mtippett

Storytelling at Hootsuite! Photo by @mtippett

Picture this: a group of new engineering Owls situate themselves pairwise at temporary desks arranged in our yoga room. With varying technical backgrounds, we ready ourselves for participation in two weeks of Scala & Akka immersion to acquire a certain level of fluency. After reading numerous books on the subject and completing Coursera’s Functional Programming Principles in Scala, what could a Scala & Akka Dev Factory offer us that we hadn’t already encountered?

As it turns out, the course offered more than just a great technical education. Our trainer brought to life the lecture notes, code samples, exercises, and group projects with both social learning practices as well as on-the-fly adjustment of the content in order to reinforce concepts in a really unique way. Some of these techniques included positive reinforcement from daily public code reviews, and pair programming with random partners who had varying skill levels and communication styles. Our daily input into the course also let us shape our classroom experience by driving the expansion of the course topics where we felt we needed it most. These shared learning experiences gave me and my cohort a kaleidoscopic insight into the course material.

June 15/2015 Cohort from left to right: Jonathan, Yasha, Philipp, Jason, Jodi, David, Scott, Mike S., Sim, Mike R., Ryan, Isha Photo Credit: Steve Song

June 15/2015 Cohort from left to right: Jonathan, Yasha, Philipp, Jason, Jodi, David, Scott, Mike S., Sim, Mike R., Ryan, Isha Photo Credit: Steve Song

Read More →

Upgrading a session storage system that services 5000 requests/second without downtime is no easy task. As part of continued efforts to harden our systems at Hootsuite, we moved from a legacy Memcached and MySQL session storage to a multiple availability zone Redis setup using Amazon ElastiCache. We ran into some issues along the way, but in the end we successfully migrated millions of sessions to the new system without any downtime. This post describes our strategy, the gotchas, and step-by-step of how we made this happen.

image04

Read More →

Noah Tajwar, Chris Bolton, and Emmanuel Sales

In March, Hootsuite kicked off our software engineering summer job for high school students. Response from our community was both surprising and delightful: 71 applicants, 18 phone screens, eight interviews, three offers, and three new Owls. So many stellar applicants made selecting just three super difficult. Why only three? Three is the number we can currently support with thoughtful and attentive mentorship.

Why does Hootsuite Engineering Offer Summer Jobs to High School Students?

Pre-co-op Co-op

Last Fall, Andrew (Product Manager, Web Operations) and Ajai (Chief Technology Officer) got talking about Science Technology Engineering and Math (STEM), co-op programs, and high schools. During the conversation, they hit on the idea of a software engineering summer job as a way to give high school students practical experience and mentorship. I like to call this the “pre-co-op co-op”.

A Successful Experiment

Chris Bolton is a national youth ambassador for The Next Big Thing, a local nonprofit foundation that empowers our next generation of entrepreneurs. Chris showed his high school app (at the time written with PhoneGap) and told us about his work in the community at the end of 2013. To help with his education, he joined our Mobile Web team on a part-time basis for practical experience and mentorship. He’s been building our mobile web application and APIs for our native iOS and Android applications for the last 18 months. Our experience with Chris gave us the confidence to expand this program further.

Lack of Options?

I’m unaware of any other summer job programs in software engineering for high school students in the lower mainland, but if you know of any, let’s get a dialogue going. Leave a note in the comments section so we can work together on developing, supporting, and marketing these opportunities.

What’s Next? How will Students Contribute over the Next Two Months?

The students will join a product team, pair with a mentor during onboarding, participate in all aspects of software engineering as a team, take part in our Q3 open space/unconference retrospective, work out loud in Guild meetings, write a blog post, give a lightning talk … and that’s just the beginning.

We all look forward to learning from this endeavour and working towards a practical, industry-lead educational outlet for high schoolers interested in STEM.

Welcome Chris, Emmanuel, and Noah!

Read about Chris, Emmanuel, and Noah… Read More →

Last week at Tech Fest Vancouver (a local recruiting event), I pitched the audience of ~700 on “why you should work for Hootsuite”, in two minutes, with no slides.

The shorter the time frame for a speech, the more effort required to distill only the essentials. Mark Twain said If you want me to give you a two-hour presentation, I am ready today. If you want only a five-minute speech, it will take me two weeks to prepare.” [1]

I spent some time thinking about why our organization is special, above and beyond the more obvious and public facing perks (a poor substitute for culture), and decided to tell a story about what motivates me to go to work everyday.

Channeling my inner rockstar.

Blinded by the lights. Photocredit https://www.facebook.com/techvibes

Read More →

The KISS Principle

The KISS Principle states that most systems work best if kept simple, avoiding unnecessary complexity. By applying this idea to the Hootsuite App Directory, we were able to make a massive difference in speed and functionality, while simplifying the overall process.

What is Hootsuite’s App Directory?

Hootsuite’s App Directory is a program for 3rd party developers to build apps and integrate them into Hootsuite web dashboard. We currently have over 100 apps in the App Directory, including popular apps like YouTube, Tumblr, Mailchimp and WordPress.org. These apps not only extend the dashboard’s functionality, but also provide great value to our customers.

Read More →

Each semester, Hootsuite Engineering hires five to ten cooperative education university students (co-ops). We treat them as full-time software engineers and give them real problems to solve. In the past two years, 34 co-ops joined our Engineering department at Hootsuite. Of those 34, ten of them (29%) joined us as full-time employees after graduation. We hope to increase this ratio as more of our co-op alumni graduate.

From left to right, Adrian Zhu, Jason Dippel, Paul Kim, Jon Jeffery, Mackenzie Marshall. Jason and Paul are currently co-ops on the Dashboard team, where Jon, Adrian, and Mackenzie are former co-ops now working full-time.

From left to right: Adrian Zhu, Jason Dippel, Paul Kim, Jon Jeffery, Mackenzie Marshall. Jason and Paul are current co-ops on the Dashboard team, whereas Jon, Adrian, and Mackenzie are former co-ops now working at Hootsuite full-time.

I have attended multiple co-op hiring events, and I am frequently asked “what does Hootsuite look for in a co-op?”. I personally hire co-ops onto my team, and review hundreds of applications every semester. I see many outstanding job applications, and want to share what I look for when reviewing them.

Read More →

It’s mid-April. Winter is over and spring has sprung, but it’s not quite nice enough yet to hit the beach (or roof) after hours. Your team has been working really hard, and could use a pick-me-up to celebrate their successes – something exciting that’ll get the blood racing and maybe work off some of that winter beer. At Hootsuite, we opted to set loose a wildly creative group of people with nothing more than imagination, vague guidelines, and a common goal. After all, what’s the worst that could happen?

How about a full 18-hole mini golf course that defied logic, gravity, and convention; a bunch of money raised for a great cause, and an evening unlike any other, even by Hootsuite standards?

On April 17th, we turned the second floor of Hootsuite’s HQ1 into a full mini golf course to raise money for the Special Olympics. Eighteen departments were selected to build a hole each, and each player donated $5 to join a random team of four. When the course officially opened at 5:30pm, many surprises were in store for our excited players. Read on for a small sampling of the creativity, ingenuity, chaos, and engineering triumphs that went into #hootputt 2015!

#hootputt pictures by Candice Charleton

#hootputt pictures by Candice Charleton

Read More →