<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en_GB"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://oboe.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://oboe.github.io/" rel="alternate" type="text/html" hreflang="en_GB" /><updated>2026-09-05T13:03:10+00:00</updated><id>https://oboe.github.io/feed.xml</id><title type="html">oboe</title><subtitle>Short notes on software, systems and whatever else is holding my attention.</subtitle><author><name>oboe</name></author><entry><title type="html">The lindy effect</title><link href="https://oboe.github.io/2026/05/24/the-lindy-effect.html" rel="alternate" type="text/html" title="The lindy effect" /><published>2026-05-24T00:00:00+00:00</published><updated>2026-05-24T00:00:00+00:00</updated><id>https://oboe.github.io/2026/05/24/the%20lindy%20effect</id><content type="html" xml:base="https://oboe.github.io/2026/05/24/the-lindy-effect.html"><![CDATA[<p>something I think is an interesting heuristic to have is. the the idea that that the future life expectancy of non perishable things is proportional to their current age. aka probabilistically if you’re observing something you’re probably observing it somewhere in the middle of of its life expectancy.</p>

<p>theres a few ways to apply this but to me at least it applies to books and software. so that a book thats stood the test of time must be worth reading. and the counter point being that new things are very often not worth consuming.</p>]]></content><author><name>oboe</name></author><summary type="html"><![CDATA[something I think is an interesting heuristic to have is. the the idea that that the future life expectancy of non perishable things is proportional to their current age. aka probabilistically if you’re observing something you’re probably observing it somewhere in the middle of of its life expectancy.]]></summary></entry><entry><title type="html">Boredom and quitting</title><link href="https://oboe.github.io/2026/05/03/boredom-and-quitting.html" rel="alternate" type="text/html" title="Boredom and quitting" /><published>2026-05-03T00:00:00+00:00</published><updated>2026-05-03T00:00:00+00:00</updated><id>https://oboe.github.io/2026/05/03/boredom%20and%20quitting</id><content type="html" xml:base="https://oboe.github.io/2026/05/03/boredom-and-quitting.html"><![CDATA[<p><a href="https://randsinrepose.com/archives/bored-people-quit/">randsinrepose.com/archives/bored-people-quit</a></p>

<p>This article nicely talks about an effect ive also noticed in workplaces is that the lack of constant work is often one of the main causes for people to quit.</p>

<p>Theres an even interesting possible subconscious artefact of this is that maybe people do recognise this and maybe this is why they can needlessly add complexity to projects that don’t need it, just to fill their time and minds.</p>

<p>You also see this being used as a toxic workplace thing in some workplaces, where people who are disliked are told to simply not do any work at all and sit in a room.</p>]]></content><author><name>oboe</name></author><summary type="html"><![CDATA[randsinrepose.com/archives/bored-people-quit]]></summary></entry><entry><title type="html">Jit Websites</title><link href="https://oboe.github.io/2026/02/08/jit-websites.html" rel="alternate" type="text/html" title="Jit Websites" /><published>2026-02-08T00:00:00+00:00</published><updated>2026-02-08T00:00:00+00:00</updated><id>https://oboe.github.io/2026/02/08/jit-websites</id><content type="html" xml:base="https://oboe.github.io/2026/02/08/jit-websites.html"><![CDATA[<p>With the advent the cost of code gen dropping to zero with llms, felt an interesting idea is the idea of a webserver which will auto gen a website on url hit. A kind of bootstrap method to create the illusion of a infinitely spanning library.</p>

<p>Theres a few benefits of this.</p>
<ol>
  <li>SEO: you can drastically expand the amount of URLs you cover</li>
  <li>Reach: you can serve a huge long tail of customers you wouldn’t have realised exist.</li>
</ol>

<p>Now the thing to consider is what kinds of websites might be interesting.</p>
<ol>
  <li>Auto generating blog posts</li>
  <li>Auto generating stories</li>
  <li>Auto generating data?</li>
  <li>Auto generating reviews?</li>
</ol>]]></content><author><name>oboe</name></author><summary type="html"><![CDATA[With the advent the cost of code gen dropping to zero with llms, felt an interesting idea is the idea of a webserver which will auto gen a website on url hit. A kind of bootstrap method to create the illusion of a infinitely spanning library.]]></summary></entry><entry><title type="html">On what the future of ai looks like</title><link href="https://oboe.github.io/2026/02/08/on-what-the-future-of-ai-looks-like.html" rel="alternate" type="text/html" title="On what the future of ai looks like" /><published>2026-02-08T00:00:00+00:00</published><updated>2026-02-08T00:00:00+00:00</updated><id>https://oboe.github.io/2026/02/08/on%20what%20the%20future%20of%20ai%20looks%20like</id><content type="html" xml:base="https://oboe.github.io/2026/02/08/on-what-the-future-of-ai-looks-like.html"><![CDATA[<p><a href="https://brooker.co.za/blog/2026/02/07/you-are-here.html">brooker.co.za/blog/2026/02/07/you-are-here</a></p>

<ol>
  <li>The cost of turning business logic into code has dropped to zero</li>
  <li>The cost of integrating services and plumbing has dropped to zero</li>
  <li>The cost of building efficient reliable secure end to end systems has dropped to zero</li>
</ol>

<p>So whats next?</p>

<p>Where does that leave those who have careers built on technology?
Either:</p>
<ol>
  <li>the end of programming, it is no longer a craft</li>
  <li>the birth of opportunity: new fields, new opportunities, new industries</li>
</ol>

<p>The main point is that yes writing code has dropped to zero. But theres a long list of things that go into building software systems that aren’t code. Weird feedback loops, human stubbornness, adversaries and good ideas. The bottleneck will simply move from code to something else.</p>]]></content><author><name>oboe</name></author><category term="AI" /><summary type="html"><![CDATA[brooker.co.za/blog/2026/02/07/you-are-here]]></summary></entry><entry><title type="html">Tribe Capital Bolt</title><link href="https://oboe.github.io/2025/10/12/tribe-capital-bolt.html" rel="alternate" type="text/html" title="Tribe Capital Bolt" /><published>2025-10-12T00:00:00+00:00</published><updated>2025-10-12T00:00:00+00:00</updated><id>https://oboe.github.io/2025/10/12/tribe-capital-bolt</id><content type="html" xml:base="https://oboe.github.io/2025/10/12/tribe-capital-bolt.html"><![CDATA[<p><a href="https://tribecap.co/bolt-perfecting-the-checkout-experience/">tribecap.co/bolt-perfecting-the-checkout-experience</a></p>

<p>Bolt initially has two products</p>
<ol>
  <li>A streamlined online checkout, amazon like experience</li>
  <li>chargeback protection</li>
</ol>

<p>Wedge: the checkout experience</p>

<p>Then using that to move into identifying fraud, high value customers, coupon clippers, customers who can be reactivated, etc.</p>

<p>Interesting trend of owning an interface and them building out adjacent products from the data that wedge collects.</p>]]></content><author><name>oboe</name></author><category term="Startups" /><summary type="html"><![CDATA[tribecap.co/bolt-perfecting-the-checkout-experience]]></summary></entry><entry><title type="html">Tribe Capital Hive Networks</title><link href="https://oboe.github.io/2025/10/12/tribe-capital-hive-networks.html" rel="alternate" type="text/html" title="Tribe Capital Hive Networks" /><published>2025-10-12T00:00:00+00:00</published><updated>2025-10-12T00:00:00+00:00</updated><id>https://oboe.github.io/2025/10/12/tribe-capital-hive-networks</id><content type="html" xml:base="https://oboe.github.io/2025/10/12/tribe-capital-hive-networks.html"><![CDATA[<p><a href="https://tribecap.co/the-hive-is-the-new-network/">tribecap.co/the-hive-is-the-new-network</a></p>

<p>A simple callout that networks become more valuable as their connections have:</p>
<ol>
  <li>more frequency</li>
  <li>more bandwidth</li>
</ol>

<p>Such as the Mail &gt; Email &gt; Telegram &gt; Whatsapp &gt; Twitter</p>
<ul>
  <li>Of increasing frequency</li>
</ul>

<p>Or the Facebook &gt; Instagram &gt; Snapchat &gt; TikTok</p>
<ul>
  <li>Of increasing bandwidth from text to images to video</li>
</ul>

<p>This framing makes the VR/AR conversion seem almost inevitable.</p>]]></content><author><name>oboe</name></author><category term="Startups" /><summary type="html"><![CDATA[tribecap.co/the-hive-is-the-new-network]]></summary></entry><entry><title type="html">Tribe Capital Kapital</title><link href="https://oboe.github.io/2025/10/12/tribe-capital-kapital.html" rel="alternate" type="text/html" title="Tribe Capital Kapital" /><published>2025-10-12T00:00:00+00:00</published><updated>2025-10-12T00:00:00+00:00</updated><id>https://oboe.github.io/2025/10/12/tribe-capital-kapital</id><content type="html" xml:base="https://oboe.github.io/2025/10/12/tribe-capital-kapital.html"><![CDATA[<p><a href="https://tribecap.co/kapital-thriving-in-a-desert/">tribecap.co/kapital-thriving-in-a-desert</a></p>

<p>An analysis on Kapital, the company.</p>

<p>They first started with a dashboarding software as a wedge, then moved into a large platform, offering loans, credit cards, expense management and other financial services.</p>

<p>Main product offerings being, loans, credit and debit cards and invoice management.</p>

<p>Problem: Tackling this issue because SME businesses are underserved by loans.</p>

<p>Insight: They can use the metrics from the dashboarding software to help underwrite its customers successfully. Enabling them to get a low default rate.</p>

<p>Mentions about the idea of cohort expansion. The idea that old cohorts don’t deteriorate but actually increase spend over time.</p>

<p>Previously fintech companies focused on scale metrics, GTV (gross transaction volume) or TPV (total payment volume). Article highlights to focus more on operating efficiently.</p>

<p>Apparently dashboard product has a 100% retention to date. Kinda absurd.</p>]]></content><author><name>oboe</name></author><category term="Startups" /><summary type="html"><![CDATA[tribecap.co/kapital-thriving-in-a-desert]]></summary></entry><entry><title type="html">What to spend your life on</title><link href="https://oboe.github.io/2025/07/26/What-to-spend-your-life-on.html" rel="alternate" type="text/html" title="What to spend your life on" /><published>2025-07-26T00:00:00+00:00</published><updated>2025-07-26T00:00:00+00:00</updated><id>https://oboe.github.io/2025/07/26/What%20to%20spend%20your%20life%20on</id><content type="html" xml:base="https://oboe.github.io/2025/07/26/What-to-spend-your-life-on.html"><![CDATA[<p>A common theme i’ve noticed with myself and talking to my peers is that its very easy to get into a rut or a plateau in your life, a comfortable life doing the same things each week. Not that thats bad or anything but many people have an underlying want to break out of this, but are unclear on how or what they even want to break out to.</p>
<h2 id="what-do-you-actually-care-about">What do you actually care about?</h2>
<p>One way we can tackle this is by listing what your values are and working back from those.</p>

<p>Innately what do you care about and want?</p>
<ul>
  <li>Is it money?</li>
  <li>Is it fame?</li>
  <li>Is it power?</li>
  <li>Is it adventure?</li>
  <li>Is it knowledge?</li>
  <li>Is it be useful to the world with your skill set?</li>
  <li>Is it human connection?</li>
  <li>Is it creative expression?</li>
  <li>Is it autonomy?</li>
</ul>

<p>And why do you want those things? Which of these do you care over others?</p>
<h2 id="is-what-youre-doing-getting-to-where-you-want">Is what you’re doing getting to where you want?</h2>
<p>So now that you have your values we can revisit the actions and decisions you’re making today. Does your job fulfil your values? What do you do on the weekends to compensate?</p>

<p>A framework to help think about your actions further is with the regret minimisation framework.</p>

<p>When you’re 80 years old looking back at your life. What choices are you making today  would you regret?</p>
<h2 id="common-pitfalls">Common pitfalls</h2>
<h4 id="money">Money</h4>
<p>Why is it really at the top of your list? Why do you need it?</p>

<p>Is it so you can more easily go on adventures later? Why not just go on adventures without depending on the money step?</p>
<h4 id="borrowed-dreams">Borrowed dreams</h4>
<p>Another area which is dangerous is that your ideas are heavily influenced from the ideas you hear and which are around you.</p>

<p>The ideas you hear about something, you’ll forget, and next time you think about that thing, you’ll accidentally regurgitate that idea you heard as your own. Thats how it works.</p>

<p>So truly think about the ideas you hold. Are they actually yours?</p>
<h4 id="status-games">Status games</h4>
<p>We unconsciously compete over our peers for things we don’t even want: the biggest house, the most prestigious job title, the most followers. Do you actually want these things or are you just competing?</p>
<h2 id="so-what-are-you-going-to-do-about-it">So what are you going to do about it?</h2>
<p>You have your values, you know what you should prioritise, are you going to keep doing what you’re currently doing?</p>

<p>You only have a thousand or so weeks left.</p>]]></content><author><name>oboe</name></author><category term="Life" /><summary type="html"><![CDATA[A common theme i’ve noticed with myself and talking to my peers is that its very easy to get into a rut or a plateau in your life, a comfortable life doing the same things each week. Not that thats bad or anything but many people have an underlying want to break out of this, but are unclear on how or what they even want to break out to. What do you actually care about? One way we can tackle this is by listing what your values are and working back from those.]]></summary></entry><entry><title type="html">On reviewing code</title><link href="https://oboe.github.io/2025/07/26/On-reviewing-code.html" rel="alternate" type="text/html" title="On reviewing code" /><published>2025-07-26T00:00:00+00:00</published><updated>2025-07-26T00:00:00+00:00</updated><id>https://oboe.github.io/2025/07/26/On%20reviewing%20code</id><content type="html" xml:base="https://oboe.github.io/2025/07/26/On-reviewing-code.html"><![CDATA[<p>Working at a place that is dominantly online and not in office I’ve come to realise that a large proportion of the value we produce is not in the code you write but in the code you review as well.</p>

<p>If this is true, it makes a lot of sense to invest in the skill of reviewing code as much as I have already invested into the art of coding.</p>

<p>This post aims to tackle as a guide and cook book for performing better code reviews.</p>

<h2 id="what-is-the-purpose-of-a-code-review">What is the purpose of a code review?</h2>
<p>A good way of thinking about a code review is as a process of adding value to existing code.</p>

<p>So how can you add value to existing code?</p>
<ol>
  <li>Make it more simpler</li>
  <li>Make is more correct</li>
  <li>Make it more performant</li>
</ol>

<p>Another perspective is that the purpose of a code review is to fight against the natural nature of a codebases, they deteriorate in quality over time. Like a ratchet each time you loosen the bar, it stays there, and never goes back. The core principle being:</p>

<blockquote>
  <p>In general, reviewers should favor approving a CL once it is in a state where it definitely improves the overall code health of the system being worked on, even if the CL isn’t perfect.</p>
</blockquote>

<h2 id="what-to-figure-out-in-a-code-review">What to figure out in a code review?</h2>

<p>The functionality</p>
<ul>
  <li>Does the code do what the developer intended</li>
  <li>Is what the developer intending necessary</li>
  <li>Are there any edge cases</li>
  <li>Are there any concurrency problems</li>
  <li>Are there any bugs</li>
  <li>Can it cause deadlocks or race conditions</li>
</ul>

<p>The complexity</p>
<ul>
  <li>Can it be simpler</li>
  <li>Is it too generic</li>
  <li>Is it solving additional problems</li>
</ul>

<p>The tests</p>
<ul>
  <li>Are there tests?</li>
  <li>Are there all the tests for edge cases</li>
  <li>Are the tests simple</li>
</ul>

<p>The naming</p>
<ul>
  <li>Do the names make sense?</li>
</ul>

<p>The comments</p>
<ul>
  <li>Are the comments necessary</li>
  <li>Are there comments explaining <strong>why</strong> some code exists, not how it works</li>
</ul>

<p>The observability</p>
<ul>
  <li>Can I detect that this code fail</li>
  <li>Is there any visibility loss?</li>
</ul>

<p>The style</p>
<ul>
  <li>Is it well indented?</li>
  <li>Is it consistent with the codebase?</li>
  <li>Do I want to maintain this?</li>
</ul>

<p>The broader context</p>
<ul>
  <li>Is the code improving the code health of the system or is it making the whole system more complex</li>
  <li><strong>Don’t accept code that degrades the code health of the system, THEY ADD UP.</strong></li>
</ul>

<p>The good things</p>
<ul>
  <li>What are the good things, you like</li>
</ul>

<p>In summary</p>
<ul>
  <li>The code is well-designed.</li>
  <li>The functionality is good for the users of the code.</li>
  <li>Any parallel programming is done safely.</li>
  <li>The code isn’t more complex than it needs to be.</li>
  <li>The developer isn’t implementing things they might need in the future but don’t know they need now.</li>
  <li>Code has appropriate unit tests.</li>
  <li>Tests are well-designed.</li>
  <li>The developer used clear names for everything.</li>
  <li>Comments are clear and useful, and mostly explain why instead of what.</li>
</ul>

<h2 id="how-do-you-actually-do-a-code-review">How do you actually do a code review</h2>

<ol>
  <li>Does the intent make sense?</li>
  <li>Look at the most important part of the change.</li>
  <li>Look at the rest of the code.</li>
</ol>

<p><strong>Does it make sense?</strong></p>
<ul>
  <li>Does the description make sense</li>
  <li>Is it needed</li>
</ul>

<p><strong>Look at the core logical impl</strong></p>
<ul>
  <li>Try to find major design problems first, so you don’t need to review the rest of the impl.</li>
  <li>Major changes take a while so you want to give feedback quickly</li>
</ul>

<p><strong>Look at the rest</strong></p>
<ul>
  <li>Review all the files, now with the context of whats happening</li>
</ul>

<h2 id="on-speed">On speed</h2>
<p>The velocity of the team is dependant on iteration speed, so quick reviews are the life blood of the team. <strong>You should do a code review shortly after it comes in!</strong></p>

<h2 id="on-pitfalls">On pitfalls</h2>
<ol>
  <li>Don’t have multiple round trips, reduce this time as much as possible</li>
  <li>Don’t make it a ransom note, don’t hold the review hostage</li>
  <li>Don’t have two conflicting reviewers fighting with each other</li>
  <li>Don’t have a guessing game. Don’t just criticise the solution and not give a solution. Make it specific. Not a vague hammer to hit them.</li>
  <li>Start with the bombshell, not the nits. The nits come after the major design reworks.</li>
  <li>Never flip slop between your thoughts.</li>
</ol>

<h2 id="on-comments">On comments</h2>

<p>General idea is to do something like this</p>
<ol>
  <li>What is wrong with the code?</li>
  <li><strong>Why</strong> is it wrong?</li>
  <li>How to fix it? <strong>Be actionable!</strong></li>
</ol>

<p>And to place color on</p>
<ul>
  <li>Is it blocking?</li>
  <li>So they don’t waste time on bikesheds!</li>
</ul>

<p>Something to consider is labelling comment severity</p>
<ol>
  <li>Nit: This is minor</li>
  <li>Optional: I think this may be a good idea</li>
  <li>FYI: Could be interesting</li>
</ol>

<p>Additional principles</p>
<ul>
  <li>Never say the word <strong>you</strong> in a code review: never attack the author, say <strong>WE</strong>!</li>
  <li>Use the passive voice. <strong>Only ask questions</strong>, What about renaming this variable?</li>
  <li>You aren’t commanding them, you’re suggesting ideas to make this code better.</li>
  <li>Tie your feedback to principles.</li>
</ul>

<h2 id="and-finally-on-the-other-side-what-should-you-consider-as-the-author">And finally on the other side, what should you consider as the author</h2>

<p>A pretty fun graphic from cisco code reviews shows that at most 400 lines of code, the amount of issues you can notice significantly diminish. So try to split it up!</p>

<p><img src="https://static1.smartbear.co/smartbear/media/images/product/collaborator/code-review-best-practices-figure-01.gif" alt="" /></p>

<p>What makes a code review small?</p>
<ul>
  <li>It does one thing</li>
  <li>It tests that one thing</li>
  <li>What are the implications of this one thing</li>
</ul>

<p>So how can you split up a change?</p>
<ul>
  <li>Stack changes, pull out precursors and incrementally contribute</li>
  <li>Split by files, update each file change independently</li>
  <li>Split horizontally: design your code in such a way that you can easily cut multiple code reviews without them interfering</li>
  <li>Split by intent/ logical change</li>
  <li>Split out refactors</li>
</ul>

<h2 id="appendix">Appendix</h2>
<p><a href="https://github.com/google/eng-practices/blob/master/review/index.md">github.com/google/eng-practices/blob/master/review/index.md</a></p>

<p><a href="https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/code-review-antipatterns/">chiark.greenend.org.uk/~sgtatham/quasiblog/code-review-antipatterns</a></p>

<p><a href="https://philbooth.me/blog/the-art-of-good-code-review">philbooth.me/blog/the-art-of-good-code-review</a></p>

<p><a href="https://bitfieldconsulting.com/posts/code-review">bitfieldconsulting.com/posts/code-review</a></p>

<p><a href="https://lindbakk.com/blog/code-reviews-easy-in-theory-difficult-in-practice">lindbakk.com/blog/code-reviews-easy-in-theory-difficult-in-practice</a></p>

<p><a href="https://smartbear.com/learn/code-review/best-practices-for-peer-code-review/">smartbear.com/learn/code-review/best-practices-for-peer-code-review</a></p>

<p><a href="https://mtlynch.io/human-code-reviews-1/#start-reviewing-immediately">mtlynch.io/human-code-reviews-1</a></p>

<p><a href="https://mtlynch.io/code-review-love/">mtlynch.io/code-review-love</a></p>]]></content><author><name>oboe</name></author><category term="Software" /><summary type="html"><![CDATA[Working at a place that is dominantly online and not in office I’ve come to realise that a large proportion of the value we produce is not in the code you write but in the code you review as well.]]></summary></entry><entry><title type="html">Swe interview master garden</title><link href="https://oboe.github.io/2025/06/07/SWE-interview-master-garden.html" rel="alternate" type="text/html" title="Swe interview master garden" /><published>2025-06-07T00:00:00+00:00</published><updated>2025-06-07T00:00:00+00:00</updated><id>https://oboe.github.io/2025/06/07/SWE%20interview%20master%20garden</id><content type="html" xml:base="https://oboe.github.io/2025/06/07/SWE-interview-master-garden.html"><![CDATA[<p>After getting a few offers, here’s what I did and would do again if I needed to get a SWE job again.</p>

<p>The legs of the SWE interview chair are:</p>
<ol>
  <li>Coding</li>
  <li>System design</li>
  <li>Behavioural</li>
</ol>

<p>You’re going to get interviews in these areas and each company will have slight different flavours to these. My recommendation is to first do the basic prep and then focus in on companies when those interviews have been booked in. This means grepping through glassdoor for every past interview question and doing them.</p>

<p>On general application strategy apply to a crap ton as the more interviews you do the better you’ll get, my guess is that you’re pretty much guaranteed to fail your first one.</p>
<h2 id="coding">Coding</h2>
<p>USE PYTHON. Some interviews cough cough stripe are impossible to do in verbose languages. Python is by far the best language to concisely explain standard interview concepts, outside of heap, but what are the chances someone asks you a heap question. lmao.</p>

<p>The prep is simple, just do leetcode. Here’s a nicely structured list of 150 questions. They will get easy as you do them.</p>
<ul>
  <li><a href="https://neetcode.io/roadmap">neetcode.io/roadmap</a></li>
</ul>

<h2 id="system-design">System Design</h2>
<p>First learn the basic concepts then learn the structure of how you should answer them and just choose a question and spend 30 minutes just writing down in a doc all your answers for each of the sections. As you do enough questions you’ll learn that all of the questions are pretty much the same, put a load balancer infront of a host with a db. Wow how simple. Then dump your structured answer into chat gpt and have it ask 10-20 questions on you. The llm feedback loop was extremely useful and would highly recommend.</p>

<p>Concepts:</p>
<ul>
  <li><a href="https://www.hellointerview.com/learn/system-design/in-a-hurry/introduction">hellointerview.com/learn/system-design/in-a-hurry/introduction</a></li>
  <li><a href="https://www.hellointerview.com/learn/system-design/in-a-hurry/patterns">hellointerview.com/learn/system-design/in-a-hurry/patterns</a></li>
  <li><a href="https://www.hellointerview.com/learn/system-design/in-a-hurry/core-concepts">hellointerview.com/learn/system-design/in-a-hurry/core-concepts</a></li>
  <li><a href="https://www.hellointerview.com/learn/system-design/in-a-hurry/key-technologies">hellointerview.com/learn/system-design/in-a-hurry/key-technologies</a></li>
  <li><a href="https://github.com/donnemartin/system-design-primer">github.com/donnemartin/system-design-primer </a></li>
  <li><a href="https://www.karanpratapsingh.com/courses/system-design">karanpratapsingh.com/courses/system-design</a></li>
  <li><a href="https://github.com/donnemartin/system-design-primer?tab=readme-ov-file#index-of-system-design-topics">github.com/donnemartin/system-design-primer</a></li>
</ul>

<p>How to answer a system design question:</p>
<ul>
  <li>In the end I’ve come to the FNEHDS acronym. Functional requirements, non functional requirements, estimates, high level design, deep dives, scaling.</li>
  <li>Also <a href="https://excalidraw.com/">excalidraw.com/ </a>is a must use!</li>
  <li><a href="https://github.com/donnemartin/system-design-primer?tab=readme-ov-file#how-to-approach-a-system-design-interview-question">github.com/donnemartin/system-design-primer</a></li>
  <li><a href="https://bytebytego.com/courses/system-design-interview/a-framework-for-system-design-interviews">bytebytego.com/courses/system-design-interview/a-framework-for-system-design-interviews</a></li>
  <li><a href="https://gist.github.com/vasanthk/485d1c25737e8e72759f">gist.github.com/vasanthk/485d1c25737e8e72759f</a></li>
  <li><a href="https://www.hellointerview.com/learn/system-design/in-a-hurry/delivery">hellointerview.com/learn/system-design/in-a-hurry/delivery</a></li>
</ul>

<p>Questions (DONT CHEAT AND READ THE LINKS, JUST READ THE CONSTRAINTS AND DO THE QUESTION ALONE FIRST):</p>
<ul>
  <li>Create a design pastebin post <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/pastebin/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/pastebin/README.md </a></li>
  <li>Twitter timeline and search <a href="https://www.hiredintech.com/system-design/the-twitter-problem/">hiredintech.com/system-design/the-twitter-problem/ </a> <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/twitter/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/twitter/README.md </a></li>
  <li>tweet search <a href="https://www.hellointerview.com/learn/system-design/answer-keys/tweet-search">hellointerview.com/learn/system-design/answer-keys/tweet-search</a></li>
  <li>Web crawler <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/web_crawler/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/web_crawler/README.md </a></li>
  <li>mint.com <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/mint/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/mint/README.md </a></li>
  <li>data structures for a social network <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/social_graph/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/social_graph/README.md </a></li>
  <li>design chat system <a href="https://bytebytego.com/courses/system-design-interview/design-a-chat-system">bytebytego.com/courses/system-design-interview/design-a-chat-system</a></li>
  <li>design summarisation system <a href="https://www.hiredintech.com/system-design/the-summarization-problem/">hiredintech.com/system-design/the-summarization-problem</a></li>
  <li>design youtube <a href="https://bytebytego.com/courses/system-design-interview/design-youtube">bytebytego.com/courses/system-design-interview/design-youtube</a></li>
  <li>KV store for a search engine <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/query_cache/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/query_cache/README.md </a></li>
  <li>Amazon sales ranking by category feature <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/sales_rank/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/sales_rank/README.md </a></li>
  <li>AWS scaling service <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/scaling_aws/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/scaling_aws/README.md </a></li>
  <li>Ticketmaster <a href="https://www.hellointerview.com/learn/system-design/answer-keys/ticketmaster">hellointerview.com/learn/system-design/answer-keys/ticketmaster</a></li>
  <li>Uber <a href="https://www.hellointerview.com/learn/system-design/answer-keys/uber">hellointerview.com/learn/system-design/answer-keys/uber</a></li>
  <li>Dropbox <a href="https://www.hellointerview.com/learn/system-design/answer-keys/dropbox">hellointerview.com/learn/system-design/answer-keys/dropbox</a></li>
  <li>Facebook live comments <a href="https://www.hellointerview.com/learn/system-design/answer-keys/fb-live-comments">hellointerview.com/learn/system-design/answer-keys/fb-live-comments</a></li>
  <li>Facebook news feed <a href="https://www.hellointerview.com/learn/system-design/answer-keys/fb-news-feed">hellointerview.com/learn/system-design/answer-keys/fb-news-feed</a></li>
  <li>Local delivery like gopuff <a href="https://www.hellointerview.com/learn/system-design/answer-keys/gopuff">hellointerview.com/learn/system-design/answer-keys/gopuff</a></li>
  <li>Leetcode <a href="https://www.hellointerview.com/learn/system-design/answer-keys/leetcode">hellointerview.com/learn/system-design/answer-keys/leetcode</a></li>
  <li>TopK youtube videos <a href="https://www.hellointerview.com/learn/system-design/answer-keys/top-k">hellointerview.com/learn/system-design/answer-keys/top-k</a></li>
  <li>Netflix <a href="https://medium.com/@narengowda/netflix-system-design-dbec30fede8d">medium.com/@narengowda/netflix-system-design-dbec30fede8d </a> <a href="https://highscalability.com/designing-netflix/">highscalability.com/designing-netflix</a></li>
  <li>Payment web hooks <a href="https://tianpan.co/notes/166-designing-payment-webhook">tianpan.co/notes/166-designing-payment-webhook </a> <a href="https://medium.com/hootsuite-engineering/a-scalable-reliable-webhook-dispatcher-powered-by-kafka-2dc3d677f16b">medium.com/hootsuite-engineering/a-scalable-reliable-webhook-dispatcher-powered-by-kafka-2dc3d677f16b</a> <a href="https://yos.io/2017/02/22/webhooks/">yos.io/2017/02/22/webhooks/ </a></li>
  <li>URL shortener <a href="https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/pastebin/README.md">github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/pastebin/README.md </a></li>
  <li>Design a logging system <a href="https://tianpan.co/notes/168-designing-a-metric-system">tianpan.co/notes/168-designing-a-metric-system </a>  <a href="https://www.hellointerview.com/learn/system-design/answer-keys/ad-click-aggregator">hellointerview.com/learn/system-design/answer-keys/ad-click-aggregator </a> <a href="https://github.com/gitgik/distributed-system-design/blob/master/distributed_logging.ipynb">github.com/gitgik/distributed-system-design/blob/master/distributed_logging.ipynb </a></li>
  <li>Design a deal voucher system - <a href="https://www.hellointerview.com/learn/system-design/answer-keys/ticketmaster">hellointerview.com/learn/system-design/answer-keys/ticketmaster</a></li>
  <li>Design data storage</li>
  <li>Design a ledger</li>
  <li>Design IAM</li>
  <li>Design a hotel booking system</li>
</ul>

<h2 id="behavioural">Behavioural</h2>
<p>Behavioural’s are just vibe checks. Theres really only a few things you need to tell who are you and why you’re the goat fit. Be interested and passionate!</p>

<p>Who are you:</p>
<ul>
  <li><a href="https://www.techinterviewhandbook.org/self-introduction/">techinterviewhandbook.org/self-introduction</a></li>
</ul>

<p>Why you’re the goat fit:</p>
<ul>
  <li>Lookup what they previously ask</li>
  <li>Lookup what their values are and have a cracking the coding interview or STAR style story for each one, simple.</li>
  <li><a href="https://www.techinterviewhandbook.org/behavioral-interview/">techinterviewhandbook.org/behavioral-interview/ </a></li>
</ul>

<p>Final questions:</p>
<ul>
  <li><a href="https://www.techinterviewhandbook.org/final-questions/">techinterviewhandbook.org/final-questions</a></li>
</ul>

<h2 id="finance">Finance</h2>
<p>Wow a surprise section, some smaller companies such as those in finance will ask more specific questions to hire for spikes. Usually this means knowing a specific language or knowing some sort of CS better, most likely operating systems. Usually they can’t actually ask you some real in-depth stuff so just reading the language docs or resources is pretty sufficient.</p>
<ul>
  <li>What are the cache locality of data structures</li>
  <li>How are maps implemented under the hood</li>
  <li>Do some threading</li>
  <li>Do some naive implementations of cpp shared ptr, unique ptr, tuples</li>
  <li>Stack and heap memory knowledge</li>
</ul>

<h2 id="closing">Closing</h2>
<p>With this process the main thing to note is that your goal is to hold an auction for your time with as many companies as possible. You want to get as many offers at possible at the same time. To do this when you get one offer, let every other company know and that you want to accelerate the process with them because you love their company.</p>

<p>Negotiating for dummies:</p>
<ul>
  <li><a href="https://interviewing.io/blog/sabotage-salary-negotiation-before-even-start">interviewing.io/blog/sabotage-salary-negotiation-before-even-start </a></li>
  <li><a href="https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/">haseebq.com/my-ten-rules-for-negotiating-a-job-offer</a></li>
</ul>]]></content><author><name>oboe</name></author><category term="Leetcode" /><summary type="html"><![CDATA[After getting a few offers, here’s what I did and would do again if I needed to get a SWE job again.]]></summary></entry></feed>