HNHacker News
TopNewBestAskShowJobs

timrogers

1,028 karma · joined May 2, 2011

Product Manager at GitHub

http://timrogers.co.uk timrogers at github dot com

submissionscomments
timrogers··on What I learned from looking at 900 most popular open source AI tools
Super helpful article - it’s so great to have a zoomed out view of the space.

One question that stands out to me is where evaluation at the application level should be its own category, rather than folded in to bigger groups.

timrogers··on Cloudy with a Chance of Insanity: Unsticking iCloud Drive
I’ve given up on using iCloud Drive, despite having Apple everything, because I find the sync so unreliable and undebuggable. I never had any issues like this with OneDrive or Dropbox.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Could you drop me an email at timrogers at github dot com? I'd love to look into this.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
I definitely feel your pain and, unsurprisingly, it's something we hear very regularly from users. We're working on it.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. We plan to publish a blog post in the next few months that explains how we do this under the hood. We have some pretty nice abstractions and tooling to make it as maintainable as possible.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. You've hit the nail on the head on why we default to 2022-11-28 - it's all about protecting the hundreds of thousands of of existing GitHub integrations that rely on our current behavior.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. I think it's a pretty nice idea to include deprecation information in the response headers as another way to keep API integrators informed - alongside written forms of communication like blog posts, changelog entries and emails. We'll discuss that internally.

As @xavdid noted, the reality is that most people won't see these headers, but it's a nice power user feature.

timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. We actually use deprecation headers in our GraphQL API.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. I think this is an interesting suggestion, and one we'll have a chat about internally.

I definitely see the benefit of being able to easily hit the URL from a browser - although I think it's probably only relevant for unauthenticated GET requests.

timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here! Are you thinking fields in a request or fields in a response?
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here!

Supporting many API versions in parallel definitely has an overhead from an engineering perspective - but, as the blog post says, we thought it was crucial that we unlock the ability for us to evolve our API whilst still providing consistency to existing integrators. Some form of versioning was the only way we could see to do that.

We've built some pretty neat tooling and abstractions internally to make it easy for teams across GitHub to build and test multiple API versions. We hope to publish a blog post about that in the near future.

timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here!

Honestly, we found that media types within the GitHub API had just got pretty confusing as we use them for so many things - "feature previews", response formats, versions (https://docs.github.com/en/rest/overview/media-types?apiVers...). We didn't want to overload them anymore.

Just so you know, we published OpenAPI specifications for all of our API versions on GitHub: https://github.com/github/rest-api-description/tree/main/des...

timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. This versioning scheme was just developed within GitHub - so you shouldn't make any assumptions what this means for Microsoft's and LinkedIn's APIs.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here! At the moment, we allow teams across GitHub to make their own decisions on REST vs. GraphQL. Some teams are investing heavily in GraphQL (e.g. for the new GitHub Projects), whereas others are opting for REST. That said, we do want to firm up our guidance internally and communicate more clearly to the world how we think about REST and GraphQL.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here! Here's the link to that announcement: https://github.blog/changelog/2022-08-18-deprecation-notice-...
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here - you summoned me :)

We have some small changes queued up, but nothing huge or earth-shattering.

Our focus right now is on improving developer experience and consistency where we have some weirdness in our current API design that trips integrators up. Without versioning, we couldn't address those papercuts.

We plan to release the first breaking version in the next few months.

timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. That's exactly our thinking - we are making the assumption that we won't want to release two versions with breaking changes on the same day. Who knows, maybe we will be proved wrong, but we think it's a safe bet.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. We went for dates because they allow you to see, at a glance, roughly how old the version you're using is. We didn't think that semver made sense because, in our versioning system, all new versions are breaking (i.e. major). Hope that makes sense!
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. We just wanted to provide a guarantee to reassure users that the introduction of API versioning wasn't going to mean rapid deprecations of versions. We thought that giving a guaranteed minimum lifetime was a reasonable way to do that.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. You've put it better than I could have put it myself. Thanks!
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. Unsurprisingly, we did have a lot of internet debate about how the version should be specified (header or path or query param) and we landed on using headers. But, to be completely honest, we didn’t find super strong arguments for any option, so it was just something where we had to be opinionated.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. We just wanted to be consistent here with other GitHub-specific headers prefixed this way. We could have had different headers with different formats or tried to change the formats of the old headers, but we figured this was the sanest way.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here. We consider new endpoints to be non-breaking changes, so they’ll be available in 2022-11-28.
timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here! We think that, most likely, we will end up defaulting to the oldest version. We’ll share specific plans on that when we announce our first version deprecation.

Just so you know, we don’t intend to deprecate `2022-11-28` in two years-ish - we plan to keep versions around for much longer than that. But we offer a commitment of at least 2 years for peace of mind.

timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here! We still love our GraphQL API, and REST and GraphQL continue to evolve in parallel.

We’re just aware that GraphQL is pretty different, so if we want versioning there, we’ll need to tackle it differently. (On top of that, GraphQL has some nice primitives that come for free, like deprecated fields.)

timrogers··on Enabling the Future of GitHub's REST API with API Versioning
Author here! Thank you so much for flagging this - it’s amazing what can sneak through so many proof reading attempts. We’ll get this fixed.
timrogers··on Technology that changed air travel
In the short term, our goal is to build the best flight API for new travel businesses by making it way easier to get started and build a great customer experience.

We're also in a good position today to help existing travel sellers who want to access exclusive NDC content (mentioned in the article) that they can't get through a traditional GDS.

From there, the sky's the limit really. We'll be in a great position to help anyone who wants to sell flights - new entrant or existing seller.

timrogers··on Technology that changed air travel
This is an awesome post - nice work! It does a fantastic job of laying out clearly the incredible complexity that underpins travel (which totally shocked me when I started in the industry).

I'm Tim, and I lead airline partnerships at [Duffel][1] (YC S18) - although I'm an engineer by trade ;) We're building a new API platform to make it easy for anyone to sell flights (think "Stripe for travel").

We make integration simple with our beautiful REST API (no XML or EDIFACT) and allow anyone to sign up in 30 seconds, with no need to become an accredited IATA agent.

We're rebuilding the industry's infrastructure from scratch, with direct connections to 20+ airlines' systems using the new technology mentioned in the article, NDC, rather than going through the traditional GDSs like Sabre and Amadeus.

If you want to give our API a try for yourself, you can sign up on our website and book your first flight in our sandbox in less than 2 minutes.

Equally, if this sounds like an interesting problem space to you - we're hiring, so do reach out. My email is in my bio.

[1]: https://duffel.com

timrogers··on Ask HN: Who is hiring? (September 2017)
GoCardless (YC S11) | London | SRE, Data, Backend and Frontend Engineers | Onsite | Full-time | Visa

GoCardless is building a payments network for the internet. Since 2011 we've been focused on simplifying Direct Debit for small and medium companies (who previously had no access to it) and we're now expanding to serve the largest companies (think newspapers, utilities) and connect with existing payment systems in countries all over the world. We already support the UK and Europe and are aiming to expand to more countries over the next year.

As an engineering team at GoCardless we care most about stable, reliable, understandable code. We rely on testing and code review and a culture of frequent constructive feedback. We define and manage our own roadmap and run projects in whatever way works best for us.

Our stack: Rails, React, Postgres, Elasticsearch, Docker, Chef. We also have a bit of Go and Python knocking around.

We love learning new things and contributing back to the community. We open source everything we can[1] and regularly host meetups and hackathons at our wheelchair-accessable office in Angel. We have a weekly bookclub within the team and give internal (and external) talks about things that interest us.

Interview process: an intro call, one coding challenge, then a couple of onsite interviews (pair programming and some chats - no whiteboards!)

For more info and to apply: https://gocardless.com/jobs. If you've got any questions, drop me an email (it's in my profile).

[1] Notable examples are Statesman (https://github.com/gocardless/statesman) and Coach (https://github.com/gocardless/coach)

timrogers··on Ruby 2.4.0 Released
"Accidental" mutability in gems tends to cause pain - spotted this one in Rails, for example.

https://github.com/rails/rails/pull/25735

← PreviousPage 2 of 6Next →