I think there is a confusion here between Coding and Programming. I think what is described here as "Async Programming" is just programming the way it should be which is different than coding. This is what Leslie Lamport pointed out a while back [1] and recently [2]. According to him programming has 3 stages:
1- Define what task the program should perform
2- Define how the program should do it
3- Writing the code that does it.
Most SWEs usually skip to step 3 instead of going through 1 and 2 without giving it much thought, and implement their code iteratively. I think Step 3 also includes testing, review, etc.
With AI developers are forced to think about the functionality and the specs of their code to pass it to AI to do the job and can no longer just jump to step 3. For delegating to other devs, the same process is required, senior engineers usually create design docs and pass it to junior engineers.
IMO automated verification and code reviews are already part of many developers workflows, so it's nothing new.
I get the point of the article though, that there are new requirements for programming and things are different in terms of how folks approach programming. So I do not agree that the method is new or should be called "async", it's the same method with brand new tools.
I was Senior before interviews, I was mainly targeting Staff level when I was interviewing.
No convincing needed, I had enough experience to get to Staff level. With Startup I asked them for level up but they said they had limited number of positions and all they can do is Senior at a higher end of it, and can't do Staff.
I worked at the startup for a few months before the other offer was finalized. So I have a chance to get to know what it feels to work at the startup as well.
one thing that stands out to me is "Senior engineer" vs "Staff engineer" position. I was in the same boat 2 years ago and had to decide between a startup who hired me as "Senior" with a lower salary with the promise of exiting big where I loved the job and there were many smart people around me, but then I got an offer from a big tech as "Staff" level with almost double the offer and benefits. I had a really hard time to decide, but ended up going with the latter even though the startup job was my passion. However, to my surprise the big tech position helped me to grow in ways that I could not even imagine.
Because it was a higher level position I had to deal with larger scope problems, I started learning about strategic thinking and dealing with large number of teams and learned to lead and be a thought leader. The people are also smart and turned out to be super nice and helpful and used every opportunity to help me grow. Now when I look back, I don't think I would be happier in the position where I thought it matched my passion, as the other unlocked a new point of view and a different perspective and opportunities. So aside from the money and benefits, make sure you are choosing the one that benefits you the most from different angles, passion and salary is just one angle.
My pleasure, I went down that rabbit hole myself until I saw a comment in reddit that helped me to make youtube the way I like it. I am just passing it forward and glad to hear it helped you.
I think it boils down to differences of point of view. One enjoys travel, one enjoys work, one get satisfaction from creating art, one enjoys being athletic, one wants to do it all. All perspectives are valid and none is better than the other. I think the world would be pretty boring if everyone thought the same way and acted the same way.
IMO what matters in all this is not identifying with the activity or people. Of course work and employers can disappoint you, but so do people who you love. Your partner might leave you, your kids might disappoint you, your friends might become busy and distance themselves from you. What if there is an accident and cannot travel the world anymore? Where does that leave you? All those destinations and experiences, and you cannot experience them.
I think Woody Allen says it best:
"It’s just an accident that we happen to be on earth, enjoying our silly little moments, distracting ourselves as often as possible so we don’t have to really face up to the fact that, you know, we’re just temporary people with a very short time in a universe that will eventually be completely gone. And everything that you value, whether it’s Shakespeare, Beethoven, da Vinci, or whatever, will be gone. The earth will be gone. The sun will be gone. There’ll be nothing. The best you can do to get through life is distraction. Love works as a distraction. And work works as a distraction. You can distract yourself a billion different ways. But the key is to distract yourself."
Except the key is not to distract yourself but instead try to know yourself deep down. And you reach a point where there is no destination, person, job, or activity that holds your happiness hostage, everything is just is and you go with the flow.
disable Youtube history and no more shorts or AI suggested content. It quickly becomes a useful tool since you can see channels you subscribe to or if you are interested in a subject you have to search for it instead of getting pulled in the AI suggested contents as soon as you open the app.
Most SWEs usually skip to step 3 instead of going through 1 and 2 without giving it much thought, and implement their code iteratively. I think Step 3 also includes testing, review, etc.
With AI developers are forced to think about the functionality and the specs of their code to pass it to AI to do the job and can no longer just jump to step 3. For delegating to other devs, the same process is required, senior engineers usually create design docs and pass it to junior engineers.
IMO automated verification and code reviews are already part of many developers workflows, so it's nothing new.
I get the point of the article though, that there are new requirements for programming and things are different in terms of how folks approach programming. So I do not agree that the method is new or should be called "async", it's the same method with brand new tools.