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

  1. 1
  2. 2
    Long Term Refactors
    3 people · 71 points · first shared 2023 · 38 comments on HN
  3. 3
    Don't Build a General Purpose API (4 Years Later)
    3 people · 8 points · first shared 2025 · 1 comments on HN
  4. 4
    CMS Trap (2013)
    3 people · 4 points · first shared 2020 · discussion on HN
  5. 5
    Adventures in Ruby-esque type enforcement
    2 people · 11 points · first shared 2023 · 1 comments on HN
  6. 6
    Mindful Code Reviews
    2 people · 5 points · first shared 2021 · discussion on HN
  7. 7
    Getting Answers from a Big PDF with RubyLLM
    2 people · 5 points · first shared 2025 · discussion on HN
  8. 8
    Four reasons to leave a code comment (2023)
    2 people · 1 points · first shared 2025 · discussion on HN
  9. 9
    Writing maintainable code is a communication skill
    1 people · 300 points · first shared 2021 · 93 comments on HN
  10. 10
    Three Reasons Not to Implicitly Memoize
    1 people · 14 points · first shared 2020 · discussion on HN
  11. 11
    Failover to Human Intelligence
    1 people · 8 points · first shared 2025 · 3 comments on HN
  12. 12
    Good Engineering is not Premature Optimization
    1 people · 5 points · first shared 2022 · 1 comments on HN
  13. 13
    Rails – narrative vs. model centric approach
    1 people · 1 points · first shared 2022 · discussion on HN
  14. 14
    Reasons Not to Implicitly Memoize
    1 people · 1 points · first shared 2025 · discussion on HN
  15. 15
    Homepage
    1 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.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close