Here's the Meta on my LI post:
Inspo:
There's a post where your first everything is bad so just try.
If it does well:
- Can see my failures
- Humanizes FAANG/SWE
- Lists are good
If it fails:
- Niche on SWE
- list isn't readable
- Not a good time to be optimistic about career
No dual monitor.
No ergonomic chair.
No mechanical keyboard.
No noise canceling headphones.
I'm violating like 30 software engineering laws.
How tf am I still a SWE.
I work at Google...
But here's a list of things I don't know:
* SQL
* Microservices
* System Design
* Caching
* 23 Design Patterns
* SSL/TLS, UDP vs TCP
* Cybersecurity
* AI/ML
* Vue vs. Angular vs. React
* REST vs RPC
* Deployment management
* Alarming/Monitoring
It's a lot.
I've worked at Amazon, Microsoft, and Google
But I've been rejected from
- Bloomberg
- TikTok
- Palantir
- Affirm
- Goldman Sachs
- Meta
- Netflix
- Stripe
- GoPuff
- Cardless
- Yext
- J.P Morgan Chase
- Veeva
- IBM
No one is ever happy to announce where they've been rejected.
My senior engineer broke his hand but didn't want to cancel our standup.
Senior Engineer: "Can someone else run the meeting?"
Sarcastic Engineer: "Why? Is there something wrong with your mouth?"
Shots were fired.
Reasons I won't be a senior engineer
- I'm a quiet quitter
- I spend too much time on LinkedIn
- I don't study enough system design
- I don't have the skills to lead a team
- My dad doesn't own a large tech company I can inherit
Here's the latest from Google's internal layoff email.
60 days notice period
15 weeks severance
6 months healthcare
Continued stock vest
Paid PTO and "bonuses"
#Google
#layoffs
Today's the day for larger layoffs at Amazon.
60 days severance
No stock vest
If they're trying to be the "Earth's best employer" this isn't the way to do it.
Little things you can do to improve as an engineer.
- More 1:1 conversations with senior engineers
- Read about software engineer after/before work
- Read articles on engineering
- Attend conferences
Don't limit yourself.
Here's the Meta on my LI post
If it does well:
- Water bottle analogy is good
- People like seeing comp numbers
- Content is easily readable
If it fails:
- Comes off as arrogant
- Compensation connection wasn't really good
- Water bottle analogy isn't well known
One of the most important things I learned working at Amazon is to think about the process and not the intention.
Good intention: Trusting no one will drop the database.
Good process: Setting up permissions to prevent people will drop the database.
People have good intentions
4 ways to get better at system design:
1. Lookup Github repos on system design
2. Read engineering blogs by big tech companies.
3. Study technical books like designing data intensive applications.
4. Be a backend developer.
Mindset changes for work
* You don't need to work hard to be successful
* Your life doesn't enable work. Work enables your life
* You don't need to do more. You need to do enough
Day in the life of a software engineer.
10:00am: Wake up
10:05am: Join stand up 5 minutes late
10:30am: Get ready for the day
11:00am: Look at bugs/emails
11:30am: Cafeteria lunch
12:30pm: Review code
2:00pm: Write Code
4:30pm: Sign off
My first product is bad
My first twitter post is bad
My first youtube video is bad
My first podcast is bad
My first newsletter is bad
My first anything is bad
But you take that first step to make your next one better.
Sometimes I ask a question and get a reply with a link to a ReadMe, a wiki, Google Doc, or other documentation.
But I just had a senior engineer respond:
"Just wrote this doc for you 10 min ago. Ask clarifying questions on the doc."
That's an extreme way to protect your time.
Here's the Meta on my LI Post:
It's considered a flop
Maybe because:
- LI audience doesn't react well to my Twitter content
- Content doesn't make a very interesting connection
- I'm not very funny
Won't copy and paste again unless Twitter content goes viral.
KevinNaughtonJr also went to NYU.
NeetCode also works at Google Seattle.
No I haven't met either of them.
Wondering if LinkedIn as my social media platform was a mistake :(
I'm awake for 16 hrs a day.
Breakdown:
• 1 in the bathroom
• 3 for eating
• 1 for waking up in the morning
• 1 for exercise
• 1 for roundtrip commutes
• 6 for working
That's 3 hours or less leftover for anything else.
Know where your time is going.
There's an infinite number of experiences in the world.
There's a finite amount of time you have in the world.
You have to be wise to choose which ones you choose to have.
Design Patterns: Singleton
If you need to only have 1 instance created, like a database connection, use the singleton pattern.
It seems like a global variable except global variables still allow multiple instances to be created.
Create one, share with many.
I won't always remember
• How much you make
• What company you worked for
• How big your house is
I will remember
• How you made me feel
• If you were on time
• If you made our relationship feel important
We're humans first.
Here's who I am:
1 in 170,000 Google Employees
1 in 740,000 Seattle Residents
1 in 330,000,000 U.S Residents
1 in 7.7 Billion Global Citizens
How important am I?
Just as important as anyone else.
Why is it impossible to get a pull request accepted on any open source project?
They're taking being open to extension and closed to modification too literally.
Some things I learned during my side hustles
1. Build something people will talk about.
2. Talk to customers. Good, Bad, Ugly.
3. Product > Marketing
4. Get in an exponentially growing market
5. "I would buy this" vs actually buying it are 2 different things
Anything else?
Your Coding Tips
Code to an interface, not an implementation
Write code that uses the superclass, not the subclass.
public boolean getFood(Dog dog, Cat cat) {...}
public boolean getFood(Animal animal) {...}
Implementations will change.
Interfaces will mostly remain the same.
You sleep 1/3 of your life.
You go to school for 20 years of your life.
You go to work for 30 years of your life .
Then you have what's leftover to live your life.
Your Coding Tips:
Make your classes and your functions do one thing.
1) There's less to change when you update your code
2) It's easier to understand a class or function that only does one thing
3) It's easier to debug if it doesn't do that one thing well
#coding
#engineer
Started at Google
• Submitted a code review and showed I don't know the design
• Accepted all my onboarding tasks. Late on all my onboarding tasks
• Marked feature complete. Kept getting p1 bugs from senior eng.
It's ok
I still struggle as an engineer.
Sure you could learn how to resolve merge conflicts...
Or you can just push your code faster than anyone else.
Modern problems require modern solutions.