Max Chernyak
max.engineer · Personal blog · on HN since 2020
Max Chernyak, a remote software developer, writes about software architecture, API design, refactoring, code review, and Ruby.
What HN saysHN commenters cite his essay against building a general-purpose JSON API for your own front end, using it in API and hypermedia debates.
17HN people shared it
5linked it in comments
36stories submitted
569story points
4 months agolast shared
2020people per year2026
Most-shared posts
- 1Don't build a general-purpose API to power your own front end7 people · 135 points · first shared 2021 · 107 comments on HN
- 2Long Term Refactors3 people · 71 points · first shared 2023 · 38 comments on HN
- 3Don't Build a General Purpose API (4 Years Later)3 people · 8 points · first shared 2025 · 1 comments on HN
- 4CMS Trap (2013)3 people · 4 points · first shared 2020 · discussion on HN
- 5Adventures in Ruby-esque type enforcement2 people · 11 points · first shared 2023 · 1 comments on HN
- 6Mindful Code Reviews2 people · 5 points · first shared 2021 · discussion on HN
- 7Getting Answers from a Big PDF with RubyLLM2 people · 5 points · first shared 2025 · discussion on HN
- 8Four reasons to leave a code comment (2023)2 people · 1 points · first shared 2025 · discussion on HN
- 9Writing maintainable code is a communication skill1 people · 300 points · first shared 2021 · 93 comments on HN
- 10Three Reasons Not to Implicitly Memoize1 people · 14 points · first shared 2020 · discussion on HN
- 11Failover to Human Intelligence1 people · 8 points · first shared 2025 · 3 comments on HN
- 12Good Engineering is not Premature Optimization1 people · 5 points · first shared 2022 · 1 comments on HN
- 13Rails – narrative vs. model centric approach1 people · 1 points · first shared 2022 · discussion on HN
- 14Reasons Not to Implicitly Memoize1 people · 1 points · first shared 2025 · discussion on HN
- 15Homepage1 people · first shared 2023
What HN people wrote when they linked it
hakunin · 2023-07-04
https://max.engineer
Hosted by amazingly convenient https://blot.im.
Articles on software architecture. I'm also looking to make new friends to discuss these topics. Working remotely in my 30s from a not-major-city makes this difficult. In my blog there's a place to leave your email if you'd be up for it.
BeefySwain · 2023-02-27
Read this article recently while doing additional research on the points brought up by other articles such as "Don’t Build A General Purpose API To Power Your Own Front End"[0] and "Splitting Your Data & Application APIs: Going Further"[1], and found it to be very insightful.
[0] https://max.engineer/server-informed-ui
[1] https://htmx.org/essays/splitting-your-apis/
arethuza · 2024-01-18
I have seen people arguing that you shouldn't be using the same API endpoints for front-ends and for integration. I can see arguments both ways though...
https://max.engineer/server-informed-ui
recursivedoubts · 2021-11-23
Because of the simplicity, flexibility and power of the hypermedia programming model.
- simplicity: e.g. something like active search can be implemented with a few attributes: https://htmx.org/examples/active-search/
- flexibility: e.g. because of the uniform interface, versioning is much less of an issue
- power: e.g. deep linking is trivial
Additionally, there is increasing awareness[1] that Application APIs and Data APIs have different needs and "shapes", and, once you have split them up, reconsidering using hypermedia for your application API[2] is a reasonable thing to do
[1] - https://max.engineer/server-informed-ui
[2] -https://htmx.org/essays/splitting-your-apis/
the_gastropod · 2024-01-03
Here's a pretty good essay by Max Chernyak on why using a generic JSON api to power your application's front end is a bad idea. https://max.engineer/server-informed-ui
tl;dr:
Your JSON api has to figure out:
- How to predict and enable all possible workflows
- How to avoid N+1 requests for awkward workflows
- How to test functionality, performance, and security of every possible request
- How to change the API without breaking the existing workflows
- How to prioritize API changes between internal and community requirements
- How to document everything so that all parties can get stuff done
And on then on the front-end, you have to figure out:
- How to collect all the data needed to render a page
- How to optimize requests to multiple endpoints
- How to avoid using API data fields in unintended ways
- How to weigh the benefit of new features against the cost of new API requests
He goes on to point out that the "re-use" value of an api endpoint is extremely low. You can re-use virtually all the code that produced that endpoint to produce a different one with a different structure for precisely what you need in this new use-case.