How to be an Interesting Person Even if You don’t have an Exciting life

Have you ever started a new job and wondered how to talk to your new co-workers? Have you ever been on a date and you weren’t sure what to say? You want to be interesting, memorable, and respected. But when people ask you about yourself, you verbally roll up like a rollie-pollie. You spent Saturday afternoon playing League of Legends, not parasailing in Brazil or volunteering at a homeless shelter. It was fun, but it’s not something you can brag about. And even if you tried, normies just wouldn’t understand.

Some people make friends wherever they go. They have the ability to make people like them and trust them, like a sorceress who naturally waves her hand and casts a magic spell. They were born with a natural +5 to their charisma rolls, and you weren’t.

Until your next extended rest, you have +2 to your charisma.

However, being an interesting person is not a feat you’re born with. Anyone can learn how to be interesting. You don’t need to be an adrenaline junkie or as charismatic as a movie star. The secret is actually very simple. It’s something you can do today.

The secret is to be interested in other people.

The most annoying people are like an opera singer warming up–all they talk about is mimimimimimi! In contrast, the most engaging people are the ones who involve other people in their conversations.

How to Ask Good Questions

Almost everyone can talk endlessly about themselves, their adventures, and their opinions. All you have to do is ask them a few good questions and listen closely. When you’re meeting someone for the first time, a few good jumping off points are their family, their job, recreation (what they do for fun), and their dreams (their future).

You can remember this with the acronym FORD:

  • Family
  • Occupation
  • Recreation
  • Dreams

Most people would be happy to talk about one of these things. Of course, you might focus on one or the other based on the context. At work, you wouldn’t pry into someone’s family life immediately, but maybe an acquaintance would be happy to share a great story about how he met his wife at an airport while waiting for a delayed flight.

Now you have a couple ideas to spark a conversation or to feed the flame of a dying fire. What you do next will influence how the other person feels. You want to show interest in others.

What you don’t want to do is ask a bunch of factual questions.

You: Where did you grow up?

Them: Nashville

You: How long did you live there?

Them: 20 years

You: How many people live there?

Them: I don’t know… half a million?
Don’t make your friends, dates, and colleagues feel like this.

Boring! If something can be answered with a definite, factual answer, it probably won’t be interesting.

Instead, ask open-ended questions. You want to hear about their unique perspective. You want to be an explorer. People, including recruiters, get asked the same set of questions over and over. If you can think of something new to talk about, that’s more fun for everyone involved.

Compare these questions. Which do you think will be more fun for your conversation partner to talk about?

  • How long have you lived here? vs How do you think this town has changed since you first moved here?
  • What’s your favorite movie? vs If you were the producer of the Avengers, what would you change?
  • Where do you swim? vs What does it take to be a really good swimmer?

Ask questions that give people opportunities to tell stories and show their personality. Be specific in your questions. Let them talk. Don’t worry about preparing a response when they’re talking. Just listen.

When they do pause, you can add something about your own life. Maybe you can hook into an interesting story of your own. Then ask them more about themselves. Drill down with questions like:

  • What’s the most unusual/funnest thing you’ve done in this town?
  • Why do you think Thanos is such a unique villain? Like, what’s so special about him?
  • Do you remember the first time you went swimming? How did you feel when you were just starting out?

If you find yourself struggling to add something interesting because you don’t have an exciting life, I’ve got some ideas that you can do to fix that.

In the meantime, be interested in other people. Show your interest by asking open-ended questions. Talkative people will like talking to you. Quiet people will think you’re unique for letting them speak for a change. Most people probably won’t even remember what you said, but they will remember how you made them feel.

And soon, you’ll make friends wherever you go.

Posted in Psychology | Tagged , , , , | Leave a comment

How to Make Your Life Cooler When You’re a Software Engineer

Imagine someone asks you, “What do you like to do for fun?” Do you feel excited to talk about your life outside work, or do you just shrug it off like you do nothing special?

There are times when you would rather face a horde of murderous orcs than talk about your weekend. You spent Saturday afternoon playing League of Legends, not painting a beautiful picture or tutoring underprivileged kids. It was fun, but it doesn’t sound cool enough to talk about. Normies don’t understand, and at worst, they’ll think you’re some kind of weirdo.

Still easier than talking to uncomfortably-friendly Jeff

Well, strap yourself in, bucko, because I’ve got a two-pronged stick that will roast your fears over an open campfire until they burn up like the insignificant leaves they are.

Your Uncool Hobby is Actually Cool

First, it’s not about how “cool” your hobby is. It’s about how you talk about it.

Imagine that you mention that your favorite video game is League of Legends (Sorry, DoTA fans) and a non-gamer asks you, “What’s it about?”

You have two options on how to respond. Which sounds more interesting?

Option A: Uh, it’s a game where you have a team of people trying to take out the enemy base.

Option B: The premise is simple: You’re trying to destroy the enemy’s base. The trouble is, they’ve got all these defenses–minions, huge magic turrets. And each of the players gets to pick a unique character with a bunch of crazy abilities and their own backstory. You’ve got your jock swordfighters, elemental spellcasters, monsters from other dimensions… It’s wild. And at the same time, the other team is trying to do the same thing to you. It’s really hard to get your team to work together, especially when you’re matched with randos from the Internet. But it’s really fun.

Me trying to tell my teammates to ward the river for the 852nd time

Option B makes them feel something. You’re not getting into the details about AD vs AP, what lane you play, or complaining about how you’re stuck in bronze league. You’re giving them a window into something that you really like.

It doesn’t matter if you think League of Legends is not “mainstream” enough* or “cool” enough1. You’ve given the other person some hooks to ask more questions. Maybe this will segue into a story about a time you snatched victory from the jaws of defeat or why Riven mains are the most arrogant players. Or, you can ask them a question about their favorite movies, how they handle teamwork, or what they wish their secret superpower would be. That’s interesting.

Take the Initiative

Second, if you feel like you haven’t done anything interesting, go do something!

It sounds simple. It sounds stupid. But if it’s stupid and it works, it’s not stupid.

Pick something that you wanted to try, and do it. It could be something at home, like reading about a new subject. It could be something outdoors, like horseback riding. It could be something that isn’t “mainstream cool” like Dungeons and Dragons. It doesn’t matter what it is, as long as you’re trying something new. The more unusual it is, the better chance you’ll come up with a good story.

It’s important to pick something you actually want to do, not something you think sounds cool. I signed up for some Pilates classes thinking, “Maybe I’ll meet some women to date.” My classmates could tell that I didn’t really want to be there. 0 new friends, 0 new dates.

I’m doing the same thing over and over again. Why isn’t it working?

In contrast, I’m a total board game geek. When I heard about a local board game convention, I bought a ticket. It was amazing! I got an introduction to Twilight Imperium (now my favorite board game), tried a wacky political LARP, and met a guy who eventually invited me to be on his community TV show. It was fun in the moment, and I can tell other people about the convention and how exciting it was.

Start out by trying just one thing. If you re-spec your calendar and add a ton of chaos to your life, you’re going to burn out. Instead, it’s easier to make gradual changes over time by building momentum with small wins. Grinding a real life skill is a marathon, not a sprint.

To keep the momentum, set a recurring reminder on your phone. Every month, remind yourself to schedule one new activity. Soon enough, you’ll have a decent breadth of interesting experiences.

And once you’ve completed a fair share of adventures, talking about your weekend will be as easy as pie.

1Yeah yeah, I know LoL is pretty mainstream. I wanted to pick an example that some of y’all might understand instead of something as obscure as HoI4.

Posted in Psychology | Tagged , , , | 1 Comment

The Best Non-Technical Books for Early Career Software Engineers

Some problems are not solvable by code.

In my own quest for solving problems in the last 5 years, I’ve read dozens of books and applied their ideas to my own life. This list contains some of the best non-technical books that I’ve read. They’re the real deal.

How to Win Friends and Influence People by Dale Carnegie

As a kid, I was totally awkward: typical nerd, irritated by other people, and rarely smiled. How to Win Friends and Influence People took my social skills to a new level. You’re not doomed to a life without social skills. This skill can be leveled up just like strength or blacksmithing. Think about a communication problem you might have.

  • Do you want to persuade other people?
  • Do you have trouble working with certain individuals?
  • Do you need to get someone to listen to you?
  • Is your job search hitting dead ends?
  • How do you handle a coworker who isn’t meeting expectations?
  • How do you make friends in a new city?
  • How do you charm a romantic partner?

This book is exactly what you need.

Ironically, the people who most need to use the principles in Dale Carnegie’s book are the people who think they don’t need to read the book at all. How to Win Friends and Influence People should be required reading for any communication class.

The 7 Habits of Highly Effective People by Steven R Covey

Covey suggests seven foundational habits that high-agency people do, and how you can apply them to your own life. Habits are Archimedes levers that you can use to change your world. If you have a poor mindset where you blame other people and chance for everything, you’ll never succeed in the 21st century.

Take the initiative. No one else is gonna do it for you.

Captivate by Vanessa Van Edwards

Captivate is an awesome, practical book about how to apply psychology to your people skills. Van Edwards touches on public speaking, nonverbal cues, predicting behavior based on personality, and ways to deepen a connection with someone. Absorb her ideas, and you’ll be a level better at talking with people.

Van Edwards also runs The Science of People, a blog dedicated to using science to improve interpersonal communication. It has a ton of articles and videos that build on the ideas in Captivate. I especially like this video on power of hand gestures.

Jeffrey Gitomer’s Little Book Series

  • Little Black Book of Connections
  • Little Teal Book of Trust
  • Little Gold Book of Yes! Attitude
  • Little Red Book of Selling

Jeffrey Gitomer is a philosopher who worked as a salesman. He’s not a sleazy jamoke at a used car dealership. His books touch on networking, interpersonal communication, negotiation, and mindset. I also found it interesting to peek behind the curtain of what salespeople do.

Honestly, Gitomer’s books were more useful than a university course on negotiation.

The Complete Software Developer’s Career Guide by John Sonmez

This one has little bit of technical info in it, but the majority is a practical approach to your career in software. The huge book is broken up into easily digestible chapters that you can read in any order. Need to prepare for a whiteboard interview? What should you wear to work? How do you deal with your annoying boss? Sonmez answers all these questions and more.

Sonmez also writes about a wide variety of software engineering topics at

I Will Teach You To Be Rich by Ramit Sethi

If you don’t know anything about personal finance, start here. Ramit Sethi is a personal finance genius. Thousands (maybe millions) have used his simple, practical principles to pay off debt, grow their wealth, and live the Rich Life they’ve always wanted.

Sethi takes in an unconventional approach to personal finance. For instance, you don’t have to pinch pennies by cutting back on 25¢ sticks of gum. Instead, focus your energy on the Pereto levers that really matter, like a $30,000 investment decision.

Sethi runs the IWT blog, which holds more personal finance tactics, as well as GrowthLab, which focuses on online entrepreneurship.

The Bogleheads Guide to Investing by by Taylor Larimore, Mel Lindauer, and Michael LeBoeuf

As a software engineer, you have extra money every month. (If you don’t, go back and read Sethi’s book.) Bogleheads is a great introduction to investing. When you start out, you don’t know anything about investing, or you think that the stock market is too dangerous.­ Set those beliefs aside for a moment.

In order to retire, you need to save money. Bogleheads provides a no-nonsense guide on basic questions like:

  • How much should I save?
  • What do I do with my savings money?
  • What kinds of stocks and bonds should I invest in?

Follow the Bogleheads’ philosophy and stay the course. If you jump ship and dump everything into Dogecoin instead, you’ll regret it.

On the other hand, if you read these books and use the information that applies best to your situation, you’ll find yourself standing on the shoulders of giants.

(Legal disclaimer: The above references are opinion and for information purposes only. It is not intended to be investment advice. Seek a duly licensed professional for investment advice.)

Posted in Software | Tagged , , , , , , | 1 Comment

8 Good Communication Habits for Early Career Software Engineers

Communication is a superpower. As you advance in your career, you are not limited by technical expertise, but by your ability to influence other people.

You might think, “I’m bad at talking to people.” That might be true today, but you can improve your communication skills. Good communication can be learned just as much as Big O runtime analysis.

Many people think it’s weird to intentionally practice good communication. Those people are jamokes and you should ignore their recommendations. You’re not a jamoke. You want to be respected by your peers. You want people to feel confident that you have the ability to make things happen. By doing good work and communicating its value well, you become a trusted engineer that people like to work with.

Without further ado, here are eight good communication habits that you can practice early in your career.

#1 Listen

I put this first because I think many people struggle with this. Everyone wants to talk, and no one wants to listen.

When you let other people talk, they are more than happy to give you information. When you stop talking and let the other person explain themselves, you can more accurately solve their problem.

I can’t count the number of times when someone (let’s call him James) said, “It’s easy, just do XYZ,” and proceeded to detail a long solution. Meanwhile, the other person wanted to interrupt James because James was solving the wrong problem.

#2 Better to over communicate than under communicate

Working hard is important. But it’s even more important to work on the right thing. If you’re unsure of what you’re supposed to do, try saying, “You want to do XYZ. Is that right?”

#3 Express genuine appreciation for a coworker’s specific action

When you notice someone do something cool, compliment them.

One of the best compliments I received was an offhand comment. A senior engineer came to my desk to ask about a class that I wrote. I showed him, and he remarked “That’s a clean API.” He made me feel confident that I had designed the class well.

#4 Be concise

Imagine a coworker casually asks, “Is the bug fixed?” You have two ways to respond:

“You know, I was, umm, working on the database issue, and the mobile client is having a little trouble connecting to the server, and, umm, I’m talking with the backend team, and I think it’s going to be alright, umm yeah, I’ve just gotta check with them later, and yeah, I think it’s just one of those things where I just gotta put more work into it because of the protocol. So…”


“Not yet. The fix will be ready tomorrow.”

Managers especially appreciate brevity. They have a lot going on, and they can only handle the bird’s eye view of the situation.

#5 Learn other people’s names

This is pretty obvious. People love it when you remember their names.

#6 Don’t give unprompted explanations

If someone asks why, tell them. If they don’t ask, you might not need to say. You sound less credible when you constantly justify your actions and questions.

Your friends already trust you. Your manager mostly cares about the end result. Your enemies will never believe you. (Hopefully you have no enemies at work. If you do, maybe it’s time to find a new job.)

#7 Build trust by following through with your promises

Trust is an underacknowledged trait in engineering. Have you ever said, “I don’t trust him, but I’m going to give him an important feature anyway?” No!

Building trust takes time. You can get started by promising to do small, easy things. It can be as simple as saying, “I’ll send an email right after this meeting.” Make a note for yourself and do it. Do one small thing every day, and soon, people will think, “You always get things done. I trust you to handle a big project.”

#8 Eliminate complaints

If you complain a lot, people will think of you as a negative person. They’ll be less willing to share ideas with you, less likely to have lunch with you, and less likely to want to be around you at all.

You can be realistic and bear bad news without raining on everyone’s parade. Who would you want to work with? Someone who shoots down every idea, or someone who takes a realistic view of each situation?

When possible, you want to make other people feel good. Because when you make people feel good, they like you.

When people like you, they trust you.

When they trust you, they want to work with you.

And as you advance your career, you’ll realize that working with others is truly the best way to multiply your impact.

Posted in Psychology, Software | Tagged , , , , , | 2 Comments

Seven things I wish I knew my first year as a real world software engineer

I’ve been working in the industry for five years now. I’ve written about internships and promotion, but what about the first year on the job? What do I wish I knew in my first year after college?

Standard disclaimer: don’t take my advice.

1. Your job is to solve problems, not “write as much code as possible”

It took me four years to understand this.

At first, I believed that the best thing I could do was to spend time programming. Config files are boring! I want to write a clever algorithm! Documents are a waste of time! But if I could use a config file, API, or document that causes 100 other engineers to do a little work, I have accomplished my goal without personally overexerting myself. Sometimes, in a complex ecosystem, it’s the only way.

2. Take extreme ownership of problems

Most people see a problem and wait for someone else to fix it. When you take extreme ownership of a problem, you figure out how to solve it. Don’t wait for standup to raise a concern.  

Which brings me to my next point…

3. Raise concerns early

Don’t be afraid to highlight problems. If you find a roadblock, talk to another engineer or your manager. Your manager definitely wants to know about problems so they can help fix them.  They might be unhappy about the bug, but they’ll be happy that you found it earlier rather than later.

4. Ask questions

First, search the documentation.  If you can’t find an answer, ask for help. If you think you’re being annoying, talk to different engineers instead of the same person every time.  Until someone says “you ask a lot of questions” or they look annoyed, keep asking questions.

5. Collaborate

Unlike competitive programming and many university classes, you’re encouraged to collaborate in the real world. One of the secrets of software engineering is copying and pasting from StackOverflow–AKA worldwide collaboration.

6. Communication is a superpower

There’s a reason engineers are stereotyped as being dorky, shy, and unable to talk to VIPs.  But you don’t have to live up to the stereotype.  Communication in all its forms–talking, emails, design docs, presentations…  They’re all useful ways to supercharge your learning and influence. 

7. Optimize your finances

No one is going to manage your finances for you. Spend some time learning about personal finance from reputable sources like The Bogleheads’ Guide to Investing and I Will Teach You To Be Rich (ok, that title sounds fake, but the info is genuinely good). A few hours and $10 spent putting your finances in order will be one of the best ROIs you’ll get in your entire life.

I could write a whole other article about personal finance and why it’s important. In short, max out your retirement account each year. In the US, this is your 401(k). Your future self will thank you when you wake up one day and realize you’re a multimillionaire.

Posted in Software | Tagged , , , , | 1 Comment