SlideShare a Scribd company logo
1 of 164
Download to read offline
The Effective 🚀 Developer
Work Smarter 💡 , Not Harder 💪
Sven Peters @svenpet
Writes smart code
Fixing bugs immediately
Adding new features like a champ
Never stop, always hacking
Always on, always available
That was me in 2003
Super effective
Super effective, really?
Smart code Don’t touch
Fixing all the bugs Not root problem
Adding features Never used
Never stop Context switching
Always on Broader view
Don’t touch
Not root problem
Never used
Context switching
Broader view
Efficient
Efficient Effective?
Waterfall CVS / File Silos
Agile CI/CD DevOps
Agile CI/CD DevOps
X-Func
Teams
Cloud
Super effective?
Super effective?
💪
Super effective
Work Smarter 💡 , Not Harder 💪
Good Code
To be more effective
🚀
Spending more time
writing?
The machine
doesn’t care
Spending more time
writing?
The machine
doesn’t care …but humans do
Spending more time
writing?
Readcode
more often than
Write code
class clc {
public static final double RATES_OF_I_TAX=10;
private static final double RATES_OF_H_INS= 1.5;
protected static final double RATES_OF_S_INS= 7;
public static void main(String args[]){
int grosssalary=1000;
int net=clc.calc(grosssalary);
clc.printincomeinformation(grosssalary, net);
}
public static int calc (int salary){
double deductiona= salary*(RATES_OF_I_TAX/ 100);
double deductionb=salary*(RATES_OF_H_INS/100);
double deductionc = salary * (RATES_OF_S_INS/ 100);
int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc;
return tmp;
}
public static void printincomeinformation(int allsalary, int homepay)
{
System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern");
if (3000<allsalary)
{
System.out.println("You get great salary!nDo your best at work!n");;
};
if (3000>=allsalary) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
class clc {
public static final double RATES_OF_I_TAX=10;
private static final double RATES_OF_H_INS= 1.5;
protected static final double RATES_OF_S_INS= 7;
public static void main(String args[]){
int grosssalary=1000;
int net=clc.calc(grosssalary);
clc.printincomeinformation(grosssalary, net);
}
public static int calc (int salary){
double deductiona= salary*(RATES_OF_I_TAX/ 100);
double deductionb=salary*(RATES_OF_H_INS/100);
double deductionc = salary * (RATES_OF_S_INS/ 100);
int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc;
return tmp;
}
public static void printincomeinformation(int allsalary, int homepay)
{
System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern");
if (3000<allsalary)
{
System.out.println("You get great salary!nDo your best at work!n");;
};
if (3000>=allsalary) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
I don’t understand it 🤯
ohh…. I wrote it 🤦
class clc {
public static final double RATES_OF_I_TAX=10;
private static final double RATES_OF_H_INS= 1.5;
protected static final double RATES_OF_S_INS= 7;
public static void main(String args[]){
int grosssalary=1000;
int net=clc.calc(grosssalary);
clc.printincomeinformation(grosssalary, net);
}
public static int calc (int salary){
double deductiona= salary*(RATES_OF_I_TAX/ 100);
double deductionb=salary*(RATES_OF_H_INS/100);
double deductionc = salary * (RATES_OF_S_INS/ 100);
int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc;
return tmp;
}
public static void printincomeinformation(int allsalary, int homepay)
{
System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern");
if (3000<allsalary)
{
System.out.println("You get great salary!nDo your best at work!n");;
};
if (allsalary<=3000) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
class clc {
public static final double RATES_OF_I_TAX=10;
private static final double RATES_OF_H_INS= 1.5;
protected static final double RATES_OF_S_INS= 7;
public static void main(String args[]){
int grosssalary=1000;
int net=clc.calc(grosssalary);
clc.printincomeinformation(grosssalary, net);
}
public static int calc (int salary){
double deductiona= salary*(RATES_OF_I_TAX/ 100);
double deductionb=salary*(RATES_OF_H_INS/100);
double deductionc = salary * (RATES_OF_S_INS/ 100);
int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc;
return tmp;
}
public static void printincomeinformation(int allsalary, int homepay)
{
System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern");
if (3000<allsalary)
{
System.out.println("You get great salary!nDo your best at work!n");;
};
if (allsalary<=3000) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
class clc {
public static final double RATES_OF_I_TAX=10;
private static final double RATES_OF_H_INS= 1.5;
protected static final double RATES_OF_S_INS= 7;
public static void main(String args[]){
int grosssalary=1000;
int net=clc.calc(grosssalary);
clc.printincomeinformation(grosssalary, net);
}
public static int calc (int salary){
double deductiona= salary*(RATES_OF_I_TAX/ 100);
double deductionb=salary*(RATES_OF_H_INS/100);
double deductionc = salary * (RATES_OF_S_INS/ 100);
int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc;
return tmp;
}
public static void printincomeinformation(int allsalary, int homepay)
{
System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern");
if (3000<allsalary)
{
System.out.println("You get great salary!nDo your best at work!n");;
};
if (allsalary<=3000) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
class clc {
public static final double RATES_OF_I_TAX=10;
private static final double RATES_OF_H_INS= 1.5;
protected static final double RATES_OF_S_INS= 7;
public static void main(String args[]){
int grosssalary=1000;
int net=clc.calc(grosssalary);
clc.printincomeinformation(grosssalary, net);
}
public static int calc (int salary){
double deductiona= salary*(RATES_OF_I_TAX/ 100);
double deductionb=salary*(RATES_OF_H_INS/100);
double deductionc = salary * (RATES_OF_S_INS/ 100);
int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc;
return tmp;
}
public static void printincomeinformation(int allsalary, int homepay)
{
System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern");
if (3000<allsalary)
{
System.out.println("You get great salary!nDo your best at work!n");;
};
if (allsalary<=3000) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
class clc {
public static final double RATES_OF_I_TAX=10;
private static final double RATES_OF_H_INS= 1.5;
protected static final double RATES_OF_S_INS= 7;
public static void main(String args[]){
int grosssalary=1000;
int net=clc.calc(grosssalary);
clc.printincomeinformation(grosssalary, net);
}
public static int calc (int salary){
double deductiona= salary*(RATES_OF_I_TAX/ 100);
double deductionb=salary*(RATES_OF_H_INS/100);
double deductionc = salary * (RATES_OF_S_INS/ 100);
int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc;
return tmp;
}
public static void printincomeinformation(int allsalary, int homepay)
{
System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern");
if (3000<allsalary)
{
System.out.println("You get great salary!nDo your best at work!n");;
};
if (allsalary<=3000) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
class clc {
public static final double RATES_OF_INCOME_TAX=10;
private static final double RATES_OF_HEALTH_INSURANCE= 1.5;
protected static final double RATES_OF_SOCIAL_INSURANCE= 7;
public static void main(String args[]){
int grosssalary=1000;
int net=clc.calc(grosssalary);
clc.printincomeinformation(grosssalary, net);
}
public static int calc (int salary){
double deductionIncomeTax= salary*(RATES_OF_I_TAX/ 100);
double deductionHeathInsurance =salary*(RATES_OF_H_INS/100);
double deductionSocialInsurance = salary * (RATES_OF_S_INS/ 100);
int grossSalery =salary -(int)deductiona-(int)deductionb-(int)deductionc;
return grossSalery;
}
public static void printincomeinformation(int allsalary, int homepay)
{
System.out.println("Gross income: " + grossSalary + " dollernNet income: " + homepay + "dollern");
if (3000<allsalary)
{
System.out.println("You get great salary!nDo your best at work!n");;
};
if (allsalary<=3000) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
class Salary {
private static final double RATES_OF_INCOME_TAX = 10;
private static final double RATES_OF_HEALTH_INSURANCE = 1.5;
private static final double RATES_OF_SOCIAL_INSURANCE = 7;
public static void main(String args[]) {
int grossSalary = 1000;
int netIncome = Salary.calc(grossSalary);
Salary.printIncomeInformation(grossSalary, netIncome);
}
private static int calc(int salary) {
double deductionIncomeTax = salary * (RATES_OF_INCOME_TAX / 100);
double deductionHeathInsurance = salary * (RATES_OF_HEALTH_INSURANCE / 100);
double deductionSocialInsurance = salary * (RATES_OF_SOCIAL_INSURANCE / 100);
int reducedSalery = salary - (int) deductionIncomeTax - (int) deductionHeathInsurance - (int) deductionSocialInsurance;
return reducedSalery;
}
private static void printIncomeInformation(int grossSalary, int netIncome) {
System.out.println("Gross income: " + grossSalary + " dollarnNet income: " + netIncome + "dollarn");
if (grossSalary > 3000) {
System.out.println("You get great salary!nDo your best at work!n");
}
if (grossSalary <= 3000) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
class Salary {
private static final double RATES_OF_INCOME_TAX = 10;
private static final double RATES_OF_HEALTH_INSURANCE = 1.5;
private static final double RATES_OF_SOCIAL_INSURANCE = 7;
public static void main(String args[]) {
int grossSalary = 1000;
int netIncome = Salary.calc(grossSalary);
Salary.printIncomeInformation(grossSalary, netIncome);
}
private static int calc(int salary) {
double deductionIncomeTax = salary * (RATES_OF_INCOME_TAX / 100);
double deductionHeathInsurance = salary * (RATES_OF_HEALTH_INSURANCE / 100);
double deductionSocialInsurance = salary * (RATES_OF_SOCIAL_INSURANCE / 100);
int reducedSalery = salary - (int) deductionIncomeTax - (int) deductionHeathInsurance - (int) deductionSocialInsurance;
return reducedSalery;
}
private static void printIncomeInformation(int grossSalary, int netIncome) {
System.out.println("Gross income: " + grossSalary + " dollarnNet income: " + netIncome + "dollarn");
if (grossSalary > 3000) {
System.out.println("You get great salary!nDo your best at work!n");
}
if (grossSalary <= 3000) {
System.out.println("You're glowing up now!nDo your best at work!n");
}
}
}
The huamn mnid deos not raed
ervey lteter by istlef, but the
wrod as a wlohe.
Have
Formatting Standards Readability
Choose
Meaningful Names
for variables and methods
Understandability
Clever
code
Protect
knowledge
ClevernessSimplicity over
write
read code
write
read
write more
read more
code
write
read
write more
read more
write even more
read even more
code
write
read
write more
read more
write even more
read even more
delete code
code reviews
ensuring consistent code quality
to inspire jr. devs
Invest time in
code reviews
done right
Seek to understand
Criticise ideas, not people
Seek to understand
Criticise ideas, not people
Don’t rant, make suggestions
Seek to understand
Criticise ideas, not people
Don’t spoon feed
Don’t rant, make suggestions
Seek to understand
Seek to understand
Criticise ideas, not people
Don’t rant, make suggestions
Don’t spoon feed
Comment on positive things
Seek to understand
Criticise ideas, not people
Don’t rant, make suggestions
Don’t spoon feed
Comment on positive things
Learn
To be more effective
🚀
Wow
Cool
Great idea
Really, a new front end
framework, again?
I’ ll also survive microservices,
and serverless hype.
Code Reviews? Not for me
Scrum boards? I already
know what’s important.
Grumpy Developer
New
technology
Continuous learning
Podcasts
Audiobooks
Meetups
Book club
Video
Fridays
But why learn?
All answers are on
1st
Try and solve
the problem
2nd
Ask for help
2nd
yourself
Ask for help
3rd
Ask for help
?I don’t know
Learn to unlearn
make new connections
Become a mentor
Become a mentor
Ask?
Open door
Listen
Surprise
Direction
Continuous learning
Learn
Advice
Unlearn
Experiment
Experiment
To be more effective
🚀
It’s all on the
board
*The rest is in Jira
*
This might not be the best idea
Known unknowns
Known unknowns
Better solutions?
Known unknowns
New technology?
Better solutions?
Known unknowns
New technology?
Better solutions?
Missing opportunities?
Don’t be shy - just try
1.5 hour /week
Coding sessions 1.5 h Coding
1.5 h Improving
Tools training
Tools training
1.5 h Coding
2 h Improving
0.5 h Training
failsInnovation
fails
Innovation
The lone genius
fails
Innovation
fails
Innovation
The boss is the genius
fails
Innovation
A team of geniuses
The problem is not the lack of ideas
It’s the lack of time to try them out
40h
How much time do you need?
30h
How much time do you need?
24h
Hackathon
Planning
EventFollow-up
- BEFORE -
- DURING -- AFTER -
Planning
Plan dates Announce
and tell stories
Find your teams
aka “Pitch it”
- BEFORE -
- DURING -
Event
Remember,
time is ticking
Have fun Get energized—
eat and drink!
- AFTER -
Follow-up
Get onto a product
roadmap—and plan for
next Hackathon
Presentations—give
it all you got
Voting, celebrations, and
winners announced
24h
Hackathon
1.5 h Coding
0.5h Training
0.7h Hackathon
2.7 h Improving
Every quarter
Known knowns…
Paper CutsGreat ideas
Innovation week
Every 8 weeks
1.5 h Coding
0.5h Training
0.7h Hackathon
5.0 h Inno Week
7.7 h Improving
Invest in
discovery time
Training MongoDB
Sprint planning
1:1 with Joe
Daily Standup
Review Contract
Daily Standup Daily Standup Daily Standup
Secret meeting with HR
Secret meeting with HR
Project status and next
steps
1:1 with Jen
Can we chat?
Lunch with Richard
Next gen web page
Weekly steering
Retrospective Team Alpha
1:1 with Emily
Intro Mary <> Sven
New office plan
Goals review
Daily Standup
New UX / UI
New Growth Strategies
Architecture Guilde
Review Team Beta
Breathe
Xray status meeting
Concepts weekly
IDE presentation
Monthly Engineering
Demo Trust weekly
1:1 Angie
Customer demo
Catch up Richard
Reduce overhead
To be more effective
🚀
Training MongoDB
Sprint planning
1:1 with Joe
Daily Standup
Review Contract
Daily Standup Daily Standup Daily Standup
Secret meeting with HR
Secret meeting with HR
Project status and next
steps
1:1 with Jen
Can we chat?
Lunch with Richard
Next gen web page
Weekly steering
Retrospective Team Alpha
1:1 with Emily
Intro Mary <> Sven
New office plan
Goals review
Daily Standup
New UX / UI
New Growth Strategies
Architecture Guilde
Review Team Beta
Breathe
Xray status meeting
Concepts weekly
IDE presentation
Monthly Engineering
Demo Trust weekly
1:1 Angie
Customer demo
Catch up Richard
Xray status meeting
Weekly Status
Recurring meetings
Daily Standup
1:1 with Jen
1:1 Daily Stand up
Cancel all recurring meetings
Cancel all recurring meetings
Am I always required? Invite me when needed.
Am I the right person? Invite someone else.
Is it still necessary? Let’s review in 3 months.
Replace recurring meetings
Weekly Status
Replace recurring meetings
Daily Stand Up
MAKE A DECISION
SOLVE A PROBLEM
GET FEEDBACK
GENERATE IDEAS
MAKE A PLAN
REFLECT & IMPROVE
GREAT.
NO MEETING!
VERY FUNNY.
NO MEETING!
SO EAT A DONUT.
NO MEETING!
BOOM.
SCHEDULE IT!
BOOM.
SCHEDULE IT!
Like a manager
1-1 thing?
Would email or
a Confluence page
do the trick?
GET REAL.
NO MEETING!
DON’T KNOW
OTHER WAYS TO
COLLABORATE
Do you just
want an excuse
to eat donuts?
You’re
procrastinating,
aren't you?
You really think
this time will
be different?
Should we
believe you?...
Has this
been discussed
before?
Does everyone
have enough
background info
to get it done?
Does this
need to happen
in real time?
Can you find a
time that works
for everyone
fairly soon?
PROVE HOW
IMPORTANT I AM
SHARE
INFORMATION
BUILD
RELATIONSHIPS
Y
Y
Y
OK, FINE. BUT
THIS BETTER BE
IMPORTANT.
DON’T BE LAME.
NO MEETING!
CAN’T
SELF-MOTIVATE
Y
LIAR.
NO MEETING!
FIX THAT FIRST.
NO MEETING.
Seriously?
BOOM.
SCHEDULE IT!
WHY DO YOU WANT TO CALL A MEETING?
MAKE A DECISION
SOLVE A PROBLEM
GET FEEDBACK
GENERATE IDEAS
MAKE A PLAN
REFLECT & IMPROVE
VERY FUNNY.
NO MEETING!
Does everyone
have enough
background info
to get it done?
Does this
need to happen
in real time?
PROVE HOW
IMPORTANT I AM
Y
Y
CAN’T
MOTIVATE
Y
Seriously?
O CALL A MEETING?
GET FEEDBACK
GENERATE IDEAS
MAKE A PLAN
REFLECT & IMPROVE
VERY FUNNY.
NO MEETING!
OOM.
DULE IT!
Has this
been discussed
before?
Does everyone
have enough
background info
to get it done?
Does this
need to happen
in real time?
Y
Y
YY
FIX THAT FIRST.
NO MEETING.
Seriously?
VERY FUNNY.
NO MEETING!
You really think
this time will
be different?
Should we
believe you?...
Has this
been discussed
before?
Does everyone
have enough
background info
to get it done?
Does this
need to happen
in real time?
Y
YY
FIX THAT FIRST.
NO MEETING.
Seriously?
BOOM.
SCHEDULE IT!
VERY FUNNY.
NO MEETING!
OM.
DULE IT!
BOOM.
SCHEDULE IT!
GET REAL.
NO MEETING!
u’re
tinating,
t you?
You really think
this time will
be different?
Should we
believe you?...
Has this
been discussed
before?
Does everyone
have enough
background info
to get it done?
Y
LIAR.
NO MEETING!
FIX THAT FIRST.
NO MEETING.
BOOM.
SCHEDULE IT!
Effective
Meetings
ATLASSIAN.COM/CONFLUENCE/TEMPLATES
Add action items to close the loop on open questions or discussion topics:
Record the decisions you make in this meeting:
List meeting participants using their @mention names:
•
List goals for this meeting (e.g., Set design priorities for FY19):
•
ItemTime Presenter Notes
Meeting notes
Effective
Meetings
Effective
Meetings
Effective
Meetings
Time sucks
StuffEasy
StuffEasy StuffHardvs
Deep work time
as a team
The support person
Talk
to me
Getting s%*t done day
StuffHardWhat is the ?
Work on what matters
To be more effective
🚀
Bike-Shedding
Spending too much time on
things with low impact.
Priority Delusion
[praɪˈɒrɪti dɪˈluːʒən]
What’s the problem?
Why solve it?
Validation data?
Solutions?
As a user
I want a new statistic button
so that I can see the data sets
As a user
I want a new statistic button
so that I can see the data sets
to the number of data sets
I can plan for growth
Jasmine
JASMIN
The Tech Learner
DEVELOPER
IN TRAINING
EXPERIENCE
Current Role
BUYING POWER
2 Years
Technology Roles
6 Months
SUMMARY
Jasmin is making a big career transition, from customer service to tech. She’s learning programming on her
own time while working her day job, and developing her own app as a learning tool/portfolio piece. She’s
especially conscious of price and ease of use (in that order) since she’s paying for everything herself.
Learning to program will
put me on the path to a
better career. MongoDB
seems like the easiest
data layer to learn on
and it’s free!
TINA
The Statistician
DATA
SCIENTIST
EXPERIENCE
Current Role Relevant Experience
SUMM
Tina analyzes data from several databases, then builds
can write scripts to query MongoDB but she learne
working on shifting her mindset to a document mode
with data from various sou
LUCAS
The Advocate
FULL-STACK
DEVELOPER
EXPERIENCE
Current Role
BUYING POWER
1 Year
Technology Roles
8 Years
SUMMARY
Lucas is a MongoDB superfan. He brought MongoDB into his company, follows Eliot on Twitter and
attends MongoDB World annually. He’s very interested in the philosophy behind software tools, and
prefers those that are open-source and responsive to customers of all sizes.
I love building elegant
software. I always try to
keep business logic in
the code instead of third-
party tools so they're easy
to change, even if it
creates more work.
Jasmin
Developer In Training
Lucas
Full-Stack Developer
Tina
Data Scientist
Think userslike your
Personas
JASMIN
The Tech Learner
DEVELOPER
IN TRAINING
EXPERIENCE
Current Role
Primary MongoDB Learning Tools
MongoDB University
Certificate in progress
Documentation
BUYING POWER
Decider
COMPANY TYPE
Freelance (Individual)
2 Years
Technology Roles
6 Months
MongoDB Experience
Beginner
SUMMARY
Jasmin is making a big career transition, from customer service to tech. She’s learning programming on her
own time while working her day job, and developing her own app as a learning tool/portfolio piece. She’s
especially conscious of price and ease of use (in that order) since she’s paying for everything herself.
Learning to program will
put me on the path to a
better career. MongoDB
seems like the easiest
data layer to learn on
and it’s free!
WHAT I USE
Atlas
Beginner
Compass
Beginner
Stitch
Beginner
WHAT I DO
Juggle my day job with learning to code in my free time
Install, develop, and troubleshoot the tech I choose
Manage all aspects of my project
PAIN POINTS
Learning on my own without a good support network
MongoDB University courses require prior
programming and database knowledge
Understanding what to do next after completing each
MongoDB University course
WHY I LIKE MONGODB
Atlas, Compass, and MongoDB University are free
Atlas is easy to set up and get started with on my own
Plentiful third-party tutorials available
GOALS
Ultimately transition to a career as a Full-Stack
Developer
Troubleshoot my own IT issues at an advanced leve
Build an app to manage call center schedules as a
portfolio piece
I MIGHT ALSO USE
TINA
The Statistician
DATA
SCIENTIST
EXPERIENCE
Current Role
Primary MongoDB Learning Tools
Documentation
BUYING POWER
Consulted
COMPANY TYPE
Corporate (50-1000 employees)
4 Years
Relevant Experience
8 Years
MongoDB Experience
Beginner / Intermediate
SUMMARY
Tina analyzes data from several databases, then builds clean data sets when needed, usually in SQL. She
can write scripts to query MongoDB but she learned how to work on relational databases, so she’s
working on shifting her mindset to a document model. Visualizations are important to Tina as she works
with data from various sources to provide insights.
We would like to do
machine learning. We're
currently working on that,
but we're learning, too. So
the main thing for us is
data integration and data
visualization.
WHAT I USE
BI Connector
Intermediate
Charts
Beginner
MongoDB on GCP
Beginner
Compass
Beginner
WHAT I DO
Use scripting to combine data from all sources into a single pipeline
Identify opportunities for increased efficiency and improved
operations
Analyze the data using statistical methods
Create visualizations using Charts, Excel, or Tableau
Provide key performance indicator (KPI) data to key stakeholders
PAIN POINTS
Large and cross-collection queries are time-
and resource- consuming
Data is in multiple places and formats
Gap in visualization tools that predict based on
data trends
WHY I LIKE MONGODB
Compatible with Python, R, and other scripting languages
Works well with Jupyter Notebook for sandbox-type exploration
Easy to integrate different types of data from multiple sources
GOALS
Create a shared understanding of how the
company is meeting its goals from a
data-driven perspective
Gain actionable insights from the data
I MIGHT ALSO USE
LUCAS
The Advocate
FULL-STACK
DEVELOPER
EXPERIENCE
Current Role
Primary MongoDB Learning Tools
MongoDB University Certificate
BUYING POWER
Influencer
COMPANY TYPE
Small Business (1-50 employees)
1 Year
Technology Roles
8 Years
MongoDB Experience
Advanced
SUMMARY
Lucas is a MongoDB superfan. He brought MongoDB into his company, follows Eliot on Twitter and
attends MongoDB World annually. He’s very interested in the philosophy behind software tools, and
prefers those that are open-source and responsive to customers of all sizes.
I love building elegant
software. I always try to
keep business logic in
the code instead of third-
party tools so they're easy
to change, even if it
creates more work.
WHAT I USE
Atlas
Advanced
Stitch
Intermediate/Advanced
Compass
Advanced
I MIGHT ALSO USE
WHAT I DO
Design, develop, and implement custom applications
Write clean code using a wide range of technology
and programming languages
Fix bugs and rewrite old software
PAIN POINTS
Data integrity concerns when handing off data to
someone else
Finding documentation for new features
Getting stuck with legacy technology or infrastructure
WHY I LIKE MONGODB
Elegant data platform
Stitch (serverless platform) for app development
Great performance even with high query volume
Easy, convenient, and gets out of my way
GOALS
Deliver 5-star apps that elevate the company’s
reputation
Create bulletproof data security with excellent UI and
solid technical foundation
Co-found my own startup in a few years
Code
CodeProduct
Product Engineer
Hallway testing
Developer on support
Data detective
I wish engineers spent less time
understanding the problem and
more time coding.
said nobody, ever
Bike-SheddingEvil
Slide for your video:
Add your video. Depending on the resolution you
want to leave a black border.
Be healthy
To be more effective
🚀
Eustress Distress
Max. Performance
OverwhelmedBored
Level of stress
Stress
Overengagement
Reactive emotions
Diminishing energy
Leads to anxiety
Stress
Overengagement
Reactive emotions
Diminishing energy
Leads to anxiety
Burnout
Disengagement
Distant emotions
Motivation is lost
Feeling depressed
Disconnect / detox
Sleep
Take breaks
Meditate
Headspace Calm
Simplify
Good code
Learn
Experiment
Reduce overhead
What matters
Be healthy
The Effective 🚀
Developer
It’s not a sprint… It’s a marathon
Bethlehem Steel
Pennsylvania 1890s
Factory workers
Efficient
MongoDB
New York 2020
Knowledge workers
Effective
Output
Efficient
Outcome
Effective
Think outcome first,
be effective,
@svenpetsvenpet.com/talks
Thank you
and get s%*t done

More Related Content

What's hot

Por qué usar Spock en lugar de JUnit / Mockito para tus tests Java - Codemoti...
Por qué usar Spock en lugar de JUnit / Mockito para tus tests Java - Codemoti...Por qué usar Spock en lugar de JUnit / Mockito para tus tests Java - Codemoti...
Por qué usar Spock en lugar de JUnit / Mockito para tus tests Java - Codemoti...Andrés Viedma Peláez
 
The promise of asynchronous php
The promise of asynchronous phpThe promise of asynchronous php
The promise of asynchronous phpWim Godden
 
Let it Flow - Introduction to Functional Reactive Programming
Let it Flow - Introduction to Functional Reactive ProgrammingLet it Flow - Introduction to Functional Reactive Programming
Let it Flow - Introduction to Functional Reactive ProgrammingArtur Skowroński
 
Understanding storage class using nm
Understanding storage class using nmUnderstanding storage class using nm
Understanding storage class using nmmohamed sikander
 
ios,objective tutorial
ios,objective tutorial ios,objective tutorial
ios,objective tutorial Bhavik Patel
 
Common problems solving using c
Common problems solving using cCommon problems solving using c
Common problems solving using cArghodeepPaul
 
Double linked list
Double linked listDouble linked list
Double linked listSayantan Sur
 
Data Structures Practical File
Data Structures Practical File Data Structures Practical File
Data Structures Practical File Harjinder Singh
 
Security Events correlation with ESPER
Security Events correlation with ESPERSecurity Events correlation with ESPER
Security Events correlation with ESPERNikolay Klendar
 
Single linked list
Single linked listSingle linked list
Single linked listSayantan Sur
 
Circular linked list
Circular linked listCircular linked list
Circular linked listSayantan Sur
 
Fat Arrow (ES6)
Fat Arrow (ES6)Fat Arrow (ES6)
Fat Arrow (ES6)Ryan Ewing
 
Basic Programs of C++
Basic Programs of C++Basic Programs of C++
Basic Programs of C++Bharat Kalia
 

What's hot (20)

C++ TUTORIAL 4
C++ TUTORIAL 4C++ TUTORIAL 4
C++ TUTORIAL 4
 
C++ TUTORIAL 1
C++ TUTORIAL 1C++ TUTORIAL 1
C++ TUTORIAL 1
 
Por qué usar Spock en lugar de JUnit / Mockito para tus tests Java - Codemoti...
Por qué usar Spock en lugar de JUnit / Mockito para tus tests Java - Codemoti...Por qué usar Spock en lugar de JUnit / Mockito para tus tests Java - Codemoti...
Por qué usar Spock en lugar de JUnit / Mockito para tus tests Java - Codemoti...
 
The promise of asynchronous php
The promise of asynchronous phpThe promise of asynchronous php
The promise of asynchronous php
 
Let it Flow - Introduction to Functional Reactive Programming
Let it Flow - Introduction to Functional Reactive ProgrammingLet it Flow - Introduction to Functional Reactive Programming
Let it Flow - Introduction to Functional Reactive Programming
 
Der perfekte 12c trigger
Der perfekte 12c triggerDer perfekte 12c trigger
Der perfekte 12c trigger
 
Understanding storage class using nm
Understanding storage class using nmUnderstanding storage class using nm
Understanding storage class using nm
 
ios,objective tutorial
ios,objective tutorial ios,objective tutorial
ios,objective tutorial
 
Common problems solving using c
Common problems solving using cCommon problems solving using c
Common problems solving using c
 
Double linked list
Double linked listDouble linked list
Double linked list
 
Implementing string
Implementing stringImplementing string
Implementing string
 
2013 - Benjamin Eberlei - Doctrine 2
2013 - Benjamin Eberlei - Doctrine 22013 - Benjamin Eberlei - Doctrine 2
2013 - Benjamin Eberlei - Doctrine 2
 
Data Structures Practical File
Data Structures Practical File Data Structures Practical File
Data Structures Practical File
 
Stl algorithm-Basic types
Stl algorithm-Basic typesStl algorithm-Basic types
Stl algorithm-Basic types
 
Cquestions
Cquestions Cquestions
Cquestions
 
Security Events correlation with ESPER
Security Events correlation with ESPERSecurity Events correlation with ESPER
Security Events correlation with ESPER
 
Single linked list
Single linked listSingle linked list
Single linked list
 
Circular linked list
Circular linked listCircular linked list
Circular linked list
 
Fat Arrow (ES6)
Fat Arrow (ES6)Fat Arrow (ES6)
Fat Arrow (ES6)
 
Basic Programs of C++
Basic Programs of C++Basic Programs of C++
Basic Programs of C++
 

Similar to The Effective Developer - Work Smarter, Not Harder

The Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not HarderThe Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not HarderSven Peters
 
PROVIDE COMMENTS TO FELLOW STUDENTS ANSWERS AND PLEASE DON’T SAY G.docx
PROVIDE COMMENTS TO FELLOW STUDENTS ANSWERS AND PLEASE DON’T SAY G.docxPROVIDE COMMENTS TO FELLOW STUDENTS ANSWERS AND PLEASE DON’T SAY G.docx
PROVIDE COMMENTS TO FELLOW STUDENTS ANSWERS AND PLEASE DON’T SAY G.docxamrit47
 
The solution is as belowEmployeeDemo.javaimport java.util.Scann.pdf
The solution is as belowEmployeeDemo.javaimport java.util.Scann.pdfThe solution is as belowEmployeeDemo.javaimport java.util.Scann.pdf
The solution is as belowEmployeeDemo.javaimport java.util.Scann.pdfaparnatiwari291
 
Core programming in c
Core programming in cCore programming in c
Core programming in cRahul Pandit
 
An object of class StatCalc can be used to compute several simp.pdf
 An object of class StatCalc can be used to compute several simp.pdf An object of class StatCalc can be used to compute several simp.pdf
An object of class StatCalc can be used to compute several simp.pdfaravlitraders2012
 
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...Phil Calçado
 
Lab. Programs in C
Lab. Programs in CLab. Programs in C
Lab. Programs in CSaket Pathak
 
Please follow the code and comments for description and outputs C.pdf
Please follow the code and comments for description and outputs C.pdfPlease follow the code and comments for description and outputs C.pdf
Please follow the code and comments for description and outputs C.pdfproloyankur01
 
Whats new in_csharp4
Whats new in_csharp4Whats new in_csharp4
Whats new in_csharp4Abed Bukhari
 
54602399 c-examples-51-to-108-programe-ee01083101
54602399 c-examples-51-to-108-programe-ee0108310154602399 c-examples-51-to-108-programe-ee01083101
54602399 c-examples-51-to-108-programe-ee01083101premrings
 
Program flowchart
Program flowchartProgram flowchart
Program flowchartSowri Rajan
 
C++ AssignmentPlease read all the requirements and the overloading.pdf
C++ AssignmentPlease read all the requirements and the overloading.pdfC++ AssignmentPlease read all the requirements and the overloading.pdf
C++ AssignmentPlease read all the requirements and the overloading.pdflakshmijewellery
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Mario Fusco
 
B.Com 1year Lab programs
B.Com 1year Lab programsB.Com 1year Lab programs
B.Com 1year Lab programsPrasadu Peddi
 

Similar to The Effective Developer - Work Smarter, Not Harder (20)

The Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not HarderThe Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not Harder
 
Tu1
Tu1Tu1
Tu1
 
PROVIDE COMMENTS TO FELLOW STUDENTS ANSWERS AND PLEASE DON’T SAY G.docx
PROVIDE COMMENTS TO FELLOW STUDENTS ANSWERS AND PLEASE DON’T SAY G.docxPROVIDE COMMENTS TO FELLOW STUDENTS ANSWERS AND PLEASE DON’T SAY G.docx
PROVIDE COMMENTS TO FELLOW STUDENTS ANSWERS AND PLEASE DON’T SAY G.docx
 
The solution is as belowEmployeeDemo.javaimport java.util.Scann.pdf
The solution is as belowEmployeeDemo.javaimport java.util.Scann.pdfThe solution is as belowEmployeeDemo.javaimport java.util.Scann.pdf
The solution is as belowEmployeeDemo.javaimport java.util.Scann.pdf
 
Core programming in c
Core programming in cCore programming in c
Core programming in c
 
CppTutorial.ppt
CppTutorial.pptCppTutorial.ppt
CppTutorial.ppt
 
C# labprograms
C# labprogramsC# labprograms
C# labprograms
 
An object of class StatCalc can be used to compute several simp.pdf
 An object of class StatCalc can be used to compute several simp.pdf An object of class StatCalc can be used to compute several simp.pdf
An object of class StatCalc can be used to compute several simp.pdf
 
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...
 
Lab. Programs in C
Lab. Programs in CLab. Programs in C
Lab. Programs in C
 
Please follow the code and comments for description and outputs C.pdf
Please follow the code and comments for description and outputs C.pdfPlease follow the code and comments for description and outputs C.pdf
Please follow the code and comments for description and outputs C.pdf
 
Whats new in_csharp4
Whats new in_csharp4Whats new in_csharp4
Whats new in_csharp4
 
54602399 c-examples-51-to-108-programe-ee01083101
54602399 c-examples-51-to-108-programe-ee0108310154602399 c-examples-51-to-108-programe-ee01083101
54602399 c-examples-51-to-108-programe-ee01083101
 
Cpp tutorial
Cpp tutorialCpp tutorial
Cpp tutorial
 
Program flowchart
Program flowchartProgram flowchart
Program flowchart
 
C++ AssignmentPlease read all the requirements and the overloading.pdf
C++ AssignmentPlease read all the requirements and the overloading.pdfC++ AssignmentPlease read all the requirements and the overloading.pdf
C++ AssignmentPlease read all the requirements and the overloading.pdf
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...
 
C lab programs
C lab programsC lab programs
C lab programs
 
C lab programs
C lab programsC lab programs
C lab programs
 
B.Com 1year Lab programs
B.Com 1year Lab programsB.Com 1year Lab programs
B.Com 1year Lab programs
 

More from Sven Peters

✊ Join the DEV-olution: A culture of empowered developers
✊ Join the DEV-olution: A culture of empowered developers✊ Join the DEV-olution: A culture of empowered developers
✊ Join the DEV-olution: A culture of empowered developersSven Peters
 
Team Shaping - Building a shared understanding
Team Shaping - Building a shared understandingTeam Shaping - Building a shared understanding
Team Shaping - Building a shared understandingSven Peters
 
Developer Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneDeveloper Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneSven Peters
 
Teams Flow, Stay in sync, async
Teams Flow, Stay in sync, asyncTeams Flow, Stay in sync, async
Teams Flow, Stay in sync, asyncSven Peters
 
The Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer CareerThe Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer CareerSven Peters
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference SpeakerSven Peters
 
5 Things: How to Rock Remote Work
5 Things: How to Rock Remote Work5 Things: How to Rock Remote Work
5 Things: How to Rock Remote WorkSven Peters
 
A Career Advice: Change is the Only Constant
A Career Advice: Change is the Only ConstantA Career Advice: Change is the Only Constant
A Career Advice: Change is the Only ConstantSven Peters
 
Be More Productive with Confluence
Be More Productive with ConfluenceBe More Productive with Confluence
Be More Productive with ConfluenceSven Peters
 
Less Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookLess Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookSven Peters
 
The Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsThe Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsSven Peters
 
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your DevelopmentRise of the Machines - Automate your Development
Rise of the Machines - Automate your DevelopmentSven Peters
 
Kick-@$$ Sofware Development
Kick-@$$ Sofware DevelopmentKick-@$$ Sofware Development
Kick-@$$ Sofware DevelopmentSven Peters
 
The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014Sven Peters
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every TeamSven Peters
 
It's the culture, but not as you know it
It's the culture, but not as you know itIt's the culture, but not as you know it
It's the culture, but not as you know itSven Peters
 
Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Sven Peters
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
Build Better Software Together
Build Better Software TogetherBuild Better Software Together
Build Better Software TogetherSven Peters
 

More from Sven Peters (20)

✊ Join the DEV-olution: A culture of empowered developers
✊ Join the DEV-olution: A culture of empowered developers✊ Join the DEV-olution: A culture of empowered developers
✊ Join the DEV-olution: A culture of empowered developers
 
Team Shaping - Building a shared understanding
Team Shaping - Building a shared understandingTeam Shaping - Building a shared understanding
Team Shaping - Building a shared understanding
 
Developer Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneDeveloper Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t done
 
Teams Flow, Stay in sync, async
Teams Flow, Stay in sync, asyncTeams Flow, Stay in sync, async
Teams Flow, Stay in sync, async
 
The Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer CareerThe Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer Career
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference Speaker
 
5 Things: How to Rock Remote Work
5 Things: How to Rock Remote Work5 Things: How to Rock Remote Work
5 Things: How to Rock Remote Work
 
A Career Advice: Change is the Only Constant
A Career Advice: Change is the Only ConstantA Career Advice: Change is the Only Constant
A Career Advice: Change is the Only Constant
 
Be More Productive with Confluence
Be More Productive with ConfluenceBe More Productive with Confluence
Be More Productive with Confluence
 
Less Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookLess Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team Playbook
 
The Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsThe Secret Sauce of Successful Teams
The Secret Sauce of Successful Teams
 
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your DevelopmentRise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
 
Kick-@$$ Sofware Development
Kick-@$$ Sofware DevelopmentKick-@$$ Sofware Development
Kick-@$$ Sofware Development
 
The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014
 
Coding Culture
Coding CultureCoding Culture
Coding Culture
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every Team
 
It's the culture, but not as you know it
It's the culture, but not as you know itIt's the culture, but not as you know it
It's the culture, but not as you know it
 
Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Build Better Software Together
Build Better Software TogetherBuild Better Software Together
Build Better Software Together
 

Recently uploaded

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

The Effective Developer - Work Smarter, Not Harder

  • 1. The Effective 🚀 Developer Work Smarter 💡 , Not Harder 💪 Sven Peters @svenpet
  • 4. Adding new features like a champ
  • 6. Always on, always available
  • 7. That was me in 2003 Super effective
  • 9. Smart code Don’t touch Fixing all the bugs Not root problem Adding features Never used Never stop Context switching Always on Broader view
  • 10. Don’t touch Not root problem Never used Context switching Broader view Efficient
  • 12. Waterfall CVS / File Silos
  • 17. Super effective Work Smarter 💡 , Not Harder 💪
  • 18. Good Code To be more effective 🚀
  • 19. Spending more time writing? The machine doesn’t care
  • 20. Spending more time writing? The machine doesn’t care …but humans do
  • 22. class clc { public static final double RATES_OF_I_TAX=10; private static final double RATES_OF_H_INS= 1.5; protected static final double RATES_OF_S_INS= 7; public static void main(String args[]){ int grosssalary=1000; int net=clc.calc(grosssalary); clc.printincomeinformation(grosssalary, net); } public static int calc (int salary){ double deductiona= salary*(RATES_OF_I_TAX/ 100); double deductionb=salary*(RATES_OF_H_INS/100); double deductionc = salary * (RATES_OF_S_INS/ 100); int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc; return tmp; } public static void printincomeinformation(int allsalary, int homepay) { System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern"); if (3000<allsalary) { System.out.println("You get great salary!nDo your best at work!n");; }; if (3000>=allsalary) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 23. class clc { public static final double RATES_OF_I_TAX=10; private static final double RATES_OF_H_INS= 1.5; protected static final double RATES_OF_S_INS= 7; public static void main(String args[]){ int grosssalary=1000; int net=clc.calc(grosssalary); clc.printincomeinformation(grosssalary, net); } public static int calc (int salary){ double deductiona= salary*(RATES_OF_I_TAX/ 100); double deductionb=salary*(RATES_OF_H_INS/100); double deductionc = salary * (RATES_OF_S_INS/ 100); int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc; return tmp; } public static void printincomeinformation(int allsalary, int homepay) { System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern"); if (3000<allsalary) { System.out.println("You get great salary!nDo your best at work!n");; }; if (3000>=allsalary) { System.out.println("You're glowing up now!nDo your best at work!n"); } } } I don’t understand it 🤯 ohh…. I wrote it 🤦
  • 24. class clc { public static final double RATES_OF_I_TAX=10; private static final double RATES_OF_H_INS= 1.5; protected static final double RATES_OF_S_INS= 7; public static void main(String args[]){ int grosssalary=1000; int net=clc.calc(grosssalary); clc.printincomeinformation(grosssalary, net); } public static int calc (int salary){ double deductiona= salary*(RATES_OF_I_TAX/ 100); double deductionb=salary*(RATES_OF_H_INS/100); double deductionc = salary * (RATES_OF_S_INS/ 100); int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc; return tmp; } public static void printincomeinformation(int allsalary, int homepay) { System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern"); if (3000<allsalary) { System.out.println("You get great salary!nDo your best at work!n");; }; if (allsalary<=3000) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 25. class clc { public static final double RATES_OF_I_TAX=10; private static final double RATES_OF_H_INS= 1.5; protected static final double RATES_OF_S_INS= 7; public static void main(String args[]){ int grosssalary=1000; int net=clc.calc(grosssalary); clc.printincomeinformation(grosssalary, net); } public static int calc (int salary){ double deductiona= salary*(RATES_OF_I_TAX/ 100); double deductionb=salary*(RATES_OF_H_INS/100); double deductionc = salary * (RATES_OF_S_INS/ 100); int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc; return tmp; } public static void printincomeinformation(int allsalary, int homepay) { System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern"); if (3000<allsalary) { System.out.println("You get great salary!nDo your best at work!n");; }; if (allsalary<=3000) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 26. class clc { public static final double RATES_OF_I_TAX=10; private static final double RATES_OF_H_INS= 1.5; protected static final double RATES_OF_S_INS= 7; public static void main(String args[]){ int grosssalary=1000; int net=clc.calc(grosssalary); clc.printincomeinformation(grosssalary, net); } public static int calc (int salary){ double deductiona= salary*(RATES_OF_I_TAX/ 100); double deductionb=salary*(RATES_OF_H_INS/100); double deductionc = salary * (RATES_OF_S_INS/ 100); int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc; return tmp; } public static void printincomeinformation(int allsalary, int homepay) { System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern"); if (3000<allsalary) { System.out.println("You get great salary!nDo your best at work!n");; }; if (allsalary<=3000) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 27. class clc { public static final double RATES_OF_I_TAX=10; private static final double RATES_OF_H_INS= 1.5; protected static final double RATES_OF_S_INS= 7; public static void main(String args[]){ int grosssalary=1000; int net=clc.calc(grosssalary); clc.printincomeinformation(grosssalary, net); } public static int calc (int salary){ double deductiona= salary*(RATES_OF_I_TAX/ 100); double deductionb=salary*(RATES_OF_H_INS/100); double deductionc = salary * (RATES_OF_S_INS/ 100); int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc; return tmp; } public static void printincomeinformation(int allsalary, int homepay) { System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern"); if (3000<allsalary) { System.out.println("You get great salary!nDo your best at work!n");; }; if (allsalary<=3000) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 28. class clc { public static final double RATES_OF_I_TAX=10; private static final double RATES_OF_H_INS= 1.5; protected static final double RATES_OF_S_INS= 7; public static void main(String args[]){ int grosssalary=1000; int net=clc.calc(grosssalary); clc.printincomeinformation(grosssalary, net); } public static int calc (int salary){ double deductiona= salary*(RATES_OF_I_TAX/ 100); double deductionb=salary*(RATES_OF_H_INS/100); double deductionc = salary * (RATES_OF_S_INS/ 100); int tmp=salary -(int)deductiona-(int)deductionb-(int)deductionc; return tmp; } public static void printincomeinformation(int allsalary, int homepay) { System.out.println("Gross income: " + allsalary + " dollernNet income: " + homepay + "dollern"); if (3000<allsalary) { System.out.println("You get great salary!nDo your best at work!n");; }; if (allsalary<=3000) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 29. class clc { public static final double RATES_OF_INCOME_TAX=10; private static final double RATES_OF_HEALTH_INSURANCE= 1.5; protected static final double RATES_OF_SOCIAL_INSURANCE= 7; public static void main(String args[]){ int grosssalary=1000; int net=clc.calc(grosssalary); clc.printincomeinformation(grosssalary, net); } public static int calc (int salary){ double deductionIncomeTax= salary*(RATES_OF_I_TAX/ 100); double deductionHeathInsurance =salary*(RATES_OF_H_INS/100); double deductionSocialInsurance = salary * (RATES_OF_S_INS/ 100); int grossSalery =salary -(int)deductiona-(int)deductionb-(int)deductionc; return grossSalery; } public static void printincomeinformation(int allsalary, int homepay) { System.out.println("Gross income: " + grossSalary + " dollernNet income: " + homepay + "dollern"); if (3000<allsalary) { System.out.println("You get great salary!nDo your best at work!n");; }; if (allsalary<=3000) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 30. class Salary { private static final double RATES_OF_INCOME_TAX = 10; private static final double RATES_OF_HEALTH_INSURANCE = 1.5; private static final double RATES_OF_SOCIAL_INSURANCE = 7; public static void main(String args[]) { int grossSalary = 1000; int netIncome = Salary.calc(grossSalary); Salary.printIncomeInformation(grossSalary, netIncome); } private static int calc(int salary) { double deductionIncomeTax = salary * (RATES_OF_INCOME_TAX / 100); double deductionHeathInsurance = salary * (RATES_OF_HEALTH_INSURANCE / 100); double deductionSocialInsurance = salary * (RATES_OF_SOCIAL_INSURANCE / 100); int reducedSalery = salary - (int) deductionIncomeTax - (int) deductionHeathInsurance - (int) deductionSocialInsurance; return reducedSalery; } private static void printIncomeInformation(int grossSalary, int netIncome) { System.out.println("Gross income: " + grossSalary + " dollarnNet income: " + netIncome + "dollarn"); if (grossSalary > 3000) { System.out.println("You get great salary!nDo your best at work!n"); } if (grossSalary <= 3000) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 31. class Salary { private static final double RATES_OF_INCOME_TAX = 10; private static final double RATES_OF_HEALTH_INSURANCE = 1.5; private static final double RATES_OF_SOCIAL_INSURANCE = 7; public static void main(String args[]) { int grossSalary = 1000; int netIncome = Salary.calc(grossSalary); Salary.printIncomeInformation(grossSalary, netIncome); } private static int calc(int salary) { double deductionIncomeTax = salary * (RATES_OF_INCOME_TAX / 100); double deductionHeathInsurance = salary * (RATES_OF_HEALTH_INSURANCE / 100); double deductionSocialInsurance = salary * (RATES_OF_SOCIAL_INSURANCE / 100); int reducedSalery = salary - (int) deductionIncomeTax - (int) deductionHeathInsurance - (int) deductionSocialInsurance; return reducedSalery; } private static void printIncomeInformation(int grossSalary, int netIncome) { System.out.println("Gross income: " + grossSalary + " dollarnNet income: " + netIncome + "dollarn"); if (grossSalary > 3000) { System.out.println("You get great salary!nDo your best at work!n"); } if (grossSalary <= 3000) { System.out.println("You're glowing up now!nDo your best at work!n"); } } }
  • 32. The huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.
  • 33. Have Formatting Standards Readability Choose Meaningful Names for variables and methods Understandability
  • 38. write read write more read more write even more read even more code
  • 39. write read write more read more write even more read even more delete code
  • 40. code reviews ensuring consistent code quality to inspire jr. devs Invest time in
  • 43. Criticise ideas, not people Seek to understand
  • 44. Criticise ideas, not people Don’t rant, make suggestions Seek to understand
  • 45. Criticise ideas, not people Don’t spoon feed Don’t rant, make suggestions Seek to understand
  • 46. Seek to understand Criticise ideas, not people Don’t rant, make suggestions Don’t spoon feed Comment on positive things
  • 47. Seek to understand Criticise ideas, not people Don’t rant, make suggestions Don’t spoon feed Comment on positive things
  • 48. Learn To be more effective 🚀
  • 50. Really, a new front end framework, again? I’ ll also survive microservices, and serverless hype. Code Reviews? Not for me Scrum boards? I already know what’s important.
  • 58. But why learn? All answers are on
  • 62. 3rd Ask for help ?I don’t know
  • 63. Learn to unlearn make new connections
  • 65. Become a mentor Ask? Open door Listen Surprise Direction Continuous learning
  • 67. Experiment To be more effective 🚀
  • 68. It’s all on the board *The rest is in Jira * This might not be the best idea
  • 72. Known unknowns New technology? Better solutions? Missing opportunities? Don’t be shy - just try
  • 73. 1.5 hour /week Coding sessions 1.5 h Coding 1.5 h Improving
  • 75.
  • 76. Tools training 1.5 h Coding 2 h Improving 0.5 h Training
  • 82. The problem is not the lack of ideas It’s the lack of time to try them out
  • 83. 40h How much time do you need?
  • 84. 30h How much time do you need?
  • 86. Planning Plan dates Announce and tell stories Find your teams aka “Pitch it” - BEFORE -
  • 87. - DURING - Event Remember, time is ticking Have fun Get energized— eat and drink!
  • 88. - AFTER - Follow-up Get onto a product roadmap—and plan for next Hackathon Presentations—give it all you got Voting, celebrations, and winners announced
  • 89.
  • 90. 24h Hackathon 1.5 h Coding 0.5h Training 0.7h Hackathon 2.7 h Improving Every quarter
  • 93. Innovation week Every 8 weeks 1.5 h Coding 0.5h Training 0.7h Hackathon 5.0 h Inno Week 7.7 h Improving
  • 95. Training MongoDB Sprint planning 1:1 with Joe Daily Standup Review Contract Daily Standup Daily Standup Daily Standup Secret meeting with HR Secret meeting with HR Project status and next steps 1:1 with Jen Can we chat? Lunch with Richard Next gen web page Weekly steering Retrospective Team Alpha 1:1 with Emily Intro Mary <> Sven New office plan Goals review Daily Standup New UX / UI New Growth Strategies Architecture Guilde Review Team Beta Breathe Xray status meeting Concepts weekly IDE presentation Monthly Engineering Demo Trust weekly 1:1 Angie Customer demo Catch up Richard
  • 96. Reduce overhead To be more effective 🚀
  • 97. Training MongoDB Sprint planning 1:1 with Joe Daily Standup Review Contract Daily Standup Daily Standup Daily Standup Secret meeting with HR Secret meeting with HR Project status and next steps 1:1 with Jen Can we chat? Lunch with Richard Next gen web page Weekly steering Retrospective Team Alpha 1:1 with Emily Intro Mary <> Sven New office plan Goals review Daily Standup New UX / UI New Growth Strategies Architecture Guilde Review Team Beta Breathe Xray status meeting Concepts weekly IDE presentation Monthly Engineering Demo Trust weekly 1:1 Angie Customer demo Catch up Richard
  • 98. Xray status meeting Weekly Status Recurring meetings Daily Standup 1:1 with Jen 1:1 Daily Stand up
  • 100. Cancel all recurring meetings Am I always required? Invite me when needed. Am I the right person? Invite someone else. Is it still necessary? Let’s review in 3 months.
  • 103. MAKE A DECISION SOLVE A PROBLEM GET FEEDBACK GENERATE IDEAS MAKE A PLAN REFLECT & IMPROVE GREAT. NO MEETING! VERY FUNNY. NO MEETING! SO EAT A DONUT. NO MEETING! BOOM. SCHEDULE IT! BOOM. SCHEDULE IT! Like a manager 1-1 thing? Would email or a Confluence page do the trick? GET REAL. NO MEETING! DON’T KNOW OTHER WAYS TO COLLABORATE Do you just want an excuse to eat donuts? You’re procrastinating, aren't you? You really think this time will be different? Should we believe you?... Has this been discussed before? Does everyone have enough background info to get it done? Does this need to happen in real time? Can you find a time that works for everyone fairly soon? PROVE HOW IMPORTANT I AM SHARE INFORMATION BUILD RELATIONSHIPS Y Y Y OK, FINE. BUT THIS BETTER BE IMPORTANT. DON’T BE LAME. NO MEETING! CAN’T SELF-MOTIVATE Y LIAR. NO MEETING! FIX THAT FIRST. NO MEETING. Seriously? BOOM. SCHEDULE IT! WHY DO YOU WANT TO CALL A MEETING?
  • 104. MAKE A DECISION SOLVE A PROBLEM GET FEEDBACK GENERATE IDEAS MAKE A PLAN REFLECT & IMPROVE VERY FUNNY. NO MEETING! Does everyone have enough background info to get it done? Does this need to happen in real time? PROVE HOW IMPORTANT I AM Y Y CAN’T MOTIVATE Y Seriously? O CALL A MEETING?
  • 105. GET FEEDBACK GENERATE IDEAS MAKE A PLAN REFLECT & IMPROVE VERY FUNNY. NO MEETING! OOM. DULE IT! Has this been discussed before? Does everyone have enough background info to get it done? Does this need to happen in real time? Y Y YY FIX THAT FIRST. NO MEETING. Seriously?
  • 106. VERY FUNNY. NO MEETING! You really think this time will be different? Should we believe you?... Has this been discussed before? Does everyone have enough background info to get it done? Does this need to happen in real time? Y YY FIX THAT FIRST. NO MEETING. Seriously? BOOM. SCHEDULE IT!
  • 107. VERY FUNNY. NO MEETING! OM. DULE IT! BOOM. SCHEDULE IT! GET REAL. NO MEETING! u’re tinating, t you? You really think this time will be different? Should we believe you?... Has this been discussed before? Does everyone have enough background info to get it done? Y LIAR. NO MEETING! FIX THAT FIRST. NO MEETING. BOOM. SCHEDULE IT!
  • 108. Effective Meetings ATLASSIAN.COM/CONFLUENCE/TEMPLATES Add action items to close the loop on open questions or discussion topics: Record the decisions you make in this meeting: List meeting participants using their @mention names: • List goals for this meeting (e.g., Set design priorities for FY19): • ItemTime Presenter Notes Meeting notes
  • 115. Deep work time as a team
  • 119. Work on what matters To be more effective 🚀
  • 120.
  • 122. Spending too much time on things with low impact. Priority Delusion [praɪˈɒrɪti dɪˈluːʒən]
  • 123. What’s the problem? Why solve it? Validation data? Solutions?
  • 124.
  • 125.
  • 126. As a user I want a new statistic button so that I can see the data sets
  • 127. As a user I want a new statistic button so that I can see the data sets to the number of data sets I can plan for growth Jasmine
  • 128. JASMIN The Tech Learner DEVELOPER IN TRAINING EXPERIENCE Current Role BUYING POWER 2 Years Technology Roles 6 Months SUMMARY Jasmin is making a big career transition, from customer service to tech. She’s learning programming on her own time while working her day job, and developing her own app as a learning tool/portfolio piece. She’s especially conscious of price and ease of use (in that order) since she’s paying for everything herself. Learning to program will put me on the path to a better career. MongoDB seems like the easiest data layer to learn on and it’s free! TINA The Statistician DATA SCIENTIST EXPERIENCE Current Role Relevant Experience SUMM Tina analyzes data from several databases, then builds can write scripts to query MongoDB but she learne working on shifting her mindset to a document mode with data from various sou LUCAS The Advocate FULL-STACK DEVELOPER EXPERIENCE Current Role BUYING POWER 1 Year Technology Roles 8 Years SUMMARY Lucas is a MongoDB superfan. He brought MongoDB into his company, follows Eliot on Twitter and attends MongoDB World annually. He’s very interested in the philosophy behind software tools, and prefers those that are open-source and responsive to customers of all sizes. I love building elegant software. I always try to keep business logic in the code instead of third- party tools so they're easy to change, even if it creates more work. Jasmin Developer In Training Lucas Full-Stack Developer Tina Data Scientist Think userslike your
  • 129. Personas JASMIN The Tech Learner DEVELOPER IN TRAINING EXPERIENCE Current Role Primary MongoDB Learning Tools MongoDB University Certificate in progress Documentation BUYING POWER Decider COMPANY TYPE Freelance (Individual) 2 Years Technology Roles 6 Months MongoDB Experience Beginner SUMMARY Jasmin is making a big career transition, from customer service to tech. She’s learning programming on her own time while working her day job, and developing her own app as a learning tool/portfolio piece. She’s especially conscious of price and ease of use (in that order) since she’s paying for everything herself. Learning to program will put me on the path to a better career. MongoDB seems like the easiest data layer to learn on and it’s free! WHAT I USE Atlas Beginner Compass Beginner Stitch Beginner WHAT I DO Juggle my day job with learning to code in my free time Install, develop, and troubleshoot the tech I choose Manage all aspects of my project PAIN POINTS Learning on my own without a good support network MongoDB University courses require prior programming and database knowledge Understanding what to do next after completing each MongoDB University course WHY I LIKE MONGODB Atlas, Compass, and MongoDB University are free Atlas is easy to set up and get started with on my own Plentiful third-party tutorials available GOALS Ultimately transition to a career as a Full-Stack Developer Troubleshoot my own IT issues at an advanced leve Build an app to manage call center schedules as a portfolio piece I MIGHT ALSO USE TINA The Statistician DATA SCIENTIST EXPERIENCE Current Role Primary MongoDB Learning Tools Documentation BUYING POWER Consulted COMPANY TYPE Corporate (50-1000 employees) 4 Years Relevant Experience 8 Years MongoDB Experience Beginner / Intermediate SUMMARY Tina analyzes data from several databases, then builds clean data sets when needed, usually in SQL. She can write scripts to query MongoDB but she learned how to work on relational databases, so she’s working on shifting her mindset to a document model. Visualizations are important to Tina as she works with data from various sources to provide insights. We would like to do machine learning. We're currently working on that, but we're learning, too. So the main thing for us is data integration and data visualization. WHAT I USE BI Connector Intermediate Charts Beginner MongoDB on GCP Beginner Compass Beginner WHAT I DO Use scripting to combine data from all sources into a single pipeline Identify opportunities for increased efficiency and improved operations Analyze the data using statistical methods Create visualizations using Charts, Excel, or Tableau Provide key performance indicator (KPI) data to key stakeholders PAIN POINTS Large and cross-collection queries are time- and resource- consuming Data is in multiple places and formats Gap in visualization tools that predict based on data trends WHY I LIKE MONGODB Compatible with Python, R, and other scripting languages Works well with Jupyter Notebook for sandbox-type exploration Easy to integrate different types of data from multiple sources GOALS Create a shared understanding of how the company is meeting its goals from a data-driven perspective Gain actionable insights from the data I MIGHT ALSO USE LUCAS The Advocate FULL-STACK DEVELOPER EXPERIENCE Current Role Primary MongoDB Learning Tools MongoDB University Certificate BUYING POWER Influencer COMPANY TYPE Small Business (1-50 employees) 1 Year Technology Roles 8 Years MongoDB Experience Advanced SUMMARY Lucas is a MongoDB superfan. He brought MongoDB into his company, follows Eliot on Twitter and attends MongoDB World annually. He’s very interested in the philosophy behind software tools, and prefers those that are open-source and responsive to customers of all sizes. I love building elegant software. I always try to keep business logic in the code instead of third- party tools so they're easy to change, even if it creates more work. WHAT I USE Atlas Advanced Stitch Intermediate/Advanced Compass Advanced I MIGHT ALSO USE WHAT I DO Design, develop, and implement custom applications Write clean code using a wide range of technology and programming languages Fix bugs and rewrite old software PAIN POINTS Data integrity concerns when handing off data to someone else Finding documentation for new features Getting stuck with legacy technology or infrastructure WHY I LIKE MONGODB Elegant data platform Stitch (serverless platform) for app development Great performance even with high query volume Easy, convenient, and gets out of my way GOALS Deliver 5-star apps that elevate the company’s reputation Create bulletproof data security with excellent UI and solid technical foundation Co-found my own startup in a few years
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138. Code
  • 144. I wish engineers spent less time understanding the problem and more time coding. said nobody, ever
  • 146. Slide for your video: Add your video. Depending on the resolution you want to leave a black border.
  • 147. Be healthy To be more effective 🚀
  • 148.
  • 149.
  • 150.
  • 153. Stress Overengagement Reactive emotions Diminishing energy Leads to anxiety Burnout Disengagement Distant emotions Motivation is lost Feeling depressed
  • 155. Sleep
  • 159. Good code Learn Experiment Reduce overhead What matters Be healthy The Effective 🚀 Developer
  • 160. It’s not a sprint… It’s a marathon
  • 162. MongoDB New York 2020 Knowledge workers Effective
  • 164. Think outcome first, be effective, @svenpetsvenpet.com/talks Thank you and get s%*t done