Close to the heart 'tips' for software developers π Issue #85
Plus: a beautiful way of thinking, the culture of Superbowl winners and hardcore apartment finding.
Happy Fridayπ
Whatβs up? π¨βπ»
As a software engineer, there is a type of article/thread that is especially hard to resist not clicking and investigating: developer productivity hacks, programmer efficiency tips, principles for developers, you name it.
After more than ten years of developing software, I like to consider myself open-minded and looking to grow. So if thereβs someone on Twitter sharing fourteen insights all junior developers could profit from I will look into it with a mixture of curiosity for new knowledge, and giddiness associated with a good inside joke that you know is coming.
One could call it a guilty pleasure, but thereβs value in these lists. Even if you donβt take away any of the tips, it will almost for sure get you reflecting on your tools and principles and how you can still improve on them.
This is my list, with a healthy mix of personal experience and my favorite from the Internet.
And we start with, obviously, the most important skill for any software developerβ¦
Know how to get the best out of Google
Itβs not just the magic tricks to get especially filtered results, but the ability to separate the wheat from the chaff: the sources that constantly provide reliable help, from those that are only optimized look like it.
Give the best names
Clean code reads like well-written prose. - Robert C. Martin
Every little name you come up with should spell how the thing you just created works and/or its purpose. Take advantage of it, because the tip doesnβt seem to work with kids and pets.
Always be carving more uninterrupted focus time
Itβs your job to help stakeholders and colleagues figure out what are the ways to solve the same problems but without meetings. The ones that remain can be shortened or scheduled to the advantage of everyone. Itβs really on you.
Join the interviews of your future colleagues
Letβs even forget (donβt) the immediate benefit of the new perspective youβll gain by being on interviewing side. Different people value different things, so youβll be able to pick on other signals that will help inform if a candidate is a good fit. You will shape stories, design solutions, pair program, have game nights, and ultimately, spend more time with this person than anyone in the organization, so challenge yourself in understanding how to identify the best human for the job.
Be humble, polite, and open-minded
You will spend more time with your teammates than with any family member. Recognize each other differences and know how to disagree. No product gets better with broken relationships inside the team building it.
Beware of the solutions you come up with without looking at the code
Itβs just X. - Unknown developer last words.
Nothing will ever be as simple as the solution you come up with without looking at the code, and nothing will ever be as incomplete, wrong, or downright catastrophic. Always count with a buffer for the increase in effort/complexity that will come from starting to read and changing code.
Compile your achievements
Add to the list your biggest contributions to the product and team. How things were, how you came up with that course of action, and the improved result. This works as motivation to keep aiming for having a measurable impact and will do wonders for your next performance review and job interviews.
Give credit and own mistakes in public
Highlight the achievements of your teammates in public. They might be hidden for some, or their author might not know how big of a help they were. Also, own your mistakes with the same transparency. Show people itβs safe to do so and how can everyone avoid falling into the same, now exposed, trap.
Speak up in meetings
You donβt work with any genius. Don't be afraid of sharing different opinions from the status quo or from more senior engineers. A lot of the time the difference is in the confidence with which things are said.
Know what makes a great resume and apply the lessons
One page, easy to parse, and on the eyes. Get rid of the stuff the people receiving donβt a have use for.
Go to job interviews even when you donβt want to move
Test yourself without pressure. Evaluate where you felt less comfortable and fix that. See what it takes in effort and time to get offers. When the time comes youβll be at least 1% better prepared.
Take breaks
Especially when you are stuck and don't want to leave the problem. When you come back itβs like magic.
Practice the art of asking why
The difference between an earnest question to know more and one with the intention to trip and cast doubt can be tiny. As an engineer, you are paid to want to know why things work the way they do, but more importantly, why any new thing needs to be built at all.
Ruthlessly automate repetitive work
If you feel like youβve been in the same situation more times than itβs fun I got a relevant xkcd for you. Maybe start a list of the recipes and processes you have to execute more times than one and automate it away.
Guarantee that you are learning every day
This is not just a challenge to never relegate your learning to the βif thereβs timeβ category: actively plan and take actions that grow your skills. Itβs also a barometer of how challenged you feel in your current environment and what might indicate the time to move on.
Be intimate with your toolset
If there is a faster way to accomplish what you do with software you should know about it. Optimize how fast you can write, test, execute, debug and profile your code.
Start with the interface
You probably build systems at some level, even if itβs just one method using another. Focus first on the interface between systems and get the base skeleton working. Avoid at all costs building parts in isolation and plan an integration somewhere in the future βwhen everything is readyβ.
You can communicate better
I donβt care who you are or what you do, it will have a massive impact on your work and interactions with your team.
You can write better
I donβt care who you are or what you do, it will have a massive impact on your work and interactions with your team.
Start small, finish small, iterate small
Thatβs how you get fast. Through iterating fast. All things being equal, youβll get the results sooner. This and this should help.
Surprisingly good things come out of pair and mob programming
You will learn so many tips and tricks with no clear way to extract them otherwise. It will be tacit knowledge in action, which is one of the best ways to learn from experts. Just donβt forget to keep asking interesting questions, and give everyone opportunities to get in on the action.
Make the next action very obvious when leaving a task incomplete
I always worked until I had something done, and I always stopped when I knew what was going to happen next. That way I could be sure of going on the next day. - Ernest Hemingway
You probably still have to go to work even if you donβt know what happens next but there are two immediate benefits here. First, you donβt lose brain power trying to remember where you were in the thought process or what was the solution that you had in mind. Second, itβs undeniable the positive difference in momentum when you pick a task and immediately make progress.
Donβt use your brain for the todo list
We live in the age of the productivity/todo app. Donβt just jump mindlessly into the bandwagon, but maybe consider the number of things you keep in mind throughout the day, and if they could be offloaded from your brain into something else, like a piece of paper or a file in the cloud. I recently switched at work to one of these apps, and itβs been pretty good.
Make friendships on pull requests
There are plenty of articles floating around about how to take advantage of PRs so everyone wins. The potential for conflict is there, especially if done in writing, where some comments might appear more negative than they really are. Approach PRs with the long term in mind, and filtering your contributions through the question βwhat can I add here so the author of the code would want to work more frequently with me in the future?β is just an example of that. After all, no one wants to work more frequently with someone they canβt grow with.
Have more 1-on-1s
You are strongly encouraged to leave yours in the comments below.
And now, the best things I found on the Internet these past weeks.
New to me π‘
Long Distance Thinking | 7 min read
Articulating ideas as simply as possible is attractive, not least because getting people to agree with us is attractive. But we have a tendency to overrate ideas that can be shared easily, with the most apparent advantages. By constant simplifying, we may be lulled into abridging our own ideas a little too much, and sooner or later our audienceβor ourselvesβmight come to expect only these truncated thoughts. What is easy to explain is not necessarily what is best. What is easy to understand is not necessarily what is true.
The Los Angeles Rams Used a Simple Rule of Psychology to Win the Super Bowl | 3 min read
"I think this is a unique environment," Whitworth said in a postgame interview, speaking about the culture Rams coach Sean McVay and his staff have built. "We're relaxed. We have fun. It's energetic. We don't have coaches out there screaming at people. That's not allowed on our field. It's about having energy and positivity and belief that no matter what happens on one snap, the next snap's the next best one you can have."
I Need to Find an Apartment | 12 min read
I hate apartment hunting, Iβve tried to make it as interesting as possible by creating a pipeline with different tools and languages to scrape data from a website with the use of Puppeteer, load data into a SQLite database using Go and visualizing all the data with Python and Folium.
100 ways to slightly improve your life without really trying | 6 min read
Keep your childrenβs drawings and paintings. Put the best ones in frames.
or
Keep a book in your bag to avoid the temptation to doomscroll.
or even
Learn the names of 10 trees.
Please help me grow this newsletter! Iβd love if you shared it with your more curious friends.
A most dark tweetΒ β
High note β‘
This issue cover picture comes fromΒ here.
Last issue most clicked link was But life had other plans.
I hope you enjoyed these last minutes as much as me putting this together.
You can also show some love by clicking that tiny β€οΈ at the top of the email. It would help spread the word. Or leave a review here β. Or you can provide candy bars π«.
If you are one of those friends and someone shared this with you, you are in luck, buy them a beer next time you are together, and meanwhile, you can subscribe toΒ This Weekβs Worth here:
Until next time,
Filipe