-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deploying to gh-pages from @ 602a190 🚀
- Loading branch information
Showing
23 changed files
with
23 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous"/><link rel="icon" href="favicon.ico"/><link data-next-font="size-adjust" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/5c882c34218f54b4.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5c882c34218f54b4.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/darkmode-load.js" defer="" data-nscript="beforeInteractive"></script><script src="/_next/static/chunks/webpack-b8f8d6679aaa5f42.js" defer=""></script><script src="/_next/static/chunks/framework-2c79e2a64abdb08b.js" defer=""></script><script src="/_next/static/chunks/main-83cebdb887f48834.js" defer=""></script><script src="/_next/static/chunks/pages/_app-2dfd096757008a0f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54de1933a164a1ff.js" defer=""></script><script src="/_next/static/0-nV1MzsWdmIJ2GMWdViW/_buildManifest.js" defer=""></script><script src="/_next/static/0-nV1MzsWdmIJ2GMWdViW/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block;text-align:left"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"0-nV1MzsWdmIJ2GMWdViW","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html> | ||
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous"/><link rel="icon" href="favicon.ico"/><link data-next-font="size-adjust" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/5c882c34218f54b4.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5c882c34218f54b4.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/darkmode-load.js" defer="" data-nscript="beforeInteractive"></script><script src="/_next/static/chunks/webpack-b8f8d6679aaa5f42.js" defer=""></script><script src="/_next/static/chunks/framework-2c79e2a64abdb08b.js" defer=""></script><script src="/_next/static/chunks/main-83cebdb887f48834.js" defer=""></script><script src="/_next/static/chunks/pages/_app-2dfd096757008a0f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54de1933a164a1ff.js" defer=""></script><script src="/_next/static/WCytNEWS0S5ls5_FjoHNS/_buildManifest.js" defer=""></script><script src="/_next/static/WCytNEWS0S5ls5_FjoHNS/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block;text-align:left"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"WCytNEWS0S5ls5_FjoHNS","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html> |
This file was deleted.
Oops, something went wrong.
2 changes: 1 addition & 1 deletion
2
_next/data/0-nV1MzsWdmIJ2GMWdViW/index.json → _next/data/WCytNEWS0S5ls5_FjoHNS/index.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
{"pageProps":{"posts":[{"title":"Consistent Hashing","slug":"consistent-hashing","date":"2023-10-26","preview":"Recently I've been reading about the Chord distributed hash table network for a class. The goal of Chord is to map any key (e.g., a file nam..."},{"title":"Rendevous Hashing","slug":"rendevous-hashing","date":"2023-10-26","preview":"This is a follow up to my post on Consistent Hashing -- see that first\nConsistent hashing is a technique used for distributed hash tables th..."},{"title":"Python Coroutines!?!?","slug":"py-generator-couroutines","date":"2023-06-11","tags":"async,asyncio,python,coroutine,generator","preview":"Python supports generators which allow you to .send() and recieve (via next(...)) values. They are kind of like channels since they don't bl..."},{"title":"Lessons from Product Managing","slug":"PMing","date":"2023-06-01","preview":"When I started as a product manager at Roblox, I didn't really even know what a product manager does. After doing it, I can confidently say ..."},{"title":"Einsum","slug":"einsum","date":"2022-03-14","tags":"math","preview":"The basic idea for einstein notation is to drop the ∑\\sum∑ from summations in some cases (reducing notational complexity). For instance, you..."},{"title":"Entropy","slug":"entropy","date":"2021-12-28","tags":"Information Theory","preview":"Inspired by this video on compression, I wanted to understand what carrying information actually means, from a few interesting examples rela..."},{"title":"Try again with sudo: _sudo","slug":"_sudo","date":"2021-11-11","tags":"sudo, su, bash, sh, shell","preview":"Sometimes you want to run without sudo if you can... and run with sudo if you can't.\n_sudo.sh\n$@ || sudo $@\n..."},{"title":"Roku & Competition","slug":"competition-focus","date":"2021-11-11","tags":"Competition, Focus","preview":"Roku feels like a business being cannabalized by competitors with deeper pockets and tall vertical integration. For example, Amazon or Apple..."}]},"__N_SSG":true} | ||
{"pageProps":{"posts":[{"title":"Consistent Hashing","slug":"consistent-hashing","date":"2023-10-26","preview":"Recently I've been reading about the Chord distributed hash table network for a class. The goal of Chord is to map any key (e.g., a file nam..."},{"title":"Rendevous Hashing","slug":"rendevous-hashing","date":"2023-10-26","preview":"This is a follow up to my post on Consistent Hashing -- see that first\nConsistent hashing is a technique used for distributed hash tables th..."},{"title":"Python Coroutines!?!?","slug":"py-generator-couroutines","date":"2023-06-11","tags":"async,asyncio,python,coroutine,generator","preview":"Python supports generators which allow you to .send() and recieve (via next(...)) values. They are kind of like channels since they don't bl..."},{"title":"Lessons from Product Managing","slug":"PMing","date":"2023-06-01","preview":"When I started as a product manager at Roblox, I didn't really know what PMing entailed. After doing it, I can say that I still don't totall..."},{"title":"Einsum","slug":"einsum","date":"2022-03-14","tags":"math","preview":"The basic idea for einstein notation is to drop the ∑\\sum∑ from summations in some cases (reducing notational complexity). For instance, you..."},{"title":"Entropy","slug":"entropy","date":"2021-12-28","tags":"Information Theory","preview":"Inspired by this video on compression, I wanted to understand what carrying information actually means, from a few interesting examples rela..."},{"title":"Try again with sudo: _sudo","slug":"_sudo","date":"2021-11-11","tags":"sudo, su, bash, sh, shell","preview":"Sometimes you want to run without sudo if you can... and run with sudo if you can't.\n_sudo.sh\n$@ || sudo $@\n..."},{"title":"Roku & Competition","slug":"competition-focus","date":"2021-11-11","tags":"Competition, Focus","preview":"Roku feels like a business being cannabalized by competitors with deeper pockets and tall vertical integration. For example, Amazon or Apple..."}]},"__N_SSG":true} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"pageProps":{"post":{"title":"Lessons from Product Managing","date":"2023-06-01","slug":"PMing","content":"<p>When I started as a product manager at Roblox, I didn't <em>really</em> know what PMing entailed. After doing it, I can say that I still don't totally know. Every PM seems to do it differently.</p>\n<p>There are some general trends, though. All the good PMs seem to be constantly thinking about the following things:</p>\n<ol>\n<li><em>The Customer</em> - There's a trap of using the metrics you measure to replace the customer. Adoption and retention don't tell you how the customer gets value from the product. It happens so gradually, though, that you don't realize that you've stopped thinking about the customer. And this is the most obvious part of your job as a PM! So it's important not to forget about the customer.</li>\n<li><em>Getting Stuff Done</em> - A good PM is effective not when they issue product directives from on high, but when they work really closely with engineers, designers, and data scientists to fill in the gaps left by the experts. That might mean making the first version of the design to reduce the load on your designer, or filling out paperwork for your engineers. The basic function of the PM is to reduce the mental load to allow builders to build.</li>\n<li><em>Simplify</em> - There are two parts: <strong>strong opinions held loosely</strong> and <strong>clear communication</strong>. Strong opinions held loosely, with justification, allow your team to push back on you and converge sooner. Clear, simple communication uses bullet points to make it obvious who needs to work on what and where the open questions lie. Many PMs don't dive deep into technical details because it impedes this function.</li>\n<li><em>Push, but not too hard</em> - The PMs I've seen asks lots of <em>why</em> questions. But they never push too hard on any one thing or undermine the more technical members of their team -- instead, they try to find a way to deliver value to customers around technical constraints.</li>\n<li><em>Constantly Communicate</em> - This is the advice I think is most applicable to a start-up. Having founders who constantly communicate, even around seemingly tiny milestones keeps the entire team grounded in the product and generates forward progress.</li>\n<li><em>Seek Contradiction</em> - this is hard to stomach when you near a deadline, but an incredible way to discover your underlying assumptions. Talk to other PMs, engineers, marketing people, privacy and safety people even (especially!) if you don't like what they will have to say.</li>\n<li><em>Global Tradeoffs</em> - Another trap in PMing is optimizing for your own product's success at the expense of everything else. Great PMs \"take the long view\" and optimize for a great user experience. Sometimes this means forgoing the low-hanging fruit for a better customer experience.</li>\n</ol>"},"morePosts":[{"title":"Consistent Hashing","slug":"consistent-hashing","date":"2023-10-26"},{"title":"Rendevous Hashing","slug":"rendevous-hashing","date":"2023-10-26"},{"title":"Python Coroutines!?!?","slug":"py-generator-couroutines","date":"2023-06-11"},{"title":"Lessons from Product Managing","slug":"PMing","date":"2023-06-01"},{"title":"Einsum","slug":"einsum","date":"2022-03-14"},{"title":"Entropy","slug":"entropy","date":"2021-12-28"},{"title":"Try again with sudo: _sudo","slug":"_sudo","date":"2021-11-11"},{"title":"Roku & Competition","slug":"competition-focus","date":"2021-11-11"}]},"__N_SSG":true} |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Oops, something went wrong.