Hashrocket

menu
  • Work
  • Team
  • Services
  • Blog
  • Contact
1-904-339-7047
Profile picture of Craig Hafer

Posts by

Craig Hafer

  • Github
  • Linkedin
  • TIL
  • All Posts
  • Ruby
  • PostgreSQL
  • Heading image for My Rails World 2024 Experience

    My Rails World 2024 Experience

    by Craig Hafer

  • Heading image for Using Tailwind to style child and sibling elements

    Using Tailwind to style child and sibling elements

    by Craig Hafer

  • Heading image for Generated Columns in PostgreSQL

    Generated Columns in PostgreSQL

    by Craig Hafer

  • Heading image for Basics of Shadow DOM

    Basics of Shadow DOM

    by Craig Hafer

  • Heading image for Querying for JSON Arrays in Postgres

    Querying for JSON Arrays in Postgres

    by Craig Hafer

  • Heading image for Range#include? vs. Range#cover?

    Range#include? vs. Range#cover?

    Ruby by Craig Hafer

  • Heading image for Dealing with nested JSON objects in PostgreSQL

    Dealing with nested JSON objects in PostgreSQL

    PostgreSQL by Craig Hafer

  • Heading image for Using Target "_blank" Properly

    Using Target "_blank" Properly

    by Craig Hafer

  • Heading image for Daily Update in the terminal

    Daily Update in the terminal

    by Craig Hafer

  • Heading image for Using Match vs. =~ in Ruby

    Using Match vs. =~ in Ruby

    Ruby by Craig Hafer

Subscribe Today!

Stay ahead of the curve. Receive valuable blog posts, resources and event notices right to your inbox.

Hashrocket
  • Home
  • Work
  • Team
  • Blog
  • Contact
  • Services
  • Brand
  • Today I Learned (TIL)
  • Map marker

    Jacksonville Beach

    320 1st Street N #711
    Jacksonville Beach, FL 32250

    Location arrow
  • Map marker

    Chicago

    661 W Lake St. Suite 3NE
    Chicago, IL 60661

    Location arrow

Phone 1-904-339-7047

  • Facebook Facebook
  • Twitter Twitter
  • Github Github

© 2025 Hashrocket