With technology changing almost by the minute, how do you ensure your team stays current – while still writing code and meeting deadlines?

Hootsuite does many things to keep their engineering team up to date with the newest technologies. In my time here so far, one thing in particular has stood out: Guilds.

It’s clear that Guilds contribute many positives to a company, but for iOS developers it was even more crucial: in 2014, Apple released a new programming language for native iOS applications called Swift. IOS developers have been programming in Objective-C for years (we love our square brackets and infinite method declarations), so learning a whole new language seemed like a daunting task. How do you make time in your day-to-day life as an engineer to master a completely new language? This is where Guilds come in — they’re the perfect way to come together to learn as a team.

image00

Read More →

Sensu reports problems with your main page of your site, your Graphite graphs confirm that page execution time is off the charts, Pagerduty is blowing up your phone, and your Elasticsearch cluster is drowning in error logs…

Outages are a deluge of ALL CAPS emails, PagerDuty alerts, and text messages from our various monitoring tools. That’s good! A relief, too – I want to know when things are going sideways. That said, all these disparate systems each compete for my attention by shouting at me, and sometimes I find myself wishing for a ‘system’ that collects the noise and spits out just the facts – specifically, useful insight into our application issues.

Researching and implementing this ‘system’ has been the focus of my co-op term in Operations Engineering.

image03

Read More →

Asynchronous file uploading on the web and especially the mobile web used to be a struggle. Three reasons come to mind:

  • AJAX’s inability to send file data meant Flash and hidden frames became the go-to solutions
  • Mobile browser support for Flash ranged from non-existent to extremely limited
  • Many mobile operating systems — including older versions of iOS, Android, Windows Phone, and BlackBerry — lacked support in their browsers for the HTML input type=file attribute
Thankfully, the task of asynchronous file uploading on web and mobile web has been greatly simplified recently. In this post I share some considerations and details that went into the cross-platform, photo uploading app on our mobile web app.

image00

Read More →

Three out of ten visitors to your website are malicious bots. Crazy, right? A report from Incapsula states that humans only account for 44 percent of website traffic. So what makes up the other 56 percent? Bots, mostly bad ones.

“Bad” bots are those involved in a variety of malicious activities such as taking down servers through denial service attacks, stealing data from servers, hijacking servers, spamming ads, and more. How can you defend your sites/servers against these bots? Through basic network security practices, including Intrusion Detection/Prevention Systems (IDS/IPS). Here’s some information on our setup, and how to install one yourself.

Incapsula report

2014 Bot Traffic Report by Incapsula

Read More →

Love technology? High school student in grade 11 or 12 or self-taught? Live in BC?

Hootsuite’s Engineers would love to help you develop your technical skills and knowledge about people, process, and technology by working with you over the summer. You’ll pair with a mentor and work at our Vancouver office side-by-side with a passionate, egoless team of Engineers having fun building something bigger than themselves. Experience what it’s like to make a difference in people’s lives by building the products that turn messages into meaningful relationships.

There are opportunities at Hootsuite in all aspects of Engineering including software (both mobile and web), operations, security, and IT.

This is a paid position with a competitive salary.

Application instructions are at the end of this post.

Passive learning creates knowledge. Active practice creates skill.James Clear

Photo courtesy of @jaimestein

Read More →

Hootsuite sends millions of messages to social networks every day. This is our bread and butter, so any unexpected errors sending these messages requires that we quickly detect, diagnose and fix the problem. For example, was it because of a recently deployed code change, or a change in behaviour on the social network? Logs are an invaluable tool for debugging issues like this in production, but without easily searchable information about the context of the error, we could find ourselves looking in the wrong direction.

r0r252VR6WqPRsxngGUE_telefoon politie

By Davey Heuser via Unsplash.com

Read More →

A year and a half ago, I had never written a line of code. I didn’t know what a class or boolean was, or how you’d go about turning an idea into an actual working application. Fast forward to now: writing and shipping software every day as a co-op Software Engineer.

What is most unexpected about my takeaways from my co-op experience? The most important lessons are surprisingly not related to a specific technology or tool. My biggest takeaways from this experience are more abstract than these tools: they’re ideas that have redefined my expectations of what a job should and can be.

Photoshop work for my first personal coding project

Photoshop work for my first personal coding project

Makers Unite

I was always enticed by the idea of creating things. As a kid I used to draw a lot. I loved playing around with Photoshop, making logos and designs for ideas I had. I even learned a bit of HTML to put some of these on the web. There’s an innate beauty in putting time and work into something and having a tangible result to show for it at the end. There’s also those amazing moments of just pure happiness working in that iterative process.

Most of my coworkers share this same passion – everyone here seems to have a side project or hobby that involves creation in one way or another. There are musicians, podcasters, writers, artists, cooking enthusiasts, photographers, app developers, beer reviewers; this constant creative inspiration makes for an amazing work environment.

Read More →

It can certainly be puzzling. I can’t see how the pieces fit together and don’t know how to solve the problem, but I can always count on finding some clues online. I learn the most when I discover my own solution to a problem. I refine my knowledge by observing the solutions of others. Time melts when I’m working away.

Was that last paragraph about Rubik’s Cubes, or computer programming? Read it twice and you might see how it applies to both. It may not immediately be apparent, but I will show you how lessons I’ve learned from cubing apply to programming.

Cubing

From my Lightning Talk on Cubing (click to view on YouTube)

There’s No Secret Knowledge

Knowledge is not hidden. It’s not in a library on the other side of the world. It’s not behind a lock and key. You don’t need to achieve a certain rank to gain access to it. Knowledge is everywhere.

Programming is retrieving knowledge and using it. As a co-op Software Engineer at Hootsuite, programming involves scouring the web for relevant Stack Overflow posts, and reading documentation on frameworks. Programming involves applying that general information to a very specific problem. This pattern of learning has been familiar to me long before I started programming: when I started solving Rubik’s Cubes in 2008. With no internet access through a smartphone, I carried three sheets of paper detailing everything I needed to know about the puzzle. These described 57 OLL and 21 PLL cases, and the algorithms to solve them. If I didn’t know a case, I’d look it up and use it. I learned that the world has answers for our questions, even before they’ve formed.

Read More →

“First day of your first job ever, no pressure”, said my mother. I was in a new city, going to a ‘big’ company and into a new role. That morning, I walked out of my apartment very excited and nervous, and promptly… got on the wrong bus (just like my sister predicted). Thanks, sis :|

Luckily, I’m overly punctual so I still arrived at the office an hour early. I walked inside a little tentative but soon relaxed because everyone was so welcoming. I began to feel at ease. Here I am, my first job and Hootsuite’s first IT Department co-op!

shameen-gill

Me & IT: Three Lessons

Like many 90’s kids, I grew up playing classic MS-DOS games which led me into being a computer hobbyist. As I grew up, I went through multiple phases, and it wasn’t until high school that I got the chance to reconnect with computers again. I learned that my school was offering a Java elective, and I was absolutely ecstatic to enroll in that course. This, ladies and gentlemen, was the beginning of a beautiful friendship with computer science.

Read More →