SlideShare a Scribd company logo
1 of 44
Download to read offline
Codebase
orienteering
Brainrepo
Mauro Murru
host @ gitbar podcast (www.gitbar.it)
senior software engineer @ nearform
@brainrepo - brainrepo.dev
Knowns to be verified
Knowns to be verified
Known unknowns
Known unknowns
Unknown-knowns
Unknown-knowns
Unknowns-unknowns
Unknowns-unknowns
Insights guided by
Internal or external consistency
Learn to ask
Knowns to be verified
Knowns to be verified
Topics to delve
Rabbit holes
Cognitive load management
Active procrastination
Known unknowns
Known unknowns
keep listening to spot
the ephipany
Unknown knowns
Unknown knowns
james joyce
vincent mcdonnell
james joyce
vincent mcdonnell
Obscurity occurs when important
information is not obvious.
Docs = red flag
A keen eye for detail
Read ADR, pr and issues
Unknown unknowns
Unknown unknowns
When
Why
How
What
Where
Detective John Kali
What
Where
main()
package.json
Code isn’t linear!
Like an urban exploration,
dig through the code
What
Where
Know your tools
Search selection
Match word tool
Prev / next search
(cmd + shift + f)
F4 / shift + F4
VIM ALTERNATIVE: TELESCOPE
Is our search only
a disposable asset?
We can save and
share our searches.
Grasp more info
from the context.
Is your repo an
island?
Our project can be consistent with
numerous projects inside the
organisation.
Github advanced search
Sourcegraph search
How
How
Run it as early as possible
Debugger or console.log could be
useful to create our exploration
landmarks
How
If you can’t run
Run in your head reducing the noise exposure
Who and when
To ping someone,
it is essential to
know who they are.
Who & when
Git || Gitlens
Who & when
Git blame
Who & when
Git Log
--pretty
Who & when
Clicking on the
point I can
quickly see
the diff and see
the file evolution
history
Why
As a matter of
fact, codebase
knowledge is more
than just lines
of code
A multitude of clues
and relevant whys
can be found in
the PRs and Issues threads.
Why
Why
Quick access
to issues and
PRs/MRs
how to ask for help
Once the doubt has been identified, we must
know how to ask for help from those who possess
the information.
HELP! Next.js
navigation is not
working.
Can't use next/navigation 'redirect' method inside the layout
file
I'm using the "next/navigation" redirect function to redirect
the page to the login page if the session is not found. I'm
using that function inside a server component which is inside
the "layout.tsx" file.
The page doesn't redirects and the screen shows an unhandled
runtime error (Error: NEXT_REDIRECT) that makes me think that
the redirect method is not being executed on the server side,
because the error shows in the client. If I use this same method
inside a component on the "page.tsx" file it works perfectly.
pnpm run dev
Go to localhost:3000
The app should detect that the user is not logged and should
redirect automatically to the login page but the error will
show.
Node: 18.12.1 npm: 8.19.2 Yarn: 1.22.19 pnpm: 7.17.0
next: 13.0.6-canary.1 react: 18.2.0 react-dom: 18.2.0
To Reproduce
Anatomy of a well-
crafted question
What I want to know?
Who am I talking to?
Where I am
and how I got there?
The etiquette/galateo
of asking for help.
Don’t ask to ask
Makes the
interlocutor lose
time by slowing down
communication
Don’t be lazy
Check the grammar,
spelling and font
(use monospaced font
for code)
Don’t expect
only confirmations
You can find a clue
under every word, so
be open to new ideas
Avoid passive-
aggressive behaviors
Wait, don’t use
urgent/help, share the
answers
You are asking for
help not the
solution!
the cost of asking help
Expensive, large bandwidth but
super limited to scale.
Implement the documentation.
Faster, easy to find the
knowledge holder, low signal-
noise ratio.
One to One One to many
Stay in the loop
feature, pr, slack, discord,
news...
The emotional impact of the answer
'Illustration: 'Nika Akin''
Make sure you don't interpret
the answer as a judgment
RTFM / STFW
Make this silly answer useful
by asking where (which topic)
and why (for which lack)
created by the way
information is presented
to the person
is the result of the
constructive method of
handling information
Germane
the cognitive load
associated with the nature
and subject matter
Intrinsic Extraneous
7 ± 2 elements
20 sec. Duration
(Miller 1956)
Continuous evolution
Synaptic Plasticity during sleep
(Sleep function and synaptic
homeostasis Giulio Tononi, Chiara
Cirelli 2005)
Working memory:
Long term memory:
External world
the cognitive load theory
LEARNING
REM
EMB
ERI
NG
FORGETTING
ATTENTION
Know ≠ understand
Know: know the notion
Understand: the concept becomes a part of yourself
reduce the
cognitive load
The Vilfredo Pareto’s rule: 80/20
spot the gems
Look at the first commits
https://github.com/mercurius-js/mercurius/commit/main?
after=4c8242...+300&branch=main
git log --reverse --all | head -30
Find the hot spots
Look at the parts that
change frequently
git log --pretty=format: --name-only | sed
'/^s*$/d' | sort | uniq -c | sort -rg |
head -100
Manage the leftovers
Activate procrastination with planned revaluation
Tdd - Test
driven discovery
E2E: Understand the whole picture
Unit: Limit the scope (blackbox)
Tdd - Test
driven discovery
E2E: Understand the whole picture
Unit: Limit the scope (blackbox)
A bird eye view
To understand the structure, create a small
chart representing the codebase
or use tools like
Fastify overview (<3 eomm)
The senior engineer is not
a strange all-knowing creature.
But whom can
convert fast and effectively
unknown unknowns known unknowns
Brainrepo
Mauro Murru
FOLLOW ME ON:
youtube.com/@gitbar
https://www.linkedin.com/in/mauro-murru/
www.brainrepo.dev

More Related Content

Similar to Codebase orienteering, how to gain confidence with an unknown codebase

How Sentiment Analysis works
How Sentiment Analysis worksHow Sentiment Analysis works
How Sentiment Analysis worksCJ Jenkins
 
HCI 3e - Ch 18: Modelling rich interaction
HCI 3e - Ch 18:  Modelling rich interactionHCI 3e - Ch 18:  Modelling rich interaction
HCI 3e - Ch 18: Modelling rich interactionAlan Dix
 
Hushcon 2016 Keynote: Test for Echo
Hushcon 2016 Keynote: Test for EchoHushcon 2016 Keynote: Test for Echo
Hushcon 2016 Keynote: Test for EchoDeja vu Security
 
metanoia presentation
metanoia presentationmetanoia presentation
metanoia presentationaiWorker.com
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial IntelligenceNiket Singh
 
Brains@Bay Meetup: The Effect of Sensorimotor Learning on the Learned Represe...
Brains@Bay Meetup: The Effect of Sensorimotor Learning on the Learned Represe...Brains@Bay Meetup: The Effect of Sensorimotor Learning on the Learned Represe...
Brains@Bay Meetup: The Effect of Sensorimotor Learning on the Learned Represe...Numenta
 
Extending the Mind with Cognitive Prosthetics?
Extending the Mind with Cognitive Prosthetics? Extending the Mind with Cognitive Prosthetics?
Extending the Mind with Cognitive Prosthetics? PhiloWeb
 
Artificial Intelligence is back, Deep Learning Networks and Quantum possibili...
Artificial Intelligence is back, Deep Learning Networks and Quantum possibili...Artificial Intelligence is back, Deep Learning Networks and Quantum possibili...
Artificial Intelligence is back, Deep Learning Networks and Quantum possibili...John Mathon
 
Deep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItDeep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItHolberton School
 
DL Classe 0 - You can do it
DL Classe 0 - You can do itDL Classe 0 - You can do it
DL Classe 0 - You can do itGregory Renard
 
Opsec for security researchers
Opsec for security researchersOpsec for security researchers
Opsec for security researchersvicenteDiaz_KL
 
Useful website, apps, tools for studying and working. YOUNG 2013
Useful website, apps, tools for studying and working. YOUNG 2013Useful website, apps, tools for studying and working. YOUNG 2013
Useful website, apps, tools for studying and working. YOUNG 2013Andrea Vaccarella
 
Minimalist A1 Documentation.pdf
Minimalist A1 Documentation.pdfMinimalist A1 Documentation.pdf
Minimalist A1 Documentation.pdfs3926778
 
A tutorial on deep learning at icml 2013
A tutorial on deep learning at icml 2013A tutorial on deep learning at icml 2013
A tutorial on deep learning at icml 2013Philip Zheng
 
Hpai class 12 - potpourri &amp; perception - 032620
Hpai   class 12 - potpourri &amp; perception - 032620Hpai   class 12 - potpourri &amp; perception - 032620
Hpai class 12 - potpourri &amp; perception - 032620melendez321
 

Similar to Codebase orienteering, how to gain confidence with an unknown codebase (20)

How Sentiment Analysis works
How Sentiment Analysis worksHow Sentiment Analysis works
How Sentiment Analysis works
 
HCI 3e - Ch 18: Modelling rich interaction
HCI 3e - Ch 18:  Modelling rich interactionHCI 3e - Ch 18:  Modelling rich interaction
HCI 3e - Ch 18: Modelling rich interaction
 
Hushcon 2016 Keynote: Test for Echo
Hushcon 2016 Keynote: Test for EchoHushcon 2016 Keynote: Test for Echo
Hushcon 2016 Keynote: Test for Echo
 
metanoia presentation
metanoia presentationmetanoia presentation
metanoia presentation
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial Intelligence
 
Brains@Bay Meetup: The Effect of Sensorimotor Learning on the Learned Represe...
Brains@Bay Meetup: The Effect of Sensorimotor Learning on the Learned Represe...Brains@Bay Meetup: The Effect of Sensorimotor Learning on the Learned Represe...
Brains@Bay Meetup: The Effect of Sensorimotor Learning on the Learned Represe...
 
Extending the Mind with Cognitive Prosthetics?
Extending the Mind with Cognitive Prosthetics? Extending the Mind with Cognitive Prosthetics?
Extending the Mind with Cognitive Prosthetics?
 
Artificial Intelligence is back, Deep Learning Networks and Quantum possibili...
Artificial Intelligence is back, Deep Learning Networks and Quantum possibili...Artificial Intelligence is back, Deep Learning Networks and Quantum possibili...
Artificial Intelligence is back, Deep Learning Networks and Quantum possibili...
 
Deep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItDeep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do It
 
DL Classe 0 - You can do it
DL Classe 0 - You can do itDL Classe 0 - You can do it
DL Classe 0 - You can do it
 
Patterns of fail
Patterns of failPatterns of fail
Patterns of fail
 
Opsec for security researchers
Opsec for security researchersOpsec for security researchers
Opsec for security researchers
 
Useful website, apps, tools for studying and working. YOUNG 2013
Useful website, apps, tools for studying and working. YOUNG 2013Useful website, apps, tools for studying and working. YOUNG 2013
Useful website, apps, tools for studying and working. YOUNG 2013
 
HCI Quick Guide
HCI Quick GuideHCI Quick Guide
HCI Quick Guide
 
Ev681 computing 1
Ev681   computing 1Ev681   computing 1
Ev681 computing 1
 
Minimalist A1 Documentation.pdf
Minimalist A1 Documentation.pdfMinimalist A1 Documentation.pdf
Minimalist A1 Documentation.pdf
 
It's Not in the Job Description
It's Not in the Job DescriptionIt's Not in the Job Description
It's Not in the Job Description
 
A tutorial on deep learning at icml 2013
A tutorial on deep learning at icml 2013A tutorial on deep learning at icml 2013
A tutorial on deep learning at icml 2013
 
Introduction to deep learning
Introduction to deep learningIntroduction to deep learning
Introduction to deep learning
 
Hpai class 12 - potpourri &amp; perception - 032620
Hpai   class 12 - potpourri &amp; perception - 032620Hpai   class 12 - potpourri &amp; perception - 032620
Hpai class 12 - potpourri &amp; perception - 032620
 

Recently uploaded

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Codebase orienteering, how to gain confidence with an unknown codebase

  • 1. Codebase orienteering Brainrepo Mauro Murru host @ gitbar podcast (www.gitbar.it) senior software engineer @ nearform @brainrepo - brainrepo.dev
  • 2.
  • 3.
  • 4. Knowns to be verified Knowns to be verified Known unknowns Known unknowns Unknown-knowns Unknown-knowns Unknowns-unknowns Unknowns-unknowns
  • 5. Insights guided by Internal or external consistency Learn to ask Knowns to be verified Knowns to be verified
  • 6. Topics to delve Rabbit holes Cognitive load management Active procrastination Known unknowns Known unknowns
  • 7. keep listening to spot the ephipany Unknown knowns Unknown knowns james joyce vincent mcdonnell james joyce vincent mcdonnell
  • 8. Obscurity occurs when important information is not obvious. Docs = red flag A keen eye for detail Read ADR, pr and issues Unknown unknowns Unknown unknowns
  • 10. What Where main() package.json Code isn’t linear! Like an urban exploration, dig through the code
  • 12. Search selection Match word tool Prev / next search (cmd + shift + f) F4 / shift + F4 VIM ALTERNATIVE: TELESCOPE
  • 13. Is our search only a disposable asset? We can save and share our searches. Grasp more info from the context.
  • 14. Is your repo an island? Our project can be consistent with numerous projects inside the organisation. Github advanced search Sourcegraph search
  • 15. How
  • 16. How Run it as early as possible Debugger or console.log could be useful to create our exploration landmarks
  • 17. How If you can’t run Run in your head reducing the noise exposure
  • 19. To ping someone, it is essential to know who they are. Who & when Git || Gitlens
  • 20. Who & when Git blame
  • 21. Who & when Git Log --pretty
  • 22. Who & when Clicking on the point I can quickly see the diff and see the file evolution history
  • 23. Why
  • 24. As a matter of fact, codebase knowledge is more than just lines of code A multitude of clues and relevant whys can be found in the PRs and Issues threads. Why
  • 26. how to ask for help Once the doubt has been identified, we must know how to ask for help from those who possess the information.
  • 27. HELP! Next.js navigation is not working. Can't use next/navigation 'redirect' method inside the layout file I'm using the "next/navigation" redirect function to redirect the page to the login page if the session is not found. I'm using that function inside a server component which is inside the "layout.tsx" file. The page doesn't redirects and the screen shows an unhandled runtime error (Error: NEXT_REDIRECT) that makes me think that the redirect method is not being executed on the server side, because the error shows in the client. If I use this same method inside a component on the "page.tsx" file it works perfectly. pnpm run dev Go to localhost:3000 The app should detect that the user is not logged and should redirect automatically to the login page but the error will show. Node: 18.12.1 npm: 8.19.2 Yarn: 1.22.19 pnpm: 7.17.0 next: 13.0.6-canary.1 react: 18.2.0 react-dom: 18.2.0 To Reproduce
  • 28. Anatomy of a well- crafted question What I want to know? Who am I talking to? Where I am and how I got there?
  • 29. The etiquette/galateo of asking for help. Don’t ask to ask Makes the interlocutor lose time by slowing down communication Don’t be lazy Check the grammar, spelling and font (use monospaced font for code) Don’t expect only confirmations You can find a clue under every word, so be open to new ideas Avoid passive- aggressive behaviors Wait, don’t use urgent/help, share the answers You are asking for help not the solution!
  • 30. the cost of asking help Expensive, large bandwidth but super limited to scale. Implement the documentation. Faster, easy to find the knowledge holder, low signal- noise ratio. One to One One to many Stay in the loop feature, pr, slack, discord, news...
  • 31. The emotional impact of the answer 'Illustration: 'Nika Akin'' Make sure you don't interpret the answer as a judgment RTFM / STFW Make this silly answer useful by asking where (which topic) and why (for which lack)
  • 32. created by the way information is presented to the person is the result of the constructive method of handling information Germane the cognitive load associated with the nature and subject matter Intrinsic Extraneous
  • 33. 7 ± 2 elements 20 sec. Duration (Miller 1956) Continuous evolution Synaptic Plasticity during sleep (Sleep function and synaptic homeostasis Giulio Tononi, Chiara Cirelli 2005) Working memory: Long term memory: External world the cognitive load theory LEARNING REM EMB ERI NG FORGETTING ATTENTION
  • 34. Know ≠ understand Know: know the notion Understand: the concept becomes a part of yourself
  • 35. reduce the cognitive load The Vilfredo Pareto’s rule: 80/20
  • 36. spot the gems Look at the first commits https://github.com/mercurius-js/mercurius/commit/main? after=4c8242...+300&branch=main git log --reverse --all | head -30
  • 37. Find the hot spots Look at the parts that change frequently git log --pretty=format: --name-only | sed '/^s*$/d' | sort | uniq -c | sort -rg | head -100
  • 38. Manage the leftovers Activate procrastination with planned revaluation
  • 39. Tdd - Test driven discovery E2E: Understand the whole picture Unit: Limit the scope (blackbox)
  • 40. Tdd - Test driven discovery E2E: Understand the whole picture Unit: Limit the scope (blackbox)
  • 41. A bird eye view To understand the structure, create a small chart representing the codebase or use tools like Fastify overview (<3 eomm)
  • 42.
  • 43. The senior engineer is not a strange all-knowing creature. But whom can convert fast and effectively unknown unknowns known unknowns
  • 44. Brainrepo Mauro Murru FOLLOW ME ON: youtube.com/@gitbar https://www.linkedin.com/in/mauro-murru/ www.brainrepo.dev