All Logs

The Part of the Job That Isn't Code

Today

When I built projects on my own, like the invoice app I kept rebuilding, the whole problem was in front of me.

Pick the stack, read the docs, get stuck, unstick myself, ship. If something did not work, it was because I did not know something yet. There was nobody else in the loop. No one to wait on, no one to convince, no one whose Tuesday afternoon decided whether my week went well. The problem and the solution were both mine, and the distance between them was just how fast I could learn.

The company project does not work like that.

Now there is a version of the same feature where the code is the easy part. I can write it in a day. What takes three weeks is getting a vendor to confirm what their API actually returns, or getting a document from a team that does not see why it matters, or getting four different people in two different companies to agree on one thing at the same time. I wrote about the adapter architecture built around those vendor APIs a few months back, and the code side of it was never the hard part. The stars have to line up in directions I do not control.

I Have Written More Emails This Year Than in My Entire Life

I am not exaggerating. Before this job I think I had written maybe thirty emails total, most of them to professors, most of them badly.

Now I write them every day. Follow ups, clarifications, requirement documents, chasing something that was promised two weeks ago and politely pretending I am asking for the first time. I have learned that a long email gets skimmed and a short one gets answered. I have learned to put the ask in the first two lines because nobody is reading paragraph four. I have learned that if something is not in writing it did not happen, and that a summary email after a phone call has saved me more times than I expected.

I have also gone to vendor offices. Sat across a table and explained what we need, sometimes twice, sometimes to a person who is not the person who will actually do the work. That part surprised me the most. You can be completely clear, have everything documented, walk them through it in person, and still walk out knowing it might not happen the way you described.

And then you manage it anyway. You follow up, you find the person who actually owns it, you change what you are asking for so it fits what they can realistically do. Nobody tells you this is part of building software. It is most of building software once real money and real companies are involved.

Confidence Is Downstream of Knowing Your Stuff

The thing I did not expect is how much communication decides outcomes.

If you can say what you need clearly and say it with confidence, people listen. Not because you were loud, but because clarity is rare and it registers. I have watched the same request land completely differently depending on how it was put.

But confidence is not something you can perform. It comes from knowing the thing you are talking about well enough that there is no soft spot for someone to push on. When I know the rate structure, the API behaviour, the timelines, what is actually possible and what is not, I do not have to sound confident. I just am, because there is nothing to be nervous about. The moment I am shaky on the details, it shows up in my voice before it shows up in my words.

So the preparation is the confidence. There is no shortcut where you skip the first and get the second.

Sometimes You Nod Yes to Something You Know Is Wrong

This one took a while to accept.

There are moments where you can see that a decision is not the right one. You have said so. You have explained the reason. And it is still going ahead, because there is no other option available right now, or because the alternative costs more than the mistake will, or because the timeline does not care about your opinion.

So you nod. And then you make it work.

Early on I thought this was a failure of persuasion. Now I think it is just what happens when your work touches other people's constraints. The skill is not winning every argument. It is knowing which ones are worth spending your credibility on, saying your piece clearly once, and then committing fully to the decision that was made instead of sulking through it. Half committing to something you disagreed with is the worst possible version of it.

Being Backed Changes How You Work

I have to say this part because it is a big reason any of the above is possible.

My boss has given me a free hand. What to build, how to build it, what to decide inside my role. I have said before that nobody here hands me tickets, and the same thing that makes the technical decisions mine makes these ones mine too. When I go to a vendor and say something on behalf of the company, I am not checking over my shoulder first. When I make a call and it turns out wrong, it gets treated as a call that went wrong and not as a reason to take the wheel away.

That does something to how you work. When someone puts that much faith in you, you do not become careless with it. You become more careful, because now the thing you are protecting is not your job, it is their trust. I think I have worked harder under a free hand than I ever would have under supervision. I know not everyone gets this and I am aware that a lot of what I have learned this year exists because of it.

The Tech Will Change, This Probably Will Not

My technical learning has flattened a little. I wrote about that recently, and it is why I went looking for Docker instead of waiting for a task to force it on me. The curve is still going up, just not at the slope it had when everything was new.

But the other learning has not flattened at all, and I keep noticing that it is the kind that transfers. I do not know what the tech stack looks like in five years. I genuinely do not know if the software engineer job description as it exists today survives that long, or what part of it a person will still be doing by hand. Every prediction I have read about this contradicts another one.

What I am fairly sure about is that being able to explain an idea so that a non technical person can act on it, hold a room, write a clear email, sit across from someone whose incentives are not yours and still walk out with a workable outcome, know when to push and when to nod, is not going anywhere. Whatever the tools become, someone still has to decide what to build, agree with other people on what it means, and get a hundred small human dependencies to line up.

That is the part I am being taught right now, mostly by accident, mostly by things going wrong.

Nobody puts it on a resume. It does not show up in a commit. It is probably the most valuable thing I am picking up this year.