Mail bag
November 11, 2024I have a couple reader emails that I haven't responded to. Seems like a good opportunity to share out with the group! "It is almost…
I write something new every day for 2k software developers. You should sign up for the daily email.
I have a couple reader emails that I haven't responded to. Seems like a good opportunity to share out with the group! "It is almost…
I was using Python's random library today, when I started getting the same numbers in a row for a random integer. In all likelihood, it was…
We've given so much of our lives over to the cloud. And in software engineering, nearly everything runs on the cloud. It really feels like…
There's a common problem I encounter. It's prevalent among more junior developers, but it can also affect developers with many years of…
Keeping a to-do list of things in your mind actually takes up space. I like to think of this space as mental load. This could apply at work…
Yesterday, a friend said, "I'm much more interested in what people are creating than what they are consuming." We spend so much time talking…
I'm from Asheville, NC & my family still lives there. Last week, the area received over 20 inches of rain & my parents lost power, internet…
It's one skill to be able to write code that works. But there's another, perhaps more important, skill that far fewer developers are good at…
Some programmers get a rush out of optimizing code & saving nanoseconds. A wasted loop or inefficient algorithm is distasteful. Other…
Something happens quite often on the internet that I find quite annoying. In fact, it happens at work & even in email responses to my daily…
The internet was supposed to be the promised land of open communication & egalitarian empowerment. But we've seen massive consolidation. Now…
I don't remember my dreams most nights, but I think I would like to remember my dreams. So, I'm keeping a dream journal of any small details…
Often, I find I'm near-sighted in my outlook. What matters is what's happening today, this week, this year. But I was recently watching an…
Often, we're tempted to gather more information "just in case" it's useful in the future. Of course, the vast majority of things we learn…
There's something in common across many facets of life (software development included): You get smarter by reading, but most people don't…
Recently, I was talking with some friends about "life projects." Organizing principles or guiding values for your life. Generally, a life…
The community around you is super important as a human primate. We're wired to want social groups & close connections. Unfortunately, modern…
Sometimes the best you can do is start over from the beginning. Due to an injury, I didn't go to the gym for a while. I lost some strength…
Software isn't the answer to every problem. There are tons of human challenges where software won't help, or might even make the problem…
If there's an opportunity to make a smaller change, you should take it. Try to find a way to wrap up your changes in small chunks. Don't…
The rapid development of AI has many developers concerned - is this the end of coding? But I've often said that coding has been in decline…
I see many software developers struggle with boundaries. People work at strange hours or on the weekend. I don't mind if that's your style…
There are many ways to measure your software development career: Years of experience Places you've worked Technologies you've learned But…
At different times in your life, you're usually building OR exploring. When you're in a builing phase, you make plans, build few deep…
I've wasted a lot of stress and emotional energy on things that don't matter. Other people's opinions of me, commitments I hastily made…
Remote work is great. Workers gained so much flexibility & the lack of a daily commute saves tons of personal time. But there is one area…
We had a big release this week that the whole team has been working on. A lot is changing about how the app is structured. Here's the thing…
This morning, I was starting on a new frontend task that forced me out of my comfort zone a little. The going was slow because I was so…
It's hard to overstate the value of an early question. Asking the right clarifying question, early on in the task, can be the difference…
I struck a nerve with yesterday's post among some readers. To be fair, there wasn't much nuance in my argument. Yesterday, I said that…
There's a dichotomy I've noticed among developers. When a test is failing or something is going wrong, some developers prefer to read the…
Today, I was talking with a product manager who shared a critical insight in a succinct way: I'd rather have a terrible answer to the right…
This week at my new job, I have a few tasks that I'm working on. But I'm spending far more time on building relationships with my new…
The first week at a new job is like drinking from a fire hose. There's so much new information, you can only hope to retain some of it. That…
I spent the morning cheering for runners in the Boston Marathon. It was amazing to see how fast Sisay Lemma and Hellen Obiri were as they…
Software developers work in all kinds of fields: dating apps, insurance software, video streaming platforms. If you enjoy your job at a…
A great team leader is not necessarily: The best coder The longest/hardest worker The most experienced Instead, a great team lead... Listens…
Feedback is more important than skill when it comes to coding. All the time, I see developers want to get it perfect on the first try. But…
It's great to have a broad set of programming skills that are applicable across industries. But at some point, you'll improve your career by…
Remote work has a lot of benefits, but one big downside is isolation. Slack messages & Zoom calls are no substitute for real human…
Volunteering is one of the best things I've done since getting laid off. Every week, I work a shift or two at Food for Free, a local food…
Between July 1, 2022 and February 1, 2024 I wrote something new for software developers on my blog every single day. That's 580 days in a…
When I shared my binary tree scratchpad, several of you expressed interest in seeing my Anki deck. So, here's the exported version of the…
Last week, I asked you, "Why did you become a developer?" Many of you responded & I read them all! Looking at the responses, there are a few…
What was your real motivation to become a developer? You probably thought you’d like to make a decent living & work on interesting problems…
I've been playing around with binary trees today. Partly to get back into a little coding & partly to shake off the cobwebs on data…
How many followers do you have? How many likes did that post get? By now, we all know these are just vanity metrics. A gamified system…
Last year, I opened a few slots in my first cohort of email coaching for developers. Due to some personal reasons, I had to close email…
Focusing on time management leads you to do all sorts of things like calendar blocking, task batching, and to-do list triaging. You organize…
All systems - technical or organizational - need a little slack to run well. Max capacity all the time is not desirable nor sustainable…
Often, that brilliant design idea or fancy new tool isn’t speeding things up. It’s slowing you down. This is especially true for tools…
I was laid off on February 1st. Since then, I've been really grateful to receive many kind notes from readers of this email list. For…
Big talk is the norm in the tech industry. Companies do this all the time. They talk, meet, discuss, plan, and scope a big feature for weeks…
There's a certain flavor of imposter syndrome that makes you think you should always be coding or learning about code. Even in your time off…
This week at Satiresoft...
Want to get better as a developer? A writer? A weightlifter? A creative? An entrepreneur? It doesn’t take luck. Or a lot of work. The…
Long-time list member, Hiro, wrote in with a follow-up to yesterday's post about not getting stuck researching your journaling tools: I want…
I've received several emails asking, "What tools should I use to start journaling?" My answer is that it doesn't matter. Trying to optimize…
Thanks to everyone who replied to yesterday's post! Some of you said you keep a journal, but the majority of you said you don't. Of the…
Imagine you’re a business owner who knows nothing about software development. If someone were to give you thousands of lines of code, you’d…
I've written before about why developers should keep a journal or daily note about their work. Here are some of the small, recurring…
Recently, I've discovered a new project that I'm following. It's called Not Not Business. The whole premise is about making work meaningful…
It baffles me when developers don't or can't talk to the users they're building for. If you're a developer who hasn't heard from users, find…
This week at Satiresoft...
People think good writing uses big words & literary language. Long sentences with complex structures. That might work for literature, but it…
When you fight, nobody wins. This is true at work, but it's also true in life generally. Even if you defend your point & vanquish your…
A little something different. After a few days away from the daily email, I came across this story today... Most developers know about merge…
Hi! I'm back with an episode of the podcast that Lillie & I pre-recorded This week on the podcast, Lillie & I discuss: Lillie's list of red…
Thank you to everyone who wrote a supportive email yesterday. I really appreciate this community & all your care. It made a difference in my…
This morning I received an email about layoffs and an ominous meeting invite. The company eliminated my position. Many of my readers don't…
Derek Sivers is a multi-millionaire, former tech entrepreneur turned nomadic hermit. He has some unconventional views. One of them has stuck…
Welcome back to the Meaning in Code podcast - starting season 2! In this episode: Lillie briefs us on her new developer job search We…
Perfect does not exist. There’s no such thing as the perfect code base. You’ll never fully solve a problem. Software is not “done.” Instead…
"Ugh, it's not working, & I can't figure out why!" Multiple times this week, I felt this way. I feel this way many times per month. To me…
In game theory, there are finite and infinite games. Chess is an example of a finite game. There are hard rules, boundaries to your possible…
Long-time list member, Saar, wrote a response to yesterday's comic pointing out the parallels with the Duning-Kruger effect. That sparked an…
This week at Satiresoft...
A linchpin is a term from mechanical engineering for a pin that passes through an axle to keep a wheel or gear in position. If the linchpin…
I love airplanes & all things aviation. Recently, I was reading about the top causes of accidents for general aviation pilots. One of the…
In the minds of many developers, refactoring sub-optimal code is always good. In my experience, that's false. Refactoring isn't always worth…
When the scouts go camping, cleaning up isn’t optional. They have a saying: "Leave the campsite cleaner than you found it." They respect the…
Have you ever wanted to have a million dollars? Or, be able to run a marathon? Or, get a big promotion at work? These are all examples of…
This week at Satiresoft...
Yesterday, I wrote about a young Leonardo Da Vinci & his letter to Duke Sforza promising military designs that weren't realistic. I like…
In the early 1480s, Leonardo da Vinci was still a young man. He had not yet painted The Last Supper or the Mona Lisa. Indeed, he was a young…
The brain is only capable of a few hours of difficult work per day. For most people, research showsthat limit hovers around 4 hours per day…
One of my favorite quotes comes from The Pragmatic Programmer: That quote is a descendant of the similar and more famous quote from Voltaire…
Ready to push up your changes and request review? Hold on there! First, push your code and give yourself a review. Look carefully, file by…
Delivering value as a software engineer often becomes a matter of triaging incoming requests. There are many possibilities for changes you…
This week at Satiresoft...
I've seen a lot of commentary on the current job market for software developers. The general tone is bleak. People are having trouble…
Philosopher Kieran Setiya is fascinated by purposeless activities. Telos is the Greek word for purpose. By extension, telic activities are…
Friend of the email list, Hiro, wrote in with a few follow up questions to my post about my daily notes. He ran through some scenarios…
To do lists keep growing. It's hard to track progress. They get messy after a while. Sorting them for priority can be a challenge. I skip…
Maybe you think that being super productive - completing a lot of tickets, bugs, or design docs - is how you get promoted. Getting promoted…
Many developers want productivity hacks. They… Make to-do lists Practice Pomodoro timers Build multi-monitor workstations Meticulously time…
This week at Satiresoft...
Yesterday, I wrote about how senior developers talk & why learning to communicate like a senior developer is critical to your career. A…
A critical part of software engineering is talking about imaginary code. I don’t mean writing code. And I don’t mean talking about how…
What senior engineers wish more junior developers knew...
A lesson in direction vs destination
Yesterday, I wrote about how autonomy is an important milestone in your software career. How do you learn autonomy? Stop relying on senior…
Autonomy is by far the clearest marker of a veteran engineer. In a new environment, can you figure things out? When given a new task, can…
The Satiresoft devs discuss a shiny new library...
“It’s just this once. I’ll stay late and get it done.” That’s how it starts. You want to impress your manager and senior engineers on the…
Hint - You don't always have to fix it
Writing the simplest code to meet the requirements is deceptively hard.
Merry Christmas to everyone! Whether or not you celebrate Christmas, I hope you're enjoying family, friends, rest, food, and/or fun today…
Patience can feel like a chore, or it can be a liberating creative force
Answering a reader question about my thoughts on AI coding tools
Great engineers create value in all kinds of ways. There’s way more to the job of engineering than writing code.
Just because something is hard doesn't mean it's valuable
Attempting to change what people value is a very difficult road
This week at Satiresoft...
Why concentrated expertise is a ticking time bomb
Yesterday, I wrote about urgent vs important and what it means for you as a developer. There are many teams where everything seems urgent…
Not every task with a deadline is very important. On the other hand, many important tasks don’t have a hard deadline. How do you balance…
It doesn't have to do with coding. There's a far more important skill that only grows in importance throughout your career.
A lesson in comparison & compassion for your fellow developers
Let's talk about the things you should look for & red flags in a developer job
One particular flavor of imposter syndrome is surprisingly common, even among the most senior developers
Thank you to everyone who wrote in about being happier
The goal-based approach to happiness confusingly leaves you less fulfilled
What to do when you don't FEEL like a senior developer
This week at Satiresoft...
A different way of thinking about completing a side project
Most people overestimate what they can do in a day. They also underestimate what they can do in a year.
When you really want to get under their skin...
Problem solving starts with representing the problem well
My 1 piece of advice for developers who want to advance their career
Being seen as productive doesn't mean long hours
Nitpicking in code review
A document written in 2001 still has a lot to teach us about agile delivery
While there's value in the latter, the former is more valuable
Your energy is infinite, so make sure you deploy it wisely
Effective documentation comes in layers with corresponding levels of detail
Meetings can ruin your productivity; they can also be where the hardest work gets done.
I received some emails asking how do you practically go one level deeper
Nitpicking in code review
Today is Thanksgiving in the U.S. & I feel thankful for this community
Peel back the layers to become a great developer
Always be thinking about the ways you can reduce repetitive tasks
Clarity & brevity matter
See engineering problems from a distance to create more value
Go deep in the details AND be able to see the big picture
I'm moving a lot of my writing off of Medium...
Engineering is much more than coding…
Make sure your commands don’t break
There’s a hidden game being played
The most productive developers I know all have something in common. They know how to use Vim.
Take advantage of aliases to master the command line
Meetings ruin your productivity. If you’re a developer building complex applications, you should follow the Maker Schedule.
Two approaches to passing data
Build a full-stack website running on Django
It’s incredibly easy to start developing in Django
Let’s see if serverless is really better with an AWS Lambda example
If you want to learn to code quickly, you need to stop doing tutorials as soon as possible.
If you love Vue, you might be thinking about using it with your static sites. But there are so many options between VuePress, Nuxt, and…
Adding Vue to your Django app is pretty easy!
As a developer, most of your job is updating existing code. These are the heuristics I use when refactoring…
What I learned as a developer from the world’s foremost organization dedicated to web security…
Do fast things with lots of data, but make sure you know when and why (and when not) to use it!
Workers to process tasks in the background are essential & powerful tools in any developer’s toolkit.
Blasting your resume out to hundreds of companies is soul-sucking, demoralizing, and largely ineffective.
Many companies have switched over to GraphQL to build their APIs. There’s good reason. It’s a new way of thinking about fetching data.
The most successful people in the world all have something in common. They jump into projects, ventures, relationships before they know…
Redis is a data store that offers performance benefits over traditional databases. However, far from being a replacement for databases…
Here’s my quickstart guide for getting up and running with React on a Django backend.
Don’t get me wrong, you need to be able to code! But your career advancement and life happiness depend on your relationships with others…
We’re building a tic-tac-toe game to illustrate the value of incremental learning when it comes to software development.
I’m writing a series of posts where we build an increasingly-complex tic-tac-toe game from scratch, one step at a time.
Here are all the posts in the tic-tac-toe series so far:
Yesterday, I started a series about learning Python and software development incrementally using tic-tac-toe as an example.
I recently wrote a post about the importance of starting small when you’re learning a new language or framework.
I’ve done a few tutorials, but when I try to build something on my own, I hit a wall. It seems I’ll never get away from how-to guides and…
That online tutorial you just finished didn’t teach you the “big picture” of React. Don’t make the same mistakes I made…
If you’re a developer that uses the first variable name that comes to mind, you’re probably making your code hard to read, use, and…
Right now, naming that variable or building that helper function doesn’t seem critical… but messiness will catch up with you over the long…
This has been my mantra recently. Don’t be loyal to the language you learned first or liked the best!
Writing down how and why you solved coding problems every day will make it easier to start the next day, reveal hurdles in your workflow…
Writing code is a craft. Practice your skills and sharpen your tools to be the best programmer you can be.
Graphs are everywhere, all around you! But chances are you don’t really understand them.
The best code comment is often no comment at all… before you get out your pitchforks, let me explain.
I’m by no means an expert developer, but I’ve learned other languages and Python suits me best. Here’s why.
I’m going to make a bold claim: every developer (and aspiring developer) should solve the first 50 Project Euler problems.
Today, I successfully deployed a Django application that was working locally to a Google App Engine instance online.