Skip to content

Instantly share code, notes, and snippets.

View sargun's full-sized avatar

Sargun Dhillon sargun

  • Netflix
  • United States
View GitHub Profile
We're seeking talented engineers to join the Yammer Infrastructure Engineering. Our team team builds the systems, services, tools and components upon which Yammer's production services run. Working side-by-side with the rest of Yammer engineering, our goal is to simplify the operational complexity and scalability of our distributed systems so that product engineers can focus on rapidly improving end-user functionality and experience.
We believe that what distinguishes great engineers from the rest are their dedication to results over methods, ability to learn and adapt quickly, professional integrity and humility -- not specific technical skills. Engineering is here to move the business forward. Engineers who share this vision are the ones most likely to be happy here and to help us succeed.
Responsibilities:
- Help build, maintain, and direct Yammer’s operational infrastructure.
- Research, test, benchmark and evaluate new technologies.
- Solve the types of mysteries which only occur at high scale.
Quali
22:09 <@evanmcc> erlang is super simple to learn
22:10 < Sargun> Anyways, my longer-term interest was using the data from a variety of different ASs in order to generate statements to do real-time TE
22:10 < Sargun> A la Route Science from the late 2000s.
22:10 < Sargun> And additionally, being able to dynamically generate flowspec, and throttling to stop DDoSs
22:10 < Sargun> Again, really cool idea, IMHO
22:11 < Sargun> It's a multi-billion dollar industry slow incumbents (Fluke, Arbor).
22:11 < Sargun> It's easily diruptable.
22:11 < Sargun> Also, see: Elixir
22:12 < Sargun> And, at the mapping company, we wrote a bunch of our data-flow, and command and control in Erlang, but the heavy-lifting was done by C & Java
22:13 -!- msch [~msch@static.100.107.76.144.clients.your-server.de] has quit [Ping timeout: 240 seconds]
Steps:
0. Identify where you want to be: What is the yardstick?
Example: We want to be highly-available, in multiple-datacenters
1. List the goals along the way (how do we know we're getting there, are there increments to get there?)
Example:
1. We want DR
2. We want automated failover
3. We want active / read-only
3. We want active / active / active
2. How do we know we're getting there?
Next step:
Observe (take data on historical evidence of reaching established goal)
Orient:
0. Determine goal
Decide:
1. Cabal reaches consensus on steps 1-3
2. Cabal lead formalizes 1-3 amongst peers, and middle-management
Act:
3. Cabal lead communicates 1-2 to middle management, and holds middle-management accountable for pursuing 1-3
4. Internal projects lead & Cabal prioritize next-steps 3 (perhaps this would be funded through a long-term research group)
avocado=# EXPLAIN SELECT "templates".id FROM "templates" WHERE (to_tsvector('english', "templates"."source"::text) @@ plainto_tsquery('english', 'dimension'::text));
QUERY PLAN
--------------------------------------------------------------------------------
Seq Scan on templates (cost=0.00..39506.12 rows=15139 width=4)
Filter: (to_tsvector('english'::regconfig, source) @@ '''dimens'''::tsquery)
(2 rows)
avocado=# \d+ templates
Table "public.templates"
Column | Type | Modifiers | Storage | Stats target | Description
avocado=# EXPLAIN ANALYZE SELECT "templates".id FROM "templates" WHERE (to_tsvector('english', "templates"."source"::text) @@ plainto_tsquery('english', 'dimension'::text));
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
NOTICE: word is too long to be indexed
avocado=# EXPLAIN (ANALYZE TRUE, VERBOSE TRUE) SELECT "templates".id FROM "templates" WHERE (to_tsvector('english', "templates"."source"::text) @@ plainto_tsquery('english', 'dimension'::text));
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
NOTICE: word is too long to be indexed
This American Life (thisamericanlife.org) - A weekly radio show produced by WBEZ Chicago. It's a program about the life of normal people, going through extraordinary situations.
Freakonomics Radio (freakonomics.com) - Made by the same fellows behind the books of the same name. They interesting topics from the economist's point of view.
The Dinner Party Download (dinnerpartydownload.org) - A show to help you win your next dinner party. They cover some interesting tidbits, that you might be able to share at your next dinner party.
Wait Wait Don't Tell Me (www.npr.org/programs/wait-wait-dont-tell-me/) - The NPR News Quiz.
How To Do Everything (howtodoeverything.org) - A podcast by the producers of Wait Wait Don't Tell Me, that talks about..how to do everything.
open("/etc/cgconfig.conf", O_RDONLY|O_CLOEXEC) = 3
mmap(NULL, 315392, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2390bb6000
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff678baa88) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=1008, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2390c10000
read(3, "#\n# Copyright IBM Corporation. "..., 8192) = 1008
read(3, "", 4096) = 0
read(3, "", 8192) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff678baa88) = -1 ENOTTY (Inappropriate ioctl for device)
stat("/sys/fs//cgroup/cpu", 0x7fff678bb490) = -1 ENOENT (No such file or directory)
root@usbstick:~# hpacucli ctrl slot=2 pd all show
Smart Array P420 in Slot 2
array A
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
array B