Staffjoy V2

Web and SaaS

workforce scheduling

SHOW HN2017

Staffjoy V2

I announced two weeks ago that we are shutting down Staffjoy [1] and open sourcing our code.

github.com

#shift scheduling#open source#staff scheduling#sms scheduling#microservices

113points
35comments
#392of 2,242 in 2017
Top 18%of 2017 by points

How HN took it

CuriousMostly questions and neutral comments

4 positive, 9 neutral or asking, 1 mixed, 2 critical, out of 16 comments about the project. Thread score +0.10.

Design: 1 for, 0 againstPrivacy: 0 for, 1 againstExecution: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Monorepo and microservice architecture are useful to learn from

    From 2 comments
    • We are sharing your sentiment that a lot of our user-facing errors could be limited by moving away from weak typing (current stack is Ruby). In hindsight, did Go and protobuf…
      troyk on HN
    • Interesting to see how other companies' application stacks end up looking. Thanks for releasing this.
      kondro on HN
  • gRPC-gateway and auto-generated API docs sped up development

    From 1 comment
    • Yes. I would always use gRPC-gateway in the future. It's an amazing library. Check out the `protobuf` folder - we basically defined the whole api there in a language-agnostic…
      philip1209 on HN

Objections

  • Architecture is overengineered for the product's size

    From 2 comments
    • It's overengineered for today. The datastore should have been a monolith. However, splitting up accounts and companies made us think in terms of microservices. We were prepared…
      philip1209 on HN
    • Yes, in hindsight I would have done more of a monolith datastore with fewer services. Faraday for auth was amazing - we could put anything we wanted behind it and centralize…
      philip1209 on HN
  • Backend code reads like a rushed prototype with no tests

    From 2 comments
    • Their Go services definitely read like a very beginner or prototype project. There are no tests, lots of global state, and little separation of concerns between request/response…
      zalmoxes on HN
    • Yes, it was a rush job. It started off nice, with tests and stuff. Then, we had to hit a deadline. I wrote 100% of the backend code. There were no other authors. Getting tons of…
      philip1209 on HN
  • Build times are long (around 10 minutes)

    From 1 comment
    • The Bazel build system [1] is the open-source version of Google's internal build system. It's tough to set up, but once you do - it caches all builds, down to the docker…
      philip1209 on HN

Requests

  • Explain why the pivot to V2 happened instead of adding SMS to V1

    From 1 comment
    • That's a really pitch great deck, Philip. Thanks for sharing. I have to admit - I don't totally understand why you pivoted for your V2. Couldn't you have just added on the "SMS"…
      tarr11 on HN
  • Explain the choice of Go over Python and the dynamic typing problems

    From 2 comments
    • To what extent did you try to refactor your Python code/architecture prior to adopting Go for v2? Also, could you share one example of the dynamic typing related problems?…
      Dowwie on HN
    • Having worked with flask+Python eco-system and golang do you think if you continued with Python for v2 it might have been better (since you were already familiar with Python even…
      dragonsh on HN

Questions

  • Would the architecture be done differently with hindsight?

    From 2 comments
    • In hindsight, what would you have done differently with the architecture of this software? It's got alot of moving parts - do you think it is overengineered?
      hoodoof on HN
    • What are your thoughts on the re-write in hindsight, would you have done it differently looking back on it? Perhaps have gone for a more 'monolithic' approach?
      spacetexas on HN
  • Why build an external REST API alongside a working web app?

    From 1 comment
    • Thank you so much for sharing all that you've learned throughout your journey and for sharing your architecture. Curious but with a working web app, what was the motivation for…
      tixocloud on HN
  • Why use microservices and a React SPA for a single developer?

    From 1 comment
    • I really enjoyed that episode :) Curious, since it was just you writing the backend, what was the reasoning behind doing microservices + react SPA. Both of those require a lot of…
      zalmoxes on HN

Alternatives named

  • Homebase

    From 1 comment
    • We had some failed deploys due to usability issues. We also felt like we were starting to converge to the same set of features similar to a bunch of other companies (Homebase,…
      philip1209 on HN
  • When I Work

    From 1 comment
    • We had some failed deploys due to usability issues. We also felt like we were starting to converge to the same set of features similar to a bunch of other companies (Homebase,…
      philip1209 on HN
  • Humanity/ShiftPlanning

    From 1 comment
    • We had some failed deploys due to usability issues. We also felt like we were starting to converge to the same set of features similar to a bunch of other companies (Homebase,…
      philip1209 on HN
  • Deputy

    From 1 comment
    • We had some failed deploys due to usability issues. We also felt like we were starting to converge to the same set of features similar to a bunch of other companies (Homebase,…
      philip1209 on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/13749461)