SlideShare a Scribd company logo
CleanCode
Writing code for humans
PAGE 1
Course
Outline
Introduction
Principles
Naming
Conditionals
Functions
Classes
Comment
Stay Clean
PAGE 2
Author
PAGE 3
CTO @ DEHA Technologies
Startup Entrepreneur
COO @ Closet.vn
Bien Hoang
Introduction
PAGE 4
Coding is for humans
Why is clean code matter?
Clean code is the Foundation
Resources
We will cover
Coding is for humans
“Programing is the art of telling another human what one wants the computer to do.”
Donald Knuth
Author of “The art of computer programing”
“Any fool can write code that a computer can understand. Good programmers write
code that humans can understand.”
Martin Fowler
Chief Scientist @ Through Work
PAGE 5
Why is clean code matters?
Reading is harder than writing
Technical debt is depressing
You’re lazy
No time to sloppy
Don’t be a verb
PAGE 6
Clean code is the Foundation
Clean Code
SOLID Code
Refactoring
DDD TDD
Automated Testing
Design Pattern
PAGE 7
Comparisons
Dirty
// Dirty code snippet
Clean
// Clean code snippet
PAGE 8
Resources
Code Complete Clean Code
PAGE 9
The Pragmatic
Programmer
Principles
PAGE 10
Three clean code principles
We will cover
Three
principles of
clean code
1. Right tool for the job
2. High signal to noise ratio
3. Self-documenting
PAGE 11
The right tool for the right job
 Creative using wrong tool is not something brag you
 Watch for boundaries
PAGE 12
The right tool for the right job
 Stay Native – Advantages
PAGE 13
Cached
Avoid string
parsing
Can minify
& obfuscate
Code
colored
Syntax
checked
Separation
of concerns
Reusable
The right tool for the right job
 Avoid using one language to write another language/format via strings.
 Leverage libraries
 One language per file.
PAGE 14
High signal to noise ratio
Signal
 Terse (Short)
 Expressive
 Do one thing.
Noise
 High cyclomatic complexity
 Excessive indentation
 Zombie code
 Unnecessary comments
 Poorly named structures
 Huge class
 Long methods
 Repetition
 No whitespace
 Overly verbose
PAGE 15
High signal to noise ratio
1. Our brain is the compiler
The “Rule of 7” effects:
 Number of parameters per method
 Number of methods in a class
 Number of variables currently in scope
2. The mess builds quietly
PAGE 16
Don’t Repeat Yourself – DRY Principle
Duplication Issues
1. Decreases signal to noise ratio.
2. Increases the number of lines of code.
3. Create a maintenance problem.
PAGE 17
Self-document code
“Understand the original programmer’s intent is the most difficult problem.”
Fjelstad & Hamlen 1979
 Clear intent
 Layers of abstractions
 Format for readability
 Favor code over comments.
PAGE 18
Naming
PAGE 19
Why is naming critical?
Names to avoid
Avoiding side-effects
Selecting good variable names
We will cover
Why naming matters?
Understanding the programmer’s intent is the biggest problem.
PAGE 20
Naming class
WebsiteBO
Utility
Common
MyFunctions
JimmysUtils
*Manager/*Processor/*Info
PAGE 21
User
Account
QueryBuilder
ProductRepository
Class Naming Guidelines
Noun Be specific
Single
Responsibility
Avoid generic
suffixes
PAGE 22
The Method Name Says It All
Go
Complete
Get
Process
DoIt
Start
On_Init, Page_Load, etc
PAGE 23
GetRegisteredUsers
IsValidSubmission
ImportDocument
SendEmail
Write a good method name, the reader doesn’t
need to read the body of the method to know
what it does.
Rubber Ducking
 Verbalizing aids creativity
 Stuck? Verbalize!
 Ask: Am I describing one thing?
 Read more: https://seal.deha.vn/?p=2402
PAGE 24
Avoid side effects
 CheckPassword shoudn’t log user out.
 ValidateSubmission shouldn’t save.
 GetUser shouldn’t create their session.
 ChangeCreditCard shouldn’t send emails.
 Make sure method names are comprehensive and tell the whole truth
PAGE 25
Naming Warning Signs
 And
 If
 Or
If you use one of them to concatenate method name, you should need more than one method.
PAGE 26
Avoid Abbreviation
 It’s not the 80s
 No standard
 We talk about code.
RegUsr
RegistUser
RegisUser
RegisterUser
PAGE 27
Naming Variables: Booleans
open
start
status
login
If (login) {
}
PAGE 28
isOpen
done
isActive
loggedIn
If (loggedIn) {
}
Naming Variables: Be Symmetrical
On/disabled
Quick/slow
Lock/open
Slow/max
PAGE 29
On/off
Fast/slow
Lock/unlock
Min/max
Conditionals
PAGE 30
Clear intent
Bite-size logic
Use the right tool
Sometimes code isn’t the answer
We will cover
Compare Booleans Implicitly
If (loggedIn == true)
PAGE 31
If (loggedIn)
Assign Booleans Implicitly
bool goingToTravel
If (cashInBank > 6000)
{
goingToTravel = true;
} else {
goingToTravel = false;
}
PAGE 32
bool goingToTravel = cashInBank > 6000;
 Fewer lines
 One declaration
 No repetition
 Reads like speech
Be Positive
If (!isNotLoggedIn)
PAGE 33
If (loggedIn)
Ternary is Beautiful
Int registrationFee;
If (isSpeaker)
{
registrationFree = 0;
} else {
registrationFee = 50;
}
PAGE 34
Int registrationFee = isSpeaker ? 0 : 50;
Honors DRY: Don’t repeat your self.
YAGNI: You ain’t gonna need it (add complexity
when needed)
Be Strongly Typed, Not “Stringly” Typed
If (employeeType == “manager”)
PAGE 35
If (imployee.type == EmployeeType.Manager)
 No typos
 IntelliSense
 Document states
 Searchable
Magic Numbers
If (age > 21)
{
}
If (status == 2)
{
}
PAGE 36
const int legalDrinkingAge = 21
If (age > legalDrinkingAge)
{
}
If (status == Status.active)
{
}
Complex Conditionals
PAGE 37
Complex Conditionals
PAGE 38
Favor expressive code over comments
Favor Polymorphism Over Switch
PAGE 39
Favor Polymorphism Over Switch
PAGE 40
Be Declarative
PAGE 41
Table Driven Methods
PAGE 42
Table Driven Methods
 Great for dynamic logic
 Avoids hard coding
 Write less code
 Avoids complex data structures
 Make changes without a code deployment
PAGE 43
Methods
PAGE 44
High signal functions
When to create a function
Techniques to maintain simplicity
Approaches to minimize variable
lifetime
Signs a function is to long
Exceptions and error handling
We will cover
When to create functions/methods ?
PAGE 45
Avoid
Duplication
Indentation
Unclear
intent
> 1 task
Why to create functions/methods?
PAGE 46
DRY
Less is
More
Code is a
liability
Indentation
Indentation Solution - Extract Method
PAGE 47
Indentation Solution - Fail Fast
PAGE 48
Indentation Solution - Fail Fast
PAGE 49
Indentation Solution - Return Early
PAGE 50
Indentation Solution - Return Early
PAGE 51
Indentation Solution - Return Early
PAGE 52
Unclear Intent Solution – Convey Intent
PAGE 53
Do One Thing
PAGE 54
Aids the
reader
Promotes
reuse
Eases naming
and testing
Avoid side-
affects
Mayfly Variables
Mayfly variable recipe
1. Initialize variables just-in-time
2. Do one thing.
PAGE 55
How Many Parameters?
PAGE 56
How Many Parameters?
PAGE 57
Sign It’s Too Long
PAGE 58
A function should be
1. Rarely be over 20 lines
2. Rarely over 3 parameters
Whitespace &
Comments
Scrolling
required
Naming
issues
Multiple
Conditionals
Hard to digest
(Rule of 7)
Handling Exceptions
PAGE 59
Can’t handle the exception?
Fail fast. Fail loud
Unrecoverable
Null reference
File not found
Access denied
Recoverable
Retry connection
Try different file
Wait and try again
Ignorable
Logging click
Try/Catch/Log = Fail Slow
PAGE 60
Try/Catch/Log = Fail Slow
PAGE 61
Summary
PAGE 62
Classes
PAGE 63
Class are look like headings
When to create a class
Measuring quality
Cohesion
Name
Size
Primitive obsession
Proximity principle
Outline rule
We will cover
Classes Are Like Book Headings
PAGE 64
When to create classes?
• Abstract or real-world
New concept
• Method should relate
Low Cohesion
• Small, targeted => reuse
Promote Reuse
• Solve once, hide away
Reduce complexity
• Identify a group of data
Clarify parameters
PAGE 65
Class Responsibilities Should Be Strongly Related
PAGE 66
 Enhances readability
 Increases likelihood of reuse
 Avoids attracting the lazy
 Watch for
- Standalone methods.
- Fields used by only one method
- Classes that change often.
Low vs High Cohesion
PAGE 67
Broad Names Lead to Poor Cohesion
PAGE 68
Signs a Class is to Small
PAGE 69
Primitive Obsession
PAGE 70
Proximity Principle
PAGE 71
The Outline Rule
PAGE 72
The Outline Rule
PAGE 73
Summary
PAGE 74
Comments
PAGE 75
A necessity and a crutch
Comments to avoid
Useful comments
We will cover
A Necessity and a Crutch
PAGE 76
Redundant Comments
PAGE 77
Intent Comments
PAGE 78
Apology Comments
PAGE 79
Warning Comments
PAGE 80
Zombie Code
Common Causes
 Risk Aversion
 Hoarding mentality
PAGE 81
Divider Comments
PAGE 82
Brace Tracker Comments
PAGE 83
Bloated Header
PAGE 84
Defect Log
PAGE 85
Clean Comments
TODO Comments
Documentation
Summary Comments
PAGE 86
Summary
PAGE 87
Staying Clean
PAGE 88
When to refactor
Techniques for staying clean
We will cover
When to Refactor to Clean Code
PAGE 89
Code Review and Pairing
Code Review Work in Pairs
PAGE 90
Accept No Broken Window
PAGE 91
The Boy Scout Rule
PAGE 92

More Related Content

What's hot

Clean code
Clean codeClean code
Clean code
Mahmoud Zizo
 
Clean coding-practices
Clean coding-practicesClean coding-practices
Clean coding-practices
John Ferguson Smart Limited
 
Keep your code clean
Keep your code cleanKeep your code clean
Keep your code clean
macrochen
 
Clean Code
Clean CodeClean Code
Clean Code
ISchwarz23
 
Clean code
Clean codeClean code
Clean code
Jean Carlo Machado
 
Javascript Clean Code
Javascript Clean CodeJavascript Clean Code
Javascript Clean Code
Petra Barus
 
Clean code presentation
Clean code presentationClean code presentation
Clean code presentation
Bhavin Gandhi
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
Trisha Gee
 
Clean code slide
Clean code slideClean code slide
Clean code slide
Anh Huan Miu
 
Clean code
Clean codeClean code
Clean code
Henrique Smoco
 
Clean Code
Clean CodeClean Code
Clean Code
Victor Rentea
 
Clean code
Clean codeClean code
Clean code
Duc Nguyen Quang
 
Clean Code: Successive Refinement
Clean Code: Successive RefinementClean Code: Successive Refinement
Clean Code: Successive Refinement
Ali A Jalil
 
7 rules of simple and maintainable code
7 rules of simple and maintainable code7 rules of simple and maintainable code
7 rules of simple and maintainable code
Geshan Manandhar
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
Ariane Izac
 
Writing clean code
Writing clean codeWriting clean code
Writing clean code
Angel Garcia Olloqui
 
Clean code
Clean codeClean code
Clean code
Arturo Herrero
 
Clean code
Clean code Clean code
Clean code
Achintya Kumar
 
Writing clean and maintainable code
Writing clean and maintainable codeWriting clean and maintainable code
Writing clean and maintainable code
Marko Heijnen
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
CodeOps Technologies LLP
 

What's hot (20)

Clean code
Clean codeClean code
Clean code
 
Clean coding-practices
Clean coding-practicesClean coding-practices
Clean coding-practices
 
Keep your code clean
Keep your code cleanKeep your code clean
Keep your code clean
 
Clean Code
Clean CodeClean Code
Clean Code
 
Clean code
Clean codeClean code
Clean code
 
Javascript Clean Code
Javascript Clean CodeJavascript Clean Code
Javascript Clean Code
 
Clean code presentation
Clean code presentationClean code presentation
Clean code presentation
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
Clean code slide
Clean code slideClean code slide
Clean code slide
 
Clean code
Clean codeClean code
Clean code
 
Clean Code
Clean CodeClean Code
Clean Code
 
Clean code
Clean codeClean code
Clean code
 
Clean Code: Successive Refinement
Clean Code: Successive RefinementClean Code: Successive Refinement
Clean Code: Successive Refinement
 
7 rules of simple and maintainable code
7 rules of simple and maintainable code7 rules of simple and maintainable code
7 rules of simple and maintainable code
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
Writing clean code
Writing clean codeWriting clean code
Writing clean code
 
Clean code
Clean codeClean code
Clean code
 
Clean code
Clean code Clean code
Clean code
 
Writing clean and maintainable code
Writing clean and maintainable codeWriting clean and maintainable code
Writing clean and maintainable code
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 

Similar to Clean Code - Writing code for human

YAGNI Principle and Clean Code
YAGNI Principle and Clean CodeYAGNI Principle and Clean Code
YAGNI Principle and Clean Code
Luan Reffatti
 
Raya code quality guidelines - enhancing readability
Raya code quality guidelines - enhancing readabilityRaya code quality guidelines - enhancing readability
Raya code quality guidelines - enhancing readability
Abdel Hady Muhammad
 
Clean code
Clean codeClean code
Clean code
Uday Pratap Singh
 
Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
John Choi
 
CLEAN CODE
CLEAN CODECLEAN CODE
CLEAN CODE
Knoldus Inc.
 
How Functional Programming Made Me A Better Developer
How Functional Programming Made Me A Better DeveloperHow Functional Programming Made Me A Better Developer
How Functional Programming Made Me A Better Developer
Cameron Presley
 
Clean Code
Clean CodeClean Code
Clean Code
Chris Farrell
 
Clean code, Feb 2012
Clean code, Feb 2012Clean code, Feb 2012
Clean code, Feb 2012
cobyst
 
Clean Code Software Engineering
Clean Code Software Engineering Clean Code Software Engineering
Clean Code Software Engineering
Inocentshuja Ahmad
 
Clean code coding like a professional
Clean code   coding like a professionalClean code   coding like a professional
Clean code coding like a professional
Nhật Nguyễn Khắc
 
Stop fearing legacy code
Stop fearing legacy codeStop fearing legacy code
Stop fearing legacy code
Yaki Koren
 
Programming style guildelines
Programming style guildelinesProgramming style guildelines
Programming style guildelines
Rich Nguyen
 
Coding Checkpoints
Coding CheckpointsCoding Checkpoints
Coding Checkpoints
George Orhewere
 
高品質軟體的基本動作 101 for NTHU
高品質軟體的基本動作 101 for NTHU高品質軟體的基本動作 101 for NTHU
高品質軟體的基本動作 101 for NTHU
Su Jan
 
The alignment
The alignmentThe alignment
The alignment
Alberto Brandolini
 
Clean Code
Clean CodeClean Code
Clean Code
ssusera3d06b1
 
Tdd in practice
Tdd in practiceTdd in practice
Tdd in practice
Andrew Meredith
 
Coding Standards
Coding StandardsCoding Standards
Coding Standards
Jeevitesh Ms
 
Writing Readable Code
Writing Readable CodeWriting Readable Code
Writing Readable Code
eddiehaber
 
2018 01-29 - brewbox - refactoring. sempre, senza pietà
2018 01-29 - brewbox - refactoring. sempre, senza pietà2018 01-29 - brewbox - refactoring. sempre, senza pietà
2018 01-29 - brewbox - refactoring. sempre, senza pietà
Roberto Albertini
 

Similar to Clean Code - Writing code for human (20)

YAGNI Principle and Clean Code
YAGNI Principle and Clean CodeYAGNI Principle and Clean Code
YAGNI Principle and Clean Code
 
Raya code quality guidelines - enhancing readability
Raya code quality guidelines - enhancing readabilityRaya code quality guidelines - enhancing readability
Raya code quality guidelines - enhancing readability
 
Clean code
Clean codeClean code
Clean code
 
Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
 
CLEAN CODE
CLEAN CODECLEAN CODE
CLEAN CODE
 
How Functional Programming Made Me A Better Developer
How Functional Programming Made Me A Better DeveloperHow Functional Programming Made Me A Better Developer
How Functional Programming Made Me A Better Developer
 
Clean Code
Clean CodeClean Code
Clean Code
 
Clean code, Feb 2012
Clean code, Feb 2012Clean code, Feb 2012
Clean code, Feb 2012
 
Clean Code Software Engineering
Clean Code Software Engineering Clean Code Software Engineering
Clean Code Software Engineering
 
Clean code coding like a professional
Clean code   coding like a professionalClean code   coding like a professional
Clean code coding like a professional
 
Stop fearing legacy code
Stop fearing legacy codeStop fearing legacy code
Stop fearing legacy code
 
Programming style guildelines
Programming style guildelinesProgramming style guildelines
Programming style guildelines
 
Coding Checkpoints
Coding CheckpointsCoding Checkpoints
Coding Checkpoints
 
高品質軟體的基本動作 101 for NTHU
高品質軟體的基本動作 101 for NTHU高品質軟體的基本動作 101 for NTHU
高品質軟體的基本動作 101 for NTHU
 
The alignment
The alignmentThe alignment
The alignment
 
Clean Code
Clean CodeClean Code
Clean Code
 
Tdd in practice
Tdd in practiceTdd in practice
Tdd in practice
 
Coding Standards
Coding StandardsCoding Standards
Coding Standards
 
Writing Readable Code
Writing Readable CodeWriting Readable Code
Writing Readable Code
 
2018 01-29 - brewbox - refactoring. sempre, senza pietà
2018 01-29 - brewbox - refactoring. sempre, senza pietà2018 01-29 - brewbox - refactoring. sempre, senza pietà
2018 01-29 - brewbox - refactoring. sempre, senza pietà
 

Recently uploaded

How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...
How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...
How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...
Aleksey Savkin
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
JeremyPeirce1
 
Understanding User Needs and Satisfying Them
Understanding User Needs and Satisfying ThemUnderstanding User Needs and Satisfying Them
Understanding User Needs and Satisfying Them
Aggregage
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
my Pandit
 
Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024
FelixPerez547899
 
-- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month ---- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month --
NZSG
 
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
hartfordclub1
 
Business storytelling: key ingredients to a story
Business storytelling: key ingredients to a storyBusiness storytelling: key ingredients to a story
Business storytelling: key ingredients to a story
Alexandra Fulford
 
amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05
marketing317746
 
Digital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on SustainabilityDigital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on Sustainability
sssourabhsharma
 
Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024
Top Forex Brokers Review
 
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
APCO
 
Income Tax exemption for Start up : Section 80 IAC
Income Tax  exemption for Start up : Section 80 IACIncome Tax  exemption for Start up : Section 80 IAC
Income Tax exemption for Start up : Section 80 IAC
CA Dr. Prithvi Ranjan Parhi
 
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel ChartSatta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
Creative Web Design Company in Singapore
Creative Web Design Company in SingaporeCreative Web Design Company in Singapore
Creative Web Design Company in Singapore
techboxsqauremedia
 
3 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 20243 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 2024
SEOSMMEARTH
 
Building Your Employer Brand with Social Media
Building Your Employer Brand with Social MediaBuilding Your Employer Brand with Social Media
Building Your Employer Brand with Social Media
LuanWise
 
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
SOFTTECHHUB
 
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
AnnySerafinaLove
 

Recently uploaded (20)

How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...
How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...
How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
 
Understanding User Needs and Satisfying Them
Understanding User Needs and Satisfying ThemUnderstanding User Needs and Satisfying Them
Understanding User Needs and Satisfying Them
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
 
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
 
Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024
 
-- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month ---- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month --
 
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
 
Business storytelling: key ingredients to a story
Business storytelling: key ingredients to a storyBusiness storytelling: key ingredients to a story
Business storytelling: key ingredients to a story
 
amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05
 
Digital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on SustainabilityDigital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on Sustainability
 
Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024
 
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...
 
Income Tax exemption for Start up : Section 80 IAC
Income Tax  exemption for Start up : Section 80 IACIncome Tax  exemption for Start up : Section 80 IAC
Income Tax exemption for Start up : Section 80 IAC
 
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel ChartSatta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
 
Creative Web Design Company in Singapore
Creative Web Design Company in SingaporeCreative Web Design Company in Singapore
Creative Web Design Company in Singapore
 
3 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 20243 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 2024
 
Building Your Employer Brand with Social Media
Building Your Employer Brand with Social MediaBuilding Your Employer Brand with Social Media
Building Your Employer Brand with Social Media
 
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
 
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
Anny Serafina Love - Letter of Recommendation by Kellen Harkins, MS.
 

Clean Code - Writing code for human