TeamSnap Logo
Log inFind My Team
  • Solutions
    • For Business
      For Business

      Tools for clubs, leagues, tournament organizers, and associations to run their business

      For Teams
      For Teams

      For coaches, players & fans to stay connected on our top-rated mobile app

      Promo image
      • Overview
      • Program ManagementManage all aspects of your organization
      • SponsorshipAccess our network of opportunities
      • RegistrationPayments, dues, and more
      • TournamentsBuild and manage your events
      • PaymentsA better way to manage payments
      • Website BuilderProfessional & mobile friendly sites
      • SchedulingAutomate games & practices
      • Services & SupportIndustry-leading account support
      • MessagesSimple, reliable communication
      • Get started!Chat with our team right now
  • Pricing
  • Resources
    • Community

      Our mission is to enhance the lives of kids by enabling participation in sport

        Other resources
        • Blog
        • Coaches’ Corner
        • For Business Resources
        • TeamSnap Updates
        • Help Center
        Company
        • About
        • Careers
        • Partners
    • For Brands
      • Build relationships in the moments that matter.

        Convert families into superfans with TeamSnap for brands.

          • OverviewThe #1 way to reach the Chief Household Officer
          • AudienceLearn about our audience and network
          • CapabilitiesExplore our products and measurement solutions
          • Download Media Kit

      Find My Team

      Sign upLog in
      Sign upLog in
      • Home
      • Ruby SDK
      • API
      • API Help / Feedback

      Tech Blog

      The Interplanetary SpaceBlag of TeamSnap Engineering.

      How We Deploy At TeamSnap


      Deploying code is traditionally an annoying process in any company. At TeamSnap, we have made several strides to streamline this process and remove unnecessary hurdles. Removing these obstacles not only improves how often we can deploy and how quickly, but decreases the time a developer is involved in the deployment, increasing productivity and overall happiness.
      There have been many improvements to this process over the last year and a half. First we automated away most of the tedious tasks...

      Continue Reading
      Image of engineering blog author: Rand GirardRand Girard
      • deployment

      Queuseful Experience


      As a fresh-out-of-school junior developer, joining an engineering team for the first time is a daunting experience. After graduating school I believed I had the knowledge, tools, and even the experience needed to hit the ground running… but I was in for a rude awakening! It was naive to think that my sandboxed experience, one-off algorithm challenges and personal projects where anything like a production application supporting millions of users and backed by an engineering team of 20-30...

      Continue Reading
      Image of engineering blog author: Mark EvansMark Evans
      • Pairing
      • Training

      Client Compression in mysql2


      Recently our Ops team has wanted to experiment with client compression on MySQL to help alleviate some internal network congestion. After much trial and error we hit upon a solution for the mysql2 gem in Rails 2.x, 3.x, 4.x and Sequel. I hope this helps others struggling to find a way to do this. Comeback soon to see what effect Client Compression had on our network.

      Continue Reading
      Image of engineering blog author: Shane EmmonsShane Emmons
      • Ruby
      • MySQL
      • Rails

      Using Github as a Knowledge Base


      Google reports 109,000,000 results for the search query “Knowledge Base”. 65,300,000 are returned for “Knowledge Base Software”. As a software developer, that ratio strikes me as about right - developers love re-inventing the wheel and I enjoy tongue in cheek intros for blog posts. ;-)
      So, as the TeamSnap engineering team continues to grow from a humble base of a handful of developers and LOC's under our belts to a more mature organization, it was time for us...

      Continue Reading
      Image of engineering blog author: Kyle RiesKyle Ries
      • remote work
      • github
      • knowledge base

      Implementing pipe in Ruby - Part 2


      Last month, Shane Emmons did a post on implementing pipe in ruby. Check out his post here.
      As Shane mentioned, the unix pipe operator is extremely powerful and simple to use / understand. The result of the first operation is passed as the argument for the next operation and so on. Last summer, shortly before I came onboard, Shane implemented our first version…

      Continue Reading
      Image of engineering blog author: Dan MatthewsDan Matthews
      • Ruby
      • Unix

      Quality of Service


      I'm going to take off my MySQL DBA hat and put on my network admin hat for a moment and talk about Quality of Service (QoS). This is largely in the scope of using QoS for residential and small office setups where you largely see non-symmetric connections, often with fairly low upload speeds, at least here in the US. My own home connection is a U-Verse FTTP install that gives me 50mbps down and a measly 5mbps up.

      To start, maybe it's best to play out a common scenario. You're trying to get some...

      Continue Reading
      Image of engineering blog author: Tim SoderstromTim Soderstrom
      • Network
      • Hardware

      Vagrant - A Developer's Best Friend


      Have you ever broken your development environment and dreaded of the hours it will take to rebuild your environment? I certainly have, on multiple occasions. This is where Vagrant comes to the rescue! Vagrant is an excellent tool to build disposable, lightweight development environments. It leverages the power of Virtual Machines (VM) to allow you to easily build customizable images, so you can quickly bring up a custom environment.

      To start, simply download…

      Continue Reading
      Image of engineering blog author: Tyler KnappeTyler Knappe
      • DevOps
      • Vagrant
      • Ruby

      Extracting Features into a Gem


      Since the first gem was born, gem authors have had to toe the line between configurability and supportability. This post covers a facet of this conundrum - when and how to extract certain functionality from an app into a gem and how to support low level configurability. For those interested in a higher level discussion of gem configuration patterns, Brandon Hilkert does a good job covering this landscape in his blog post Ruby Gem Configuration Patterns.

      So, what does “low level” configurability...

      Continue Reading
      Image of engineering blog author: Kyle RiesKyle Ries
      • Ruby
      • Metaprogramming
      • Open Source

      Introducing Crosby


      Recently, we've been working on migrating email from our 'Classic' codebase into our 'NextJenn' architecture. If you've ever worked with ActionMailer emails, you know that this is a bigger task than it sounds.

      One issue in particular has proven very tricky. Due in part to differing regulations in different geographic locations (I'm looking at you, Canada) and in part to the team level customization possible, there are dozens of different permutations for many of the several dozen emails that...

      Continue Reading
      Image of engineering blog author: Dan MatthewsDan Matthews
      • Ruby
      • QA
      • Email
      • Open Source

      Implementing pipe in Ruby | TeamSnap Ruby SDK


      The unix pipe operator is an extremely powerful and simple tool. With it you can do amazing feats, like kill vagrant when it's misbehaving…

      Continue Reading
      Image of engineering blog author: Shane EmmonsShane Emmons
      • Ruby
      • Unix

      Terminal Color Scripting


      I tend to multitask far more than necessary, and will often ssh into multiple remote servers at once. I also tend to clear my scrollback regularly, since I like my workspaces neat and tidy.

      Unfortunately, that tends to lead to this problem:

      Continue Reading
      Image of engineering blog author: Zach GardnerZach Gardner
      • Shell
      • OS X
      • All Posts11
      • deployment 1
      • Pairing 1
      • Training 1
      • Ruby 6
      • MySQL 1
      • Rails 1
      • remote work 1
      • github 1
      • knowledge base 1
      • Unix 2
      • Network 1
      • Hardware 1
      • DevOps 1
      • Vagrant 1
      • Metaprogramming 1
      • Open Source 2
      • QA 1
      • Email 1
      • Shell 1
      • OS X 1
      Products
      Sports Organizations
      • Get a demo
      • Features
      • Pricing
      • Tournaments
      • FAQs
      Coaches or Team Managers
      • Features
      • Pricing
      • Tournaments
      • Get Started
      Parents or Athletes
      • Features
      • Pricing
      • Find My Team
      • Get Started
      Sports
      Sports Organizations
      • Baseball
      • Basketball
      • Football
      • Ice Hockey
      • Lacrosse
      • Soccer
      • Softball
      • Volleyball
      Teams
      • Baseball
      • Basketball
      • Football
      • Ice Hockey
      • Soccer
      • Softball
      • +100s more
      Resources
      • Blog
      • Coaches’ Corner
      • Return To Play
      • For Business Resource Library
      • Skills & Drills
      • Press Releases
      • TeamSnap Updates
      • TeamSnap Help Center
      • Community
      • Why TeamSnap?
      Company
      • About
      • CareersHiring!
      • For Brands
      • Partners
      • TeamSnap API
      • Responsible Disclosure Policy
      • Youth sports team and sports org app Apple App Store Logo
      • Youth sports team and sports org app Google Play Store Logo
      • social-media-facebook
      • social-media-twitter
      • social-pinterest
      • social-instagram
      • social-video-youtube
      • professional-network-linkedin
      • social-tiktok

      TeamSnap Footer Logo

      Copyright © 2005–2025 TeamSnap, Inc.

      • Sitemap
      • Terms
      • Privacy Policy
      • California Privacy Policy
      • Your Privacy Choices