Hey there,
My name is Phil (@pliao39) and I’m a software engineer.
I spent about 5 years working in software in SF and picked up a lot of lessons along the way. I’ve mentored my fair share of interns and junior engineers - and looking back, I wish I could’ve mentored myself as well.
My goal for this newsletter is twofold:
Accelerate the career of junior engineers: I’ve seen people get placed on great teams early in their careers and watched their careers take off. I’ve seen others get stuck in a “lord of the flies” situation, where the blind lead the blind. Not pretty. I believe juniors should have access to good mentorship regardless of what team they’re on.
Share the burden of mentorship for senior engineers: It’s exhausting being a mentor. To properly mentor a junior, you need to provide instruction, give constructive feedback, offer (some) emotional support, and possess a deep reservoir of patience (juniors are often smart, but overconfident and under-skilled).
There are a lot of topics I want to write about. Here’s a list of potential ones:
What is it like to be let go in a layoff? How do you manage the emotions? How do you get another job?
Should I be working on side projects while I work a day job?
What makes a good side project? Revenue? Users? Learning?
What languages should I learn?
Rust sounds cool. Go sounds popular. Dart + Flutter are growing. How should I choose?
How to tell if my manager is good or bad (for me)
Will my career grow or stagnate under my manager and how can I tell early?
What does a good 1-1 look like?
How important are peer relationships (people who are within 3-6 months of experience as you)?
How can I position myself in my company to take advantage of growth opportunities
Not all projects are created equal. 1 year of experience on a good project != 1 year of experience on a bad one
How do I navigate technical debt
Corollary: is the technical debt at your company basically a ponzi scheme or is it some strategically deployed AAA debt?
Beware of egos
Is it useful to learn how to clean up technical debt?
Which books should I read?
Should I be leetcoding even if I'm happy at my job?
How can I effectively use code review to grow?
There's getting a "quick stamp" - and then there's quality control. But you need to first determine who knows quality - and that can be hard to judge as a junior engineer.
Shit, I have to do something in X, but I don't understand it at all. Is there a quick guide? (Some examples of X)
Security
IAM, SAML, and SSO
Databases, Queues, and Caches
Replication lag bugs
Configuration Management
Testing
Client-Server, APIs, and IDLs (including GraphQL)
Metrics and Logging
ElasticSearch and Lucene
Time
Currency
Serialization and Networking
Service Discovery
Command Line basics
Cookies and Sessions (possibly AdTech)
Email Protocols (IMAP, POP3, SMTP)
Subscribe and get a short story in your inbox every week!
