<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Evil Pacman &#8211; Wade Tregaskis</title>
	<atom:link href="https://wadetregaskis.com/tags/evil-pacman/feed/" rel="self" type="application/rss+xml" />
	<link>https://wadetregaskis.com</link>
	<description></description>
	<lastBuildDate>Sun, 31 Dec 2023 06:48:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://wadetregaskis.com/wp-content/uploads/2016/03/Stitch-512x512-1-256x256.png</url>
	<title>Evil Pacman &#8211; Wade Tregaskis</title>
	<link>https://wadetregaskis.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">226351702</site>	<item>
		<title>Evil Pacman</title>
		<link>https://wadetregaskis.com/evil-pacman/</link>
					<comments>https://wadetregaskis.com/evil-pacman/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 09 Mar 2022 18:18:49 +0000</pubDate>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Evil Pacman]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[monorepo]]></category>
		<guid isPermaLink="false">https://blog.wadetregaskis.com/?p=5057</guid>

					<description><![CDATA[Google had (has?) a tongue-in-cheek achievement system built into the employee directory. Anyone can define a new achievement and award it to whomever, provided they can create (or pirate) a neat little icon for it. Lots of people have over the years &#8211; there must be thousands of distinct achievements possible, at this point. It&#8217;s&#8230; <a class="read-more-link" href="https://wadetregaskis.com/evil-pacman/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>Google had (has?) a tongue-in-cheek achievement system built into the employee directory.  Anyone can define a new achievement and award it to whomever, provided they can create (or pirate) a neat little icon for it.  <em>Lots</em> of people have over the years &#8211; there must be thousands of distinct achievements possible, at this point.</p>



<p>It&#8217;s typical for a long-time Googler to have achieved hundreds of these.  Nooglers used to compete with each other to earn as many as possible, or to specifically seek out rare or notable achievements.</p>



<p>Many of the &#8216;achievements&#8217; were just sentimental milestones, e.g. for having submitted at least one code change.  Others were basically just random, e.g. having entered a valid OTP code that&#8217;s all zeroes.</p>



<p>My favourite was the Evil Pacman.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="350" height="350" src="https://wadetregaskis.com/wp-content/uploads/2023/12/Evil-Pacman.webp" alt="Pie chart showing a black pie with a 20% wedge carved out in green on the right-hand side, overall resembling a colour-inverted Pacman" class="wp-image-7216" style="object-fit:cover" srcset="https://wadetregaskis.com/wp-content/uploads/2023/12/Evil-Pacman.webp 350w, https://wadetregaskis.com/wp-content/uploads/2023/12/Evil-Pacman-256x256.webp 256w, https://wadetregaskis.com/wp-content/uploads/2023/12/Evil-Pacman@2x.webp 700w" sizes="(max-width: 350px) 100vw, 350px" /><figcaption class="wp-element-caption">There was a pie chart somewhere, showing the current health of the repo. Green for passing tests, black for failing ones. And thus emerged the Evil Pacman.<br><br>Artists rendition.  I don&#8217;t have an actual screenshot, alas.</figcaption></figure>
</div>


<p>This was awarded if you broke 75% (IIRC) or more of Google&#8217;s post-submit checks with a single change.</p>



<p>Most of Google&#8217;s code lives in a single repository &#8211; a vast &#8220;monorepo&#8221; that spans most of the company, storing billions of lines of code from hundreds (thousands?) of different projects &amp; teams.  It&#8217;s an incredible feat technically &#8211; it started as Perforce but was seamlessly replaced with an in-house reimplementation that scales better (among other major benefits) &#8211; and to this day it&#8217;s by far my favourite version control implementation.</p>



<p>One of the many benefits of that approach is that you can <em>very</em> easily share code.  You can have a basic library for e.g. common string helper functions, that lives in a single location in the repo and is used by tens of thousands of engineers.  You can <em>know</em> that at any given point in time the entire company is using the exact same version (at least in source control &#8211; obviously deployment is separate) <em>and</em> that everything is working perfectly.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p>Well, technically you &#8216;only&#8217; know that every test is passing.  But at Google there was (is?) a strong culture that tests define requirements &#8211; you couldn&#8217;t complain if someone broke your code, if you didn&#8217;t have a test that would reveal the breakage.  Or, as it was most often put:</p>



<p></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="667" height="374" src="https://wadetregaskis.com/wp-content/uploads/2022/03/If-you-liked-it-you-shoulda-put-a-test-on-it.jpg" alt="" class="wp-image-5061" srcset="https://wadetregaskis.com/wp-content/uploads/2022/03/If-you-liked-it-you-shoulda-put-a-test-on-it.jpg 667w, https://wadetregaskis.com/wp-content/uploads/2022/03/If-you-liked-it-you-shoulda-put-a-test-on-it-256x144.jpg 256w, https://wadetregaskis.com/wp-content/uploads/2022/03/If-you-liked-it-you-shoulda-put-a-test-on-it-512x287.jpg 512w" sizes="(max-width: 667px) 100vw, 667px" /></figure>
</div></div></div>



<p>No dealing with countless independent repos and the nightmare that is dependency upgrades and integration testing (sigh, Git).</p>



<p>But one downside is the potential to break a <em>lot</em> of stuff at once.  It&#8217;s not trivial to do so, of course &#8211; before any code change is submitted it nominally has to run <em>all</em> affected tests and pass all of them &#8211; but there are ways. 😈</p>



<p>Of course, breaking changes are rapidly reverted and no real harm is done, which is why this achievement can be viewed with perverse pride and not actual shame.</p>



<p>By my recollection few people had (have?) this achievement.  Most folks don&#8217;t really get out much &#8211; they potter away in their little world, working on team-specific code, and so have little to no opportunity to break anything at scale (nor have a positive impact at scale, by the same token).  I took an interest in lower-level libraries and large-scale refactoring initiatives, which is how I ultimately scored this achievement.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/evil-pacman/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2023/12/Evil-Pacman.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">5057</post-id>	</item>
	</channel>
</rss>
