HN user

alex-nt

99 karma
Posts0
Comments19
View on HN
No posts found.

Code has always been expensive. Producing a few hundred lines of clean, tested code takes most software developers a full day or more. Many of our engineering habits, at both the macro and micro level, are built around this core constraint.

At the macro level we spend a great deal of time designing, estimating and planning out projects, to ensure that our expensive coding time is spent as efficiently as possible. Product feature ideas are evaluated in terms of how much value they can provide in exchange for that time - a feature needs to earn its development costs many times over to be worthwhile!

Maybe I am spending my life working at the wrong corporations (not FAANG/direct tech related), but that doesn't match at all my experience. The `design` phase was reduced to something more akin to a sketch in order to get faster iterating products. Obviously that now, as you create and debate over more iterations, the time for writing code is increased (as you built more stuff that is discarded). What is that discarded time used for? Well, it's the way new people learn the system/business domain. It's how we build the knowledge to support the product in production. It's how the business learns what are the limits/features, why they are there, what they can offer, what they must ask the regulators etc.

Realistically, if you only count the time required to develop the feature as described, is basically nothing. Most of the time is spent on edge-cases that are not written anywhere. You start coding something and 15m in you discover 5-10 cases not handled in any way. You ask business people, they ask other people. You start checking regulation docs/examples, etc. etc. Maybe there are no docs available, so you just push a version, and test if you assumptions are correct (most likely not...so go again and again). At the end of this process everyone gains a better understanding on how the business works, why, and what you can further improve.

Can AI speedrun this? Sure, but then how will all the people around gain the knowledge required to advance things? We learn through trial and error. Previously this was a shared experience for everyone in the business, now it becomes more and more a solitary experience of just speaking with AI.

There are places that offer Copilot to any team that wants it, and then behind the scenes they informed their managers that if the team (1+ persons) adopts it they will have to shed 10%+ human capacity (lose a person, move a person, fire a person) in the upcoming quarters next year.

I've been working with Java for the last decade and for the past 5Y used the latest LTS versions in a very regulated environment (we have very strict patch deadlines for most CVEs). Rarely we hit issues with migrating to different versions of our dependencies. The most painful one was a small API change in Spring that revealed that we were doing something very bad so it took me 1-2D in between meetings to investigate. It is true though that every few weeks we are hit by a new CVE and we have to patch a lib version, but TBH this is what I expect from a language that has so many eyes on it's ecosystem.

It's never that simple. There is a strong herd mentality in the business space. Just yesterday I've been in a presentation from the risk department and they described the motives around choosing a specific security product as `safe choice, because a lot of other companies use it in our space, so regulator can't complain`...the whole decision structure boiled down to: `I don't want to do extra work to check the other options, we go with whatever the herd chooses`. Its terrifying to hear this...

We did that! Sometimes I would sprint across the stairs 1-2 floors to go to the bathroom. The problem was that just to reach another stall you had to go through x4 security doors that were quite hard to open so it took quite a bit of time. Something that should have taken max 5m now was taking 15m, and my bladder was quite unhappy. Also, due to this, all breaks got elongated, as we were waiting for colleagues before going to lunch (for example) to go to the bathroom, and we were also waiting during meetings for them to arrive from the bathroom.

A few years back, after I left my old employer I went on the local IT subreddit to find a question from somebody about another company from the same building. First comment was that he should accept the offer if he is open to go to the toilet in the Starbucks/McDonalds across the road. I felt vindicated :))

Every day in that building people would queue before and after lunch at the toilets. We are not speaking about a no-name company, it is one of the biggest financial software vendors in the world. Funnily enough, the old building, where they had fewer people, had x2 toilets. They moved us to a more dense floor with half the toilets.

Where I live this was mostly a voluntary thing. I do not have a problem with it happening, I have a problem with the implementation. The lights thing is just nonsensical. Having them completely off during the day would have been better on both counts, but nobody thought about it.

This week I went to the office (not Amazon, another company in Europe) for 3 days in a row because we had new-joiners and I wanted to make it easier for them in the beginning. I live near the office, just a 15m walk away, and I would still not like to continue 3D/W. I know, people call it entitlement, but my problem is that the office is a hostile environment. Here is my experience, in an office that was at most 30% capacity, in a 3Y old building:

  - The "kitchen" area is so tiny, if you want water you will queue, there are only 2 places on the whole floor where you can get it and they are tiny rooms where at max 5 ppl could enter, 3 comfortably.

  - Queues at the bathroom, there are 2 stalls, for the whole floor, I couldn't find another one (I really hope there is one more, I just failed to find it, I did ask, nobody knew about another one). This got worse and worse as the week progressed. I've noticed a similar issue at my previous employer (5Y old building, part of why I left, health issues that are greatly improved by the access to a toilet)

  - They implemented some eco-friendly lights, with movement sensors. This sounds great and I am for helping the environment, the problem is that in practice these lights turn on-off every few minutes, during the day, in summer, in a sunlight filled building. My eyes were so tired every EOD.

  - In the same eco-friendly manner they made the AC not run during the night and morning. So, if you respected the work schedule and came to the office in the morning it was hotter than outside. It's summer, we had 30C in the morning, 47C in the afternoon. I needed to wait for 1-2h for the AC to kick in and recover after arriving in the office.
I am conflicted, I did see that the new-joiners liked the in-person meetings and all, and I do get it. It is easier for non-experienced people to talk to new colleagues online if they have some interactions before. But, time after time, as my employers change buildings I see always reductions in common areas/bathrooms/etc. I find it hilarious now that I have to research the building of potential employers and ask them if they plan to move out in the next 1-3Y (more and more jobs no longer offer remote work in my area).

I might have a bit of insight here. I work in a bank that has a lot of history. In practice, the IT infra is never truly merged (it takes 10+ years to migrate some components), not the functional components at least. There are bridges to connect some things so that reporting is deemed acceptable for the central bank/regulators.

If you come to one of the big banks and just look at the technical components, you can delineate the history of each merger/acquisition from that, going back 30-50 years.

A thing that shocked me: a lot of systems have a weird nationalistic twist to them (at least the old ones), so if you work in non-US, you will see systems that do not speak english in their API, but french, dutch, german, etc. all in the same bank. This is...problematic, especially since they usually use weird text encoding and not something like UTF-8.

Fun story about the 3-4Y window, one of the execs at my company was having a Q&A, and he gave an example in another question a new set of components, saying that he expects them to be in use for the next 20Y. I asked why does he think he can keep the know-how and outsmart the competition (components were part of algo trading and other trading related things) for the next 20y with just this investment, and he just downplayed my question as an IT guy wanting more money/work. ¯\_(ツ)_/¯

Similar for me, I noticed that the thing that lead to burnout was the politics around work, not the work itself. I changed companies and was happy till I got myself in the same political nightmare. If you find yourself in the same position, change the project/company, it will make a big difference for a while. Try to find a company with a healthy management/culture for a long term fix (if you want to spend more than 2-3y in one place), this is very hard thing to come by.

Regulatory changes in banks kept accelerating in the last 50Y and I see no reason this will stop. It is harder and harder for them to keep up. Reasons for this are:

* Banks still have very old codebases and changing anything is fear inducing for everyone (automated testing is a new things for a lot of teams)

* Banks control very little of their core software. They have a lot of vendors for the same thing. You will see multiple vendors delivering basically the same thing in different parts of the bank, and at the same time multiple versions of those vendor applications in diferent parts of the bank. Integrating this is a nightmare (it can take more than 1Y to move a tag in a XML).

* IT is still mostly used for marketing purposes in banks, it's not a way of doing things. The design/integration is mostly discussed/designed by functional people. They are great, but it does happen that they don't see the full implications of their choices till it is too late. Also, because this is a design 'from above' changing anything takes a lot longer. For any change you have to convince a lot more people till you get to the actual person that will have to do it.

* A lot more complicated management reasons. Nobody wants to take a hit on a new IT project, and few people have the IT & banking knowledge to move such a project (why would you? they pay is average). You cannot progress with just one of them. Places where these projects happen is mostly close to pricing/trading as those are seen as profit centers and the bank is more willing to fail a few times till it can build something decent. As you get closer to the guts of the bank things get more and more...problematic.

Edit: I had to add this. Central banks are also bad at IT, they do not set an example worth following. I consider this the main reason why all our interactions with banks are less than ideal online.

I keep hearing about these magical systems that work like clockwork, but I also work in a bank and the reality is very different. In a void, yes, those systems are amazing. Now add all the other systems that have to be linked with that and things start to turn into a nightmarish situation. All the new systems have to be contorted, twisted and designed in weird ways to accommodate the old ones. Everything works a bit worse just because there are a minority of systems that don't know UTF-8 for example, or can't send more than 16 bytes in a field. Banks are very bad at IT. If you don't work in the trading part of it you are seen as a necessary evil. These systems are still with us because banks are very risk averse and because decommissioning a system in a bank can take decades.

I am looking for an apartment in eastern Europe. I was shocked to see listings with the windows covered in Microsoft Paint. I was able to find the location in some instances by finding the same property in other listings (the images were still slightly altered). This is the amateur move, what I see more often is image alteration so that the light coming through the windows makes it impossible to see what is outside. The same apartment is usually posted by 5-10 agencies, pictures and description almost identical, with different location. You get different responses depending who you call. I hope to end my suffering this year and buy something.

This is kind of the strategy, every 2 years. It's a new company because I/most ppl kind of feel slighted by the previous employer, especially if we know a bit more about the compensation of their direct manager/other colleagues. It's a churn and I hate it. I have ideas about how to improve the things I work on, medium to long term plans for different components/features to make things better. But now, after about 2y I have to drop everything and start interview practice. I literally have to discard all thoughts of improvements and switch to interview mode.

The company knew the problem. I had a discussion with the manager of another team, and she was well aware that I/we were payed well under market prices. They just banked on the fact that to leave it is a lot of work, and some people will avoid that. New hires had market lvl salaries. I could leave and come back, but why would I do that in a company that clearly didn't value me.

Depends on what you work on. If you are not on pure tech (a minority of people are), as you get closer to the business you will get insights on how things work, how you can change them, make them better etc. Only part of our job is technical, and without the business knowledge you can't push the world in which you work further. There will be pushback from the "old guard" always, everywhere, as there will be push for the "new thing" always, everywhere. Neither is healthy, and both should be evaluated with a cool head.

Yes, it takes about 6m in a medium to big organizations to figure out what to do and with whom you have to speek to get stuff done. And for 2 years everything is rosy. Then you speak with you colleagues that changed jobs and find out that their income is 30% to 40% higher. That will, of course, put a downer on your day/week/quarter/year. You have 2 options, speak with your current company about compensation or leave. I tried the first option (admittently a bit late, but I did mention the problem in our review talks and other talks) after I found out that my income was 40% lower than colleagues that left 1 year before (was 3 years and a half at this company and had top marks every year, big company, a lot of cash to throw around). I was offered a measly 5% after being dragged in 4 meetings about how great I am. Left and almost doubled my income in 2 years. This is all anecdotal, but I hear it from everyone around me, you HAVE TO SWITCH jobs every 2 years, you can stretch to 3, maybe. Of course, during the last years you won't deliver as much, you have to prepare for intervews and such. This was of no benefit for the previous company. Over my 4 years there I've seen how we were bleeding knowledge that we never got back. The company didn't do so well, the thing I worked on just died after everyone left 6m after me. It's a shame, it could've been a nice thing compared with what I see offered by the competition.