Handshake Logo
Handshake Logo

Handshake Blog

From Handshake engineers to product designers to interns, hear stories and read insights from every team to get the full picture of life at Handshake.

Pair Programming at Handshake

Nov 30, 2017 by Chris Schmitz

I’ve noticed the topic of pair programming can be polarizing. Some developers swear by it, while others don’t see the value and feel strongly that they can produce better results alone. Wherever you fall on this spectrum, I’m here to convince you that pair programming can serve a purpose in...

Read more

How We Made Handshake More Accessible

Sep 20, 2017 by Jason King

Here at Handshake, one of our core company values is that we are Empowered by Diversity. Part of being empowered by diversity means that we make our platform easy to use for the entire diverse population of college students across the country, including those that are blind and visually impaired....

Read more

Oh, the Places You'll Go!

Aug 14, 2017 by Samhita Karnati

Exploring Student Career Trajectories When I was a freshman I thought I knew what I wanted to do post-graduation and the steps that I needed to take to get there. Growing up in the Seattle area, surrounded by family and friends working at Amazon and Microsoft, I became interested in...

Read more

Redux at Handshake

Jun 28, 2017 by Dan Brewster

Here at Handshake, we’re always working to improve our end-user experience, and a key part of that is making it easier for developers by having a great toolset and stack. Among other things, that means that we’ve been busy converting significant parts of our product to React, which involves a...

Read more

How We Ship Code Continuously at Handshake

Apr 4, 2017 by Scott Ringwelski

Are you interested in scaling observability, improving deployment reliability, and continuous delivery? We are hiring for various site reliability and devops engineering roles! We’ve previously written about our journey towards practicing continuous delivery. Most recently, we wrote about Blazing fast builds with buildkite which outlines our efforts towards achieving fast...

Read more

Speed and Consistency: From Inception to Implementation

Mar 31, 2017 by Spencer Miskoviak & Brad Turner

One of the goals we outlined for the transition to React and TypeScript was “a well-documented, component-based design system.” We’ve made strides towards this goal and have built a solid foundation to continue enhancing components.

Read more

PostgreSQL and the Lock Queue

Feb 27, 2017 by Matt Hickman

Here at Handshake, we deploy our site multiple times a day. Postgres is our primary data store, and since many migration operations are very cheap with Postgres we usually bundle database migration alongside our deploys. For this to be successful and not negatively impact performance during peak usage hours, we...

Read more

Performance testing your web application

Dec 22, 2016 by Marc Chung

Fall signifies the start of the school year, and with that a renewed interest in the job search. At Handshake, it’s our busiest time of the year. This past summer, we decided to verify that our application could handle forecasted student traffic.

Read more

Making your specs bulletproof. Tips and best practices for identifying and fixing bad tests

Nov 30, 2016 by Maria Verba

During my first couple of months at Handshake, I primarily focused on learning the product and making sure our team productivity is high by maintaining the health of our CI build. Our builds were generally good, but from time to time we ran into seemingly random failures that I took...

Read more

Our Experience Migrating to React

Nov 10, 2016 by Chris Schmitz

We are in the process of migrating our front end from server rendered views with jQuery and Knockout (KO) sprinkled on top to TypeScript and React. It’s been a few months now since we started going down this path and we’ve shipped some big updates in our new stack. We’ve...

Read more

Blazing Fast Builds with Buildkite

Oct 28, 2016 by Scott Ringwelski

Handshake ships new code multiple times a day, continuously. This fast deployment pace allows us to build and maintain features quickly and safely, but also pushes the build process to its limits. One of these limits is the test suite. When doing continuous delivery, a fast test suite becomes paramount....

Read more

How We Use Knockout

Aug 12, 2016 by Brandon Gafford

Here at Handshake, we’ve been successfully using Knockout in production for several years. In a codebase the size of ours, one of the major difficulties is balancing maintainability with the ability to make changes quickly. A key strength of Knockout is its focused approach to the presentation layer. This makes...

Read more

Virtual University Career Center on Heroku Helps Students Nationwide Find Jobs

Jul 21, 2016 by Heroku

“The Handshake platform is built primarily on Rails, with one small internal app on Phoenix that allowed the team to experiment and learn more about Elixir. Their front-end uses Turbolinks and Knockout.js, although the team is currently transitioning front-end code to Typescript and React.”

Read more

Testing a Rails Project Structure, Dependencies and More

Jun 1, 2016 by Scott Ringwelski

At Handshake we rely heavily on automated testing. This of course includes unit tests, integration tests, and UI testing which one might consider the “normal” tests for a web application. However, tests and specs are a very powerful tool that can go beyond just “normal”. Especially as an engineering team...

Read more

Tackling Flaky Capybara Tests

Mar 15, 2016 by Jordon Dornbos

At Handshake we heavily rely on automated testing to protect against regressions and to give us confidence and speed when writing and deploying code. Some of the technologies we use to test our code include RSpec, Capybara, FactoryGirl, and occasionally Selenium. As our application grew over time and we moved...

Read more

Quickly inserting thousands of records in rails

Jan 26, 2016 by Josh Warfield

Heads up! We’ve open sourced this into a gem since writing this post. Check it out on GitHub I love ActiveRecord. It does so many things so well. Hiding horribly verbose SQL queries behind concise, readable ruby; magically knowing that the foreign key for has_many :media is medium_id; replacing arcane...

Read more

Functional Aspects of Ruby

Jan 22, 2016 by Brandon Gafford

Introduction If you think of an indecipherable sea of parenthesis when you hear the term “functional programming,” you’re not alone. Functional programming can seem daunting, alien, and impractical, especially coming from a solid background in an imperative or object oriented language like C or Java. You might have seen or...

Read more

My Experience at Handshake

Jan 19, 2016 by Spencer Miskoviak

I’m currently a third year Student at Michigan Technological University studying Software Engineering and am a Full Stack Engineer Intern at Handshake. The past two summers I interned at two different corporate companies and had positive experiences. However, throughout both I felt limited in what I could contribute and my...

Read more

1 to 1000 - Scaling a Rails App on Heroku

Jan 15, 2016 by Drew Zader

When I first started at Handshake our daily active users count was in the hundreds. Over the course of a few months that number has grown by about 10x. Thankfully Heroku and its ecosystem has made the process of scaling with minimal investment in infrastructure super easy. Of course, any...

Read more

Software Development is a Team Sport

Oct 4, 2015 by Scott Ringwelski

Github Universe wrapped up a couple of days ago. It was absolutely wonderful. I’ve learned tons about building, collaborating on and deploying software. I’ve got a chance to hear from some of the best in our industry (and from other industries, too) in the form of incredibly compelling stories. There’s...

Read more

Dealing with Time Zones in Handshake

Sep 21, 2015 by Jordon Dornbos

At Handshake it’s very important for us to display dates and times correctly to our users. Users rely on us every day to be on time for events, career fairs, and interviews and it would be unacceptable to display an incorrect time. On the surface time zones seem to be...

Read more

Switching from retire to elasticsearch-ruby

Jul 3, 2015 by Scott Ringwelski

Recently at Handshake (we’re hiring!) we transitioned our rails application from using the retire gem to elasticsearch-ruby. There were a few reasons for the upgrade. First and foremost, our provider found.no (who are absolutely phenomenal and really know their stuff. So much so that elastic, the company behind elasticsearch itself,...

Read more

Monitoring your Software for more than just Uptime and Bugs

Feb 15, 2015 by Scott Ringwelski

I’m not really sure what this post will be about yet, other than how effective and interesting I’m finding monitoring services outside what one might think the core tools are. I’ll be mostly talking about SaaS, but without a doubt it applies to all. You may be thinking — that’s obvious, of...

Read more

On Code Review Awkwardness

Jan 17, 2015 by Scott Ringwelski

Code reviews are awesome. They give team members insights into what changes are happening in the code base, reduce the number of bugs (and does so early on to reduce the cost of bugs), and allows team members to learn from eachother from reading other people’s code. The advantages are...

Read more

Load more