Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    S

    Square Developer Blog

    developer.squareup.com · Company blog · on HN since 2019

    Engineering blog of Square, covering its Ruby tooling, API design, accounting systems, and engineering practices.

    Visit blogHN submissions
    ProgrammingLanguages & CompilersBusiness & Strategy
    What HN says

    HN cites it for Square's work on Ruby typing with RBS and Steep, its Racket-based OpenAPI DSL, and Caviar's word2vec menu recommendations.

    Stats for nerds
    47HN people shared it
    51linked in comments
    1.5Kstory points
    Jun 2023last shared
    2019people per year2023

    Top posts on HN

    1. 1
      RBS, Ruby’s new type signature language
      4 people · 511 points · first shared 2020 · 334 comments on HN
    2. 2
      Square’s Growth Framework for Engineers and Engineering Managers
      4 people · 486 points · first shared 2019 · 239 comments on HN
    3. 3
      Books: an immutable double-entry accounting database service
      3 people · 244 points · first shared 2019 · 65 comments on HN
    4. 4
      Taming OpenAPI using Racket to create a DSL
      3 people · 74 points · first shared 2019 · 47 comments on HN
    5. 5
      The role of an Engineering Manager and management philosophies
      1 person · 33 points · first shared 2020 · 2 comments on HN
    6. 6
      Expanding Square’s Platform Beyond Payments – New Orders API
      1 person · 29 points · first shared 2019 · 1 comments on HN
    7. 7
      Caching E-Commerce Data for the Web
      1 person · 11 points · first shared 2021 · Discussion on HN
    8. 8
      Kubernetes – Pod Security Policies
      2 people · 9 points · first shared 2020 · Discussion on HN
    9. 9
      “This is “how I tricked my co-workers” into using Racket.”
      1 person · 9 points · first shared 2019 · 6 comments on HN
    10. 10
      RubyKaigi and the Path to Ruby 3
      4 people · 8 points · first shared 2019 · 1 comments on HN

    What HN people wrote when they linked it

    • disposedtrolleySep 2021

      Very interesting idea, I'd love to see where it goes! This reminds me of Square's Racket DSL [1] for making OpenAPI tolerable, but perhaps a more pragmatic approach.

      The team I worked with in my previous job built a lot of tooling around OpenAPI (CLI, GitHub integration etc.) to try and improve the developer UX around creating, maintaining, and collaborating on large definitions. The OAS definition for the company's core product amassed ~60k lines of YAML. Some of the features you listed happen to solve some of the biggest challenges we ran into:

      > Type checks and autocomplete.

      The CLI tool we developed was able to parse an OAS (expressed in a single file or over multiple ones using $refs) into a tree structure. This allowed the tool itself to reason about the state of the OAS, but it was difficult to expose the same information to the user via an editor extension or language server.

      Utilising an existing language and all of its editor features to write the OAS to begin with would alleviate some of the pain points we saw when managing very large collections of OAS files.

      > Easy CICD integration.

      We built a whole GitHub integration that listens for webhook events (like PR opened, commit merged into master etc.) which then downloaded the OAS files from the affected repo, ran checks and validations, compiled them into a single monolithic file, uploaded the file to S3, and generated Markdown docs. I can imagine this process being much simpler if existing language tooling…

    • desmapSep 2020

      from Soutarowho who did the type system for Ruby 3:

      We defined a new language called RBS for type signatures for Ruby 3. The signatures are written in .rbs files which is different from Ruby code. You can consider the .rbs files are similar to .d.ts files in TypeScript or .h files in C/C++/ObjC. The benefit of having different files is it doesn't require changing Ruby code to start type checking. You can opt-in type checking safely without changing any part of your workflow.[1]

      So UX-wise I don't know. While it's nice to have them separated, you are just faster if you have types in the code in front of your face when the IDE warns. Otherwise you will context-switch on any warning/error. This could get significant since you code just based on the LSP's output sometimes for hours. The IDE could help here with showing the definition when warning but still, if you want to change the definition or want to see more than just a snippet you will constantly jump between files.

      Also .d.ts files were introduced to type old code and as an fallback and as a secondary option, At some point, Matz and Soutaro need to integrate types into the language itself to get the same level of productivity other typed languages offer, eg. Rust/Go/TS.

      The next thing is IDE support, anyone knows more?

      [1] https://developer.squareup.com/blog/the-state-of-ruby-3-typing/

    • lamchauNov 2019

      Square | Mobile Engineers (Mid/Sr levels) | ONSITE VISA San Francisco, CA

      -- Mission --

      We believe everyone should be able to participate and thrive in the economy. So we’re building tools that make commerce easier and more accessible to all. We started with a little white credit card reader but haven’t stopped there!

      -- About the team --

      Current team size: 4 iOS, 2 Android, 1 PM, 1 EM
      Languages: Objective-C/Swift; Java/Kotlin

      I'm one of the many hiring managers here at Square. My team, CDX (Connected Devices Experience), is searching for an Android engineer interested in platform, product, and/or low-level work (e.g. drivers, bluetooth, hardware). If you enjoy platform work that is consumer visible, I'd love to chat with you!

      -- Links --

      We're always open to new talent here at Square. If this role isn't a fit, there are several others I'd be happy to refer you to other teams.

      Our philosophy on growth as an engineer is available here: https://developer.squareup.com/blog/squares-growth-framework-for-engineers-and-engineering-managers/

      -- Apply --

      These are roles for my team and sister teams (mention CDX if you're specifically interested):

      • Mid-level Android Engineers: https://smrtr.io/3zKmj

      • Senior Android Engineers: https://smrtr.io/3zKmq

      • DM for other roles: https://squareup.com/us/en/careers/jobs

    • caromAug 2022

      Use them to measure how well people will perform in the tasks that you need them to do. For coding interviews, Square's is really good. [1] I am not sure if they have sample questions written anywhere in the linked blog posts, but very simple things with added complexity.

      Example - Write a rate limiter that takes in a timestamp (integer) and returns true if it hasn't hit a rate limit. Ok, now what if we make the rate limiter per user. Just simple things to see how you represent data, store it, create interfaces to it, and how you refactor to deal with change.

      Most likely, you want to be having someone write tests for some code and review some code. Then speak to them about their experience. Depends on your organization though, maybe you are small and people need to produce a lot more than the large tech companies.

      1. https://developer.squareup.com/blog/ace-the-square-pairing-interview/

    • ApocryphonJul 2021

      The problem is that the Cocoa framework, even after the advent of Swift, has always been created with MVC in mind. We're now at a point in iOS where trends have rolled around and now people are saying to pick MVC because that was Apple's intention, other architectures were created because people were doing it wrong:

      https://medium.com/flawless-app-stories/the-only-viable-ios-architecture-c42f7b4c845d

      Obviously most significant production apps are using variant architectures such as at the bare minimum having view models, and the introduction of SwiftUI and popular earlier frameworks such as RxSwift also complicates things. Most apps aren't using pure MVC, sure, but it doesn't mean that the architecture isn't scalable. The alternatives might also be pretty gnarly:

      https://developer.squareup.com/blog/ziggurat-ios-app-architecture/

    • scarface74Sep 2022

      Well, I was trying to avoid the entire rant about using API Keys for security in the first place.

      https://zapier.com/engineering/apikey-oauth-jwt/

      https://cloud.google.com/endpoints/docs/openapi/when-why-api-key

      We all have done it at one point or another. But if I am ever in the middle of a technical presentation and mention “API Keys”, I get all types of dirty looks from security.

      Notice that Square for instance strongly discourages API Keys for production.

      https://developer.squareup.com/docs/build-basics/access-tokens

      On the AWS side (where I work) we always discourage long term use of access key/secret keys for accessing resources even though I realize it’s necessary for some integrations. Even then, most organizations also put a condition that you can only use it from known IP addresses.

    Related

    Square Corner Blogmedium.com/square-corner-blog32 people

    Open-Sourcing Subzero: Square’s Bitcoin Cold Storage Solution

    Square Corner Blog
    Company · last shared 2020
    GitHub Engineeringgithubengineering.com122 people

    Move Fast and Fix Things

    GitHub Engineering
    Company · last shared 2022
    Wolfram Blogblog.wolfram.com225 people

    The solution of the Zodiac killer’s 340-character cipher

    Wolfram Blog
    Company · last shared 2026
    Go Blogblog.golang.org529 people

    Go 2, here we come

    Go Blog
    Company · last shared 2026
    Better Programmingbetterprogramming.pub319 people

    Three programmers got fired, including me, due to a single app crash

    Better Programming
    Publication · last shared 2025
    Uber Engineering Blogeng.uber.com525 people

    Why Uber Engineering Switched from Postgres to MySQL

    Uber Engineering Blog
    Company · last shared 2025
    Codeship Blogblog.codeship.com138 people

    Crystal: Fast as C, Slick as Ruby

    Codeship Blog
    Company · last shared 2020
    Reddit Blogredditblog.com163 people

    How We Built r/Place

    Reddit Blog
    Company · last shared 2021