

GitHub: Scaling on Ruby, with a nomadic tech team - jssjr
https://medium.com/s-c-a-l-e/github-scaling-on-ruby-with-a-nomadic-tech-team-4db562b96dcd

======
staunch
> _For a long time, very key bits of our infrastructure were strung together
> with Shell scripts and simple scripting, and it’s surprisingly effective and
> still works really very well for us._

Key bits of the _world 's_ infrastructure still run on a bunch of flimsy shell
scripts that seem like they'd break all the time but don't. If a computer
program works reliably at all it will _probably_ work reliably indefinitely,
assuming the environment it lives in does not change substantially.

We probably all trust our lives to high end routers and medical equipment
powered by shell scripts (or worse) every day. The code would scare you but,
surprisingly, it will probably never fail you.

~~~
mbrock
It's interesting why shell scripts are seen as so "fragile" or "flimsy." Why
would bash be any more inherently flimsy than any other interpreted language?
Why would the global mass of Ruby, JavaScript, Perl, Python, Java, C++,
whatever be any less fragile? The whole world is held together by duct tape.
At least most shell scripts keep it simple.

~~~
Argorak
Shell scripts have a lot of implicit dependencies.

They string together other programs with widely differing interfaces. For
example BSD sed and GNU sed work very differently, at least when you
accidentally use a non-standard option.

Ruby, JavaScript, Perl, Python, Java, C++ all have a stable base vocabulary
(core library).

bash doesn't.

~~~
mbrock
True enough, though as soon as you have dependencies, you can't guarantee
cross-platform or cross-version portability with those other languages either.

~~~
Argorak
They all come with a dependency manager and the problem of sh (or bash? got
your bashisms ready all the time?) is that the moment of introducing
dependencies is "immediate".

------
aaronbrethorst
My favorite quote:

    
    
        this is actually a really pragmatic set of hackers
        that just hack on Ruby, hack on C and spend their
        time working on more interesting things using a
        more stable stack, rather than chasing after the
        latest and shiny tech.

~~~
nailer
There's also the 'Ruby syntax and performance at the same time' option - which
used to be limited to JRuby but is quickly being replaced with Elixir.

~~~
djur
Elixir's syntax is only superficially similar to Ruby's, and its semantics are
radically different. I don't think there's any evidence that people who picked
up JRuby for performance reasons are notably likely to leave Ruby for Elixir
versus other languages.

------
cdnsteve
Very nice read. Simple, stable and steady wins platform battles. It seems to
do well at allowing them to keep focus and careful control of their product.

It's great to hear these core values are baked into their culture. I remember
recently reading they were running Github pages on something like a pair of
dedicated servers lol. Hats off, Github rocks.

Our team recently started using Jira for issues instead of Github ones. I have
to say, if Github offered a $1 more per repo cost for better issue/wiki tier,
I'd rather use that in a second.

------
x404
My favorite quote: "GitHub’s largely officeless workplace — about 60 percent
of its employees work remotely, using a powerful homemade chatbot, called
Hubot, to collaborate." It's really cool to work wherever you like without
lose the team's efficient.

------
shiny
> A month ago I was working from a cabin in the woods in Wisconsin.

OT, but has anyone else tried this? I've often fantasized about working while
embedded in a beautiful nature setting, but I imagine it's tough to find good
internet in such a place. I'm in California ... any recommendations?

I've also thought of copying Antony Garret Lisi's 'science hostel' idea [1]
but for coders / entrepreneurs :)

[1]:
[https://en.wikipedia.org/wiki/Antony_Garrett_Lisi#Science_ho...](https://en.wikipedia.org/wiki/Antony_Garrett_Lisi#Science_hostel)

~~~
sanswork
I bought an RV and did this for a while. It was fun but I wasn't any more
productive. In the past I also tried moving to a remote beach resort town in
Australia with a cofounder. It was fun and beautiful but again no more
productive than we were back home.

~~~
snowwolf
Is that the point though? To be more productive? I'd be more interested to
know if you were at least equally as productive and more importantly happier?
I would think it's about improving your work/life balance and long term does
that make you more fulfilled?

~~~
sanswork
Most people seem to think it will make them more productive without the
distractions so for a lot of people it is. Pretty view won't improve your
work/life balance either unfortunately.

I was less productive and equally happy. All existences become the norm
quickly. Even living in a tropical paradise, or surrounded by snow capped
mountain wilderness.

------
grinnick
How do you go from DB Admin to Director of Technology in 2 years!? That's
pretty impressive.

~~~
samlambert
Thank you. It was a mix on working on impactful stuff
[https://github.com/blog/1880-making-mysql-better-at-
github](https://github.com/blog/1880-making-mysql-better-at-github), making an
effort to work on more general issues like availability, having a culture that
allowed me to be ambitious, and solid mentorship from our CTO.

------
why-el
Another thing that would be interesting to learn more about is their Front end
structure. From what I can gather they keep things extremely simple (jQuery,
mostly) and make extensive use of pjax and server generated javascript that
gets evaluated by the client. If this is all there is to it then it is really
impressive, considering how many other companies of similar or smaller size
quickly inject a Javascript MVC on top of their stack the minute the
interaction goes past simple forms (Airbnb comes to mind, who to my knowledge
is using Backbone for some aspects of their app).

To be clear I think both approaches are excellent and all depends on the in-
house talent, but nonetheless it's interesting to see how GitHub is sticking
to a traditional, Rails-inspired document-based approach that minimizes front
end complexity while other companies do not, even when both have similar UX
complexity.

------
stijlist
I'd be really curious to read more about how the Github team's intuition
around polyglot programming and "Right Tool for the Job" rhetoric changed over
time. I feel like I read a blog post about this one or two years ago but I
can't remember which team member wrote it :)

~~~
misiti3780
this one? [https://github.com/blog/530-how-we-made-github-
fast](https://github.com/blog/530-how-we-made-github-fast)

------
otterley
I'd love to see their compute and software stack provisioning tools. Are they
open source?

~~~
lswith
hubot is open source and you can write hubot scripts for things you want to
do.

------
mahyarm
I wonder what they use for a chat system? Slack? IRC? Jabber? Their own app
suite?

~~~
Linell
IIRC, they use Campfire.

[https://campfirenow.com/](https://campfirenow.com/)

------
spectrum1234
One of the best articles I've read in while

