As I turn 20 on July 19th and begin my 20s, I want to share 20 lessons I've learned the hard way. These are deeply personal, but if they can help someone improve their life, it's worth sharing. Here are my 20 hardest lessons:
Jobs in tech with the lowest testosterone:
• Scrum Master who says let's take this offline
• Non-technical founder who calls himself technical because he uses claude code
• HR rep who schedules a vibes check after the layoff
• Technical recruiter who ghosts you after putting you through 7 interview rounds
• Product manager who has never shipped and only writes tickets
• Ex-FAANG SWE whose entire personality is I used to work at Google
• Corporate middle manager who's only job is to schedule meetings that could've been an email
@thatmanio Just a character limit thing 😄. It's an AI Engineer Intern role. I solely built an end-to-end agentic platform that's live in production and is used internally.
Turned 22 today.
Life has been good.
This year I:
• Cracked an AI internship at a fintech.
• Started earning.
• Built end-to-end software now in production.
• Praised by the co-founder for real business impact.
22 is off to a great start!
Grateful for the journey so far 🚀
Peak male life experiences;
1. First heartbreak
2. First great sex
3. Watching someone you helped hit a big win
4. Ending imposter syndrome
5. Finally understanding your Father
6. Owning your first car
7. Owning your first real estate property
8. Someone calling you “sir” and realizing they mean it with respect
9. Fixing something with your hands that once intimidated you
10. Sitting in silence after a major win, realizing you don’t need to prove anything anymore
11. A younger man seeking your advice and recognizing yourself in him.
12. Accepting the man in the mirror
13. Randomly realizing this is the woman you will marry
14. Becoming successful with your childhood friends
15. Sports team winning a title
16. Watching your kid grow
17. Giving back to your parents
What else would you add?
How I use AI and why it's the right way.
I want to talk about a specific trap in using AI tools: the removal of friction. At a high level, we think friction is bad. We want answers fast. But for an engineer, friction is actually a requirement for learning.
The main idea here is that your brain needs to struggle with a problem to map it into long-term memory. Think about debugging a race condition. The frustration you feel when tracing that bug is the learning happening. If you paste the error into an LLM and it gives you the fix instantly, you bypass the neural pathway creation. I still paste the error into claude code but for tasks that aren't particularly important and I feel like where AI would work better but I would give the context of exact files to debug and put in my guidance as well.
This leads to what we call the fluency illusion. Let’s pause and understand this.
Imagine you are reading a solution to a complex algorithmic problem. It looks elegant. It makes sense. You nod your head and think, "I get it." But if I closed the tab and asked you to write that solution from scratch, you would get stuck. Why? Because you recognized the answer, but you never did the work to generate it. AI gives us this illusion constantly.
So now, how do we use these tools without losing our edge?
We need to treat the AI as a sparring partner. This brings us to a concept I call "Draft First."
Writing is thinking. If you are designing a new microservice, do not ask the AI to architect it. Open a blank file. Write down your messy, unrefined logic. Define the API endpoints yourself. This forces your brain to do the heavy lifting of organizing the structure. Only after you have that draft do you bring in the AI to refine it.
Which brings us to the next step: asking for critiques, not answers.
Instead of prompting, "Write me a Python script to do this specific task," try this instead. Write the script or just the high level design yourself, paste it in, and ask: " Find the failure points."
You are now using the model to stress-test your logic. You are the architect and the AI is the critic. If the AI can easily poke holes in your design, it is a clear signal that you haven't thought it through deep enough yet, you need to reiterate, do it again.
Real engineering mastery is about understanding exactly why it breaks. By keeping the friction in your process, you ensure that your understanding is grounded in fundamentals, not just the output of a model and you won't feel like an imposter again.
My bhaiya told me a story about his senior,
He started as a fresher at ₹2.6 LPA.
Then it went like this:
1.₹2.6 → ₹3.4 (same company, ~16 months, learned a lot but growth slowed)
2.Switch: ₹7.2 (product role, better team, better code practices)
3.Switch: ₹15.5 (took full responsibility for one service)
4.Switch: ₹30 (worked on scale issues, handled incidents)
5.Switch: ₹48 (wider responsibilities, mentored developers, joined design discussions)
6.Switch: ₹85 (remote US role, base + performance bonus)
Around 8 years. 5 switches.
Skills grow over time, but salary usually changes more when you switch.
No company can give you the most exciting, challenging, and impactful project around the year, so the ups and downs in the kind of work you'd get are expected.
On average, you would get 4 months of high-impact work, 4 months of moderate work, and 4 months of mundane work in a year. Instead of feeling bad about it, leverage the time and energy to advance your career and secure more impactful projects in the future.
Remember, the most important and impactful project is not given to the smartest engineer, but it is given to the one holding the track record of getting things done well and on time. The trust you instill by doing grunt work or maintenance would and should put you in a position to get the most impactful project.
Given that the maintenance work does not eat up a lot of your mental bandwidth, use this breathing room to identify more significant problems within your organization. Spend time digging deeper into systemic issues, find a solution, create a project plan, and present it to the leadership. This showcases your initiative and capacity for impactful contributions.
When I was given some mundane work, I used the additional time to figure out the root cause of recurring outages and proposed an architecture change to solve it once and for all. Because I was thorough with my homework, it became a no-brainer for leadership to approve.
You can also use this time to enhance your visibility and influence within your organization. The easiest of all is to use this time to hold tech talks and mentor early engineers. These interactions will make it more likely that you'll be top of mind when exciting projects are conceived.
To be honest, this is what I did at all of my stints across all the companies I have worked at. I gave talks on some of the lessons learned from past projects, new industry trends, or introductions to new technologies. This helped me establish a good reputation within the org.
Remember, every phase cannot be exciting, but it is important to know how to leverage it well. Impactful projects will not be served to you on a silver platter; you need to earn them.
Worked 2 decades in in consulting.
Made Partner in my 30s.
Led teams of 100+ people.
Run 9-figure client portfolios.
Lived and worked in 4 continents.
To grow fast, I had to learn practical ways to "narrate reality" to my leaders, without turning into the loudest guy in the office.
3 UNDER-DISCUSSED WAYS TO SELF-PROMOTE
1) Run "impact debriefs" after every meaningful piece of work, and make them impossible to ignore.
A lot of people finish a project… and move on.
They think "Well, my boss saw how hard I worked. They know."
No they don't.
After every major milestone (eg, a workshop, a turnaround, a nasty delivery save) write a one-page impact note and send it to the people who matter.
Frame it as a story of change: what was broken, what you changed, what business risk or cost you removed, what decision you unlocked, etc
Use numbers, but lead with stakes.
An exec doesn't care about "I consolidated 3 misaligned streams" but they get interested with "I prevented a $4M regulatory exposure by getting 4 execs to align on a single approach"...
The right people remember evidence.
⸻
2) Translate your work into executive language, even if nobody asked you to.
Early in your career you think work is about doing, but later you realize careers are built on how your work is interpreted.
Every month, force yourself to rewrite what you did in a language an exec would respect:
Risk reduced.
Revenue unlocked.
Delay avoided.
Optionality created.
Take the complex thing you did in the trenches and narrate it as cause-and-effect.
For example:
"I built a dashboard" is output.
"I gave the CFO a single source of financial truth and eliminated three weeks of reconciliation activities per quarter" is impact.
Then drip-feed that language in conversations, performance reviews, 1:1s, town halls.
You are simply making reality visible at the altitude where decisions are made.
IMPORTANT!!! If you do not narrate it, someone else will, and they will narrate themselves into your work.
⸻
3) Build a small internal audience and teach them what you are learning.
All right, this is the highest-leverage move.
Once a quarter, run a short learning session inside your team or practice: teach a principle that emerged from your work.
Explain the context and trade-offs, give details, so that people start seeing you not as a deliverable machine but as a person who creates understanding.
Understanding is political capital.
Executives hear about people who create understanding.
Careers move around those people.
⸻
Let me be even more explicit: doing important work in silence is romantic, but in reality, silence gets mistaken for irrelevance.
Be an high achiever, but don't be a QUIET high achiever.
Narrate what is true: do it with restraint, precision, and respect for the craft.
I wrote a chapter in "Beyond Slides" with more suggestions on how to "self-promote without looking like an asshole", so have a read at the below extract!
All the best!!
When I started working in corporate,
I felt like a fraud.
Every day.
I would sit in meetings and think,
“Why am I even here?”
“Everyone knows more than me.”
“What if they find out I’m not that good?”
There was so much to learn.
So many tools.
So many smart people.
And the more I learnt,
the more I realised how little I knew.
It felt like a black hole.
No end.
No clarity.
Only self-doubt.
I used to go back home feeling heavy.
Questioning myself.
Overthinking everything.
I thought I was behind.
I thought I wasn’t made for this.
I thought maybe I got lucky.
What I didn’t know back then was this:
Almost everyone feels this way.
Especially the ones who actually care.
Imposter syndrome doesn’t mean you’re bad.
It means you’re growing.
With time, I understood one thing.
You don’t escape that feeling in one day.
You outgrow it slowly.
By showing up every day.
By learning even when it feels overwhelming.
By accepting that it’s okay to not know everything.
Today, when I look back,
that phase changed me.
It made me humble.
It made me curious.
It made me consistent.
If you’re feeling lost right now,
if you feel like everyone is ahead of you,
if you feel stuck in that black hole…
Trust me, you’re not alone.
And you’re not failing.
You’re just in the middle of your growth.
Save this post.
Read it again when self-doubt hits.
You’ll be fine.
Just don’t stop giving your best at every moment.
Cheers,
Akshay Saini
#YouArePowerfulThanYouThink
For people asking what to build to really learn modern Java, here’s a progression that maps well to how Java today (Java 17–21+) teaches you robust systems design, concurrency, and functional-style thinking.
Simple (start here, learn modern Java fundamentals)
1. Build a CLI tool (Picocli, records, sealed classes)
2. Build a log analyzer (Streams API, collectors, immutability)
3. Build a small HTTP client (HttpClient, async calls, timeouts)
4. Build a basic REST service (Spring Boot or Javalin, controllers)
5. Build an in-memory cache (ConcurrentHashMap, TTL, schedulers)
6. Build a config loader (records + validation)
7. Build a file processor (NIO, streams, backpressure awareness)
8. Build a thread pool wrapper (Executors, CompletableFuture)
---
Medium (where modern Java really clicks)
9. Build a REST API with clean layering (records, DTOs, mappers)
10. Build an async service (CompletableFuture, structured concurrency)
11. Build a rate limiter (token bucket, atomic primitives)
12. Build an event-driven pipeline (Kafka + functional consumers)
13. Build a metrics & monitoring module (Micrometer, Prometheus)
14. Build a scheduler (virtual threads, cancellation, retries)
15. Build a persistence layer (JPA + native queries trade-offs)
16. Build an auth service (JWT, filters, functional validation)
17. Build a stream processing app (Kafka Streams, state stores)
---
Hard (deep Java + systems mastery)
18. Build a high-throughput service using virtual threads (Project Loom)
19. Build a reactive service (Project Reactor, backpressure handling)
20. Build a distributed cache client (consistency & eviction logic)
21. Build a Saga-based orchestration service (state machines)
22. Build a storage engine prototype (MVCC concepts, snapshots)
23. Build a custom binary protocol (ByteBuffer, zero-copy)
24. Build a compiler-style pipeline (parser, AST, visitors)
25. Build a JVM performance lab (GC tuning, JFR, async profiling)
26. Build a production-grade platform (API, async jobs, caching, observability)
---
So essentially you learn Java by:
- Modeling domains with types (records, sealed classes)
- Making concurrency explicit and safe
- Using functional style where it improves clarity
- Letting the JVM do the heavy lifting
If your code is boring, predictable, observable, and scales quietly then
you’re doing modern Java right.
कर्मण्येवाधिकारस्ते मा फलेषु कदाचन।
मा कर्मफलहेतुर्भूर्मा ते सङ्गोऽस्त्वकर्मणि॥
— Bhagavad Gita 2.47
Wishing health 💪, growth 📈, and a productive, fruitful 2026 🌱✨
Focus on action. Let results follow.
#NewYear2026#BhagavadGita#Discipline#Growth
friendship tips that actually work:
> you only get a 5-12 hours of real social time per week - protect them for people who energize you, not drain you
> reach out within 48 hours of meeting someone cool. the momentum dies FAST. text them before you overthink it
> create friendship rituals: monthly dinners, weekly walks, sunday calls. consistency builds depth
> be the person who initiates. most people are waiting for someone else to make plans - be that person!!
> when you vibe with someone new, don't wait for them to reach out. YOU can text first, YOU can suggest plans
> show up fully when you're together. put your phone away. present attention is the greatest gift
> check in on friends even when you don't need anything. "thought of you!" texts or a memory you share - they make a difference
> try not to cancel on things last minute, if you can avoid it. show up for your friends - not only in their good times but in their hard times too
> not every friendship needs daily texts. some friends are weekly, monthly, quarterly - all valid!
> host things!!! even just 4 people for dinner. be the person who brings people together
> invest energy in friendships that feel reciprocal. if you're always the one initiating, maybe they're not your people right now
> remember details about people's lives and follow up on them. "how did that interview go?" or "feeling better?" goes a long way
> be vulnerable. share real stuff, not just surface-level updates. that's where connection happens
> friendship requires effort and intentionality (we're in a loneliness crisis ya'll!!)
> consistency compounds. show up repeatedly and friendships deepen over time
friendship is one of the most important parts of a good life
invest in it like you would anything else that matters
you got this!!!