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