{
    "componentChunkName": "component---src-templates-note-note-js",
    "path": "/notes/The-well-rounded-Enginner",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://speakerdeck.com/swanandp/the-well-rounded-engineer\"\n  }, \"https://speakerdeck.com/swanandp/the-well-rounded-engineer\"), \" This deck by \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/Swanand-Pagnis\",\n    \"title\": \"Swanand Pagnis\"\n  }, \"Swanand Pagnis\"), \" is a great read. I only came across this recently \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/September-2021\",\n    \"title\": \"September 2021\"\n  }, \"September 2021\"), \".  I wish I had come across this a couple of years ago. \"), mdx(\"p\", null, \"Here are the recommended readings and books from this deck.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Haskell\",\n    \"title\": \"Haskell\"\n  }, \"Haskell\"), \" - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.goodreads.com/en/book/show/25587599-haskell-programming-from-first-principles\"\n  }, \"https://www.goodreads.com/en/book/show/25587599-haskell-programming-from-first-principles\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Ruby\",\n    \"title\": \"Ruby\"\n  }, \"Ruby\"), \" - Confident Ruby - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://pragprog.com/titles/agcr/confident-ruby/\"\n  }, \"https://pragprog.com/titles/agcr/confident-ruby/\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Ocaml\",\n    \"title\": \"Ocaml\"\n  }, \"Ocaml\"), \" - Real World Ocaml - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://dev.realworldocaml.org/\"\n  }, \"https://dev.realworldocaml.org/\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Prolog\",\n    \"title\": \"Prolog\"\n  }, \"Prolog\"), \" - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://exercism.org/tracks/prolog\"\n  }, \"https://exercism.org/tracks/prolog\"), \" and \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.ic.unicamp.br/~meidanis/courses/mc336/2009s2/prolog/problemas/\"\n  }, \"https://www.ic.unicamp.br/~meidanis/courses/mc336/2009s2/prolog/problemas/\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Programming Languages course on \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Coursera\",\n    \"title\": \"Coursera\"\n  }, \"Coursera\"), \"\", mdx(\"ol\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.coursera.org/learn/programming-languages\"\n  }, \"https://www.coursera.org/learn/programming-languages\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.coursera.org/learn/programming-languages-part-b\"\n  }, \"https://www.coursera.org/learn/programming-languages-part-b\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.coursera.org/learn/programming-languages-part-c\"\n  }, \"https://www.coursera.org/learn/programming-languages-part-c\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Mastering PostGreSQL - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.amazon.com/Mastering-PostgreSQL-Application-Development-Fontaine/dp/024494525X\"\n  }, \"https://www.amazon.com/Mastering-PostgreSQL-Application-Development-Fontaine/dp/024494525X\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"High Performance MySQL: Optimization, Backups, and Replication - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://amzn.to/3yZ8En1\"\n  }, \"https://amzn.to/3yZ8En1\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Dynamo-DB\",\n    \"title\": \"Dynamo DB\"\n  }, \"Dynamo DB\"), \" - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.dynamodbguide.com/\"\n  }, \"https://www.dynamodbguide.com/\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"High Performance  Browser Networking - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://hpbn.co/\"\n  }, \"https://hpbn.co/\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Working with TCP Sockets - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.goodreads.com/book/show/16107428-working-with-tcp-sockets\"\n  }, \"https://www.goodreads.com/book/show/16107428-working-with-tcp-sockets\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://datatracker.ietf.org/doc/html/rfc7231\"\n  }, \"https://datatracker.ietf.org/doc/html/rfc7231\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://datatracker.ietf.org/doc/html/rfc2616\"\n  }, \"https://datatracker.ietf.org/doc/html/rfc2616\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Building a Ruby Profiler - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=o6wWSPxYueU\"\n  }, \"https://www.youtube.com/watch?v=o6wWSPxYueU\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Ptrace - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://man7.org/linux/man-pages/man2/ptrace.2.html\"\n  }, \"https://man7.org/linux/man-pages/man2/ptrace.2.html\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Observability Guide - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.honeycomb.io/wp-content/uploads/2018/07/Honeycomb-Guide-Achieving-Observability-v1.pdf\"\n  }, \"https://www.honeycomb.io/wp-content/uploads/2018/07/Honeycomb-Guide-Achieving-Observability-v1.pdf\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Observability Book - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/\"\n  }, \"https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Zero Downtime - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.youtube.com/watch?v=6fc3og3bS4g\"\n  }, \"https://www.youtube.com/watch?v=6fc3og3bS4g\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Designing Data-Intensive Applications - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/\"\n  }, \"https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Design It - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.oreilly.com/library/view/design-it/9781680502923/\"\n  }, \"https://www.oreilly.com/library/view/design-it/9781680502923/\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Cracking the coding interview - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://amzn.to/2YIGhgn\"\n  }, \"https://amzn.to/2YIGhgn\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Higher Order Functions for Parsing - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.cs.nott.ac.uk/~pszgmh/parsing.pdf\"\n  }, \"https://www.cs.nott.ac.uk/~pszgmh/parsing.pdf\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Lispy - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://norvig.com/lispy.html\"\n  }, \"https://norvig.com/lispy.html\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://en.wikipedia.org/wiki/Recursive_descent_parser#:~:text=In%20computer%20science%2C%20a%20recursive,the%20nonterminals%20of%20the%20grammar\"\n  }, \"https://en.wikipedia.org/wiki/Recursive_descent_parser#:~:text=In%20computer%20science%2C%20a%20recursive,the%20nonterminals%20of%20the%20grammar\"), \".\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf\"\n  }, \"http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Master method - \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.programiz.com/dsa/master-theorem#:~:text=The%20master%20method%20is%20a,to%20have%20the%20same%20size\"\n  }, \"https://www.programiz.com/dsa/master-theorem#:~:text=The%20master%20method%20is%20a,to%20have%20the%20same%20size\"), \".\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.coursera.org/instructor/~768\"\n  }, \"https://www.coursera.org/instructor/~768\"))), mdx(\"h2\", null, \"Details\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.smlnj.org/\"\n  }, \"https://www.smlnj.org/\"))), mdx(\"h2\", null, \"More\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Engineering\",\n    \"title\": \"Engineering\"\n  }, \"Engineering\"), \"\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/mentoring\",\n    \"title\": \"mentoring\"\n  }, \"mentoring\"), \"\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/one-on-ones\",\n    \"title\": \"one on ones\"\n  }, \"one on ones\"), \" \"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/career-ladder\",\n    \"title\": \"career ladder\"\n  }, \"career ladder\"), \"\")));\n}\n;\nMDXContent.isMDXComponent = true;","inboundReferences":[{"id":"3c93a8a8-5651-50e7-8952-407eb8363023","slug":"High-Value-TODOs"},{"id":"57ef7764-81ef-5b37-8fef-82eda0a6358a","slug":"Engineer"},{"id":"b1ada242-c7e8-58d6-8cec-345e1e3fa5f2","slug":"Book-Recommendations"}]}},"pageContext":{"slug":"The-well-rounded-Enginner","node":{"childMdx":{"slug":"The-well-rounded-Enginner"}}}},
    "staticQueryHashes": []}