Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Code, Test, Deploy
Search
Ben Balter
August 20, 2014
Technology
0
530
Code, Test, Deploy
How to Ship Software Like a Startup
Ben Balter
August 20, 2014
Tweet
Share
More Decks by Ben Balter
See All by Ben Balter
A community of communities: Empowering maintainers to grow communities around their code
benbalter
1
1.3k
Fostering a culture of collaboration
benbalter
0
230
Growing open source communities on GitHub around your WordPress plugin or theme
benbalter
1
260
It takes a digital village
benbalter
1
470
Open source workflows in highly regulated environments
benbalter
0
97
Optimize for Developer Happiness
benbalter
0
290
The technology is the easy part
benbalter
2
300
How to foster an open source culture inside Government
benbalter
3
2.5k
Open source inspired workflows for open (and closed) geospatial data
benbalter
0
170
Other Decks in Technology
See All in Technology
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
390
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
220
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
570
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
350
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
240
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
990
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
3
230
Agent Skillsがハーネスの垣根を超える日
gotalab555
5
2.8k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
AWS re:Invent 2025 re:Cap LT大会 データベース好きが語る re:Invent 2025 データベースアップデート/セッションの紹介
coldairflow
0
140
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
120
普段使ってるClaude Skillsの紹介(by Notebooklm)
zerebom
6
1.7k
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Unsuck your backbone
ammeep
671
58k
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
Making Projects Easy
brettharned
120
6.5k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
220
Designing for humans not robots
tammielis
254
26k
How to make the Groovebox
asonas
2
1.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
320
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
30
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
64
35k
Color Theory Basics | Prateek | Gurzu
gurzu
0
140
Transcript
! Code, Test, Deploy How to Ship Software Like a
Startup Ben Balter government.github.com
[email protected]
! What’s GitHub?
! The world’s largest code-sharing platform " Founded 2008 !
VC Funded $100M # Hubbers 232 $ Users 7M % Projects 15M
! In your datacenter, or in the cloud & GitHub.com
(SaaS) Public engagement github.com/ngageoint ' GitHub Enterprise (VM) Internal collaboration enterprise.github.com
! The constraints of open source
! " Electronic High fidelity mediums expose process
! ( Transparent Communicate decisions in realtime, and forever
! ) Asynchronous Focus workflow on code, not meetings
! * Informal Adopt cultures, not polices
! + Code
! , Git * 2d96cfe - (HEAD, tag: v3.1.1, origin/master,
origin/HEAD, master) :gem: bump (43 minutes ago) <Ben Balter> * f4b446b - remove stray backtick (44 minutes ago) <Ben Balter> * 83599e3 - Merge branch 'master' of https://github.com/benbalter/g-man (46 minutes ago) <Ben Balter> |\ | * 42514ea - Merge pull request #61 from devscott/laxco (50 minutes ago) <Ben Balter> | |\ | | * 072d9b5 - Adding in additional entry for La Crosse County, WI (54 minutes ago) <Scott Sloan> | |/ * | 1e95d95 - remove unresolvable domains (46 minutes ago) <Ben Balter> * | 1a8645a - remove uwyo.edu/CES (86 minutes ago) <Ben Balter> |/ * 70410ba - Merge pull request #60 from jpmckinney/canada (2 hours ago) <Ben Balter> |\ | * a77ad43 - Use consistent comments for Canada hosts (2 hours ago) <James McKinney> | * 1776e45 - Add more Canadian hosts (2 hours ago) <James McKinney> * | 05211a0 - Merge pull request #58 from mitio/bulgarian-government-domains (3 hours ago) <Ben Balter> |\ \ | * | fe8f862 - Add Bulgaria's government main domain (3 hours ago) <Dimitar Dimitrov> | |/ * | 85d0c7b - Merge pull request #59 from mitio/fix-readme-typos (3 hours ago) <Ben Balter> |\ \ | |/ |/| | * f558a90 - Add missing word in the readme (3 hours ago) <Dimitar Dimitrov>
None
% Find your project
- Prioritize tasks
. Propose the change
/ Review
0 Discuss
1 Merge
2 Mentions
! 3 Friction Delay between “I want to contribute” and
“I have contributed”
None
! 4 Scripts to rule them all $ script/test Bootstrapping
$ boxen giants $ cd ~/github/giants $ script/bootstrap Running $ script/server Testing
! 5 Test
6 Meet Hubot
7 ChatOps
# Shared Command Line •View cameras in our datacenter •
Search error logs • Manage and trigger alerts • Perform server maintenance • View load balancer status • Spin up cloud instances • Provision servers • Adjust firewall ports • Activate DDoS Mitigation • Restart processes • Configure DNS • Deploy to production
Two other ways Hubot helps Push Notifications Situational Awareness
8 Continuous Integration (CI)
9 Build Status
: On each push… •~1,500 test suits •~15,00 tests •~75,00
assertions • x 2 environments (.com, Enterprise) •Tests > 20 seconds are considered a failure •~ 90 seconds to complete
! /Deploy
! Nothing gets deployed unless tests are green
A typical deployment flow Development Staging Production
GitHub's ; flow Development Staging Production Development Development Staging Staging
, Branch Labs
< Queuing
⚡ Doing it live
Meanwhile, back at the pull request…
! Tools make the difference
> A typical day at GitHub • 230 employees
(2/3rd remote) • 185 chatrooms • ~30,000 lines of text (13,000 from Hubot) • ~500 images • 500+ deploys • 1000+ pushes • 320 issues opened •185 pull requests opened (of which 145 merged that day)
~130 production deploys per day
~41 deploys to GitHub.com per day
! Code, Test, Deploy How to Ship Software Like a
Startup Ben Balter government.github.com
[email protected]