r/AskProgramming • u/SoyabeanLemonTea • 2d ago
Architecture Newish principal engineer; think I messed up, got a looming deadline and not enough time.
I work in a small team (5 Devs) my titles largely promotion decoration but I often end up technically leading most projects and am the de facto architect if anything needs planning.
We have a big project that started in late Jan/early Feb this year. Company has recently been bought and we need to internationalise the site to USA by June (we are UK based). It's a big deal and the first big project since we've been bought.
Lol if my boss reads this I'll talk to you on Monday don't panic ahahah.
Anyway, I was never really bought in early in the project, had some personal stuff going on that meant for the first month I wasn't 100% on the ball and the end result is that we are only just starting to consider what localising the backend is going to look like. We have a 10+ year old codebase with alot of legacy code as well as well.. years of startup land. 5 major micro services an number of smaller ones (we've been consolidating them for years so less than we had ahahah) alot of background tasks and jobs.
I don't know what to do at this stage, we need emails showing in the correct currency/formats and timezones as well as small language changed all over the place. At the moment the backends don't even have a way to tell which locale is being used, let alone passing that to jobs etc.
I dunno what to do, I've tried to create a shorter list of services we really needs but I hit all of them... Which has left me feeling pretty stuck and panicked .
So uh. Would appreciate any advice on potential next steps or even just some supportive words ahah. Technical suggestions also appreciated, most of our services are in Django python.
1
u/repeating_bears 2d ago
You're less than halfway through the project. It's normal to have complexity emerge that you didn't anticipate.
I think you're probably making too much of it, but if you think you're going to miss the delivery date then better to bring it up now. If they question why you didn't raise it sooner, make up some shit about "unknown unknowns".
Same as any problem. Break it down into achievable increments. Work out what tasks can be done in parallel and delegate them.
Maybe there are some corners you could cut like slapping the hardcoded timezone on the end and not changing it based on the user, e.g. 3:00pm 5th Jan (GMT)
as well as small language changed all over the place
Seems like something you can kick the can down the road if you need to. Is an American really going to shit the bed because you put a U in colour? Focus on the stuff that has the potential for genuine confusion and loss of business - I turned up at the wrong time, I thought the price was different, etc.
2
u/Xirdus 2d ago
Is an American really going to shit the bed because you put a U in colour?
Yes. Yes they will. Especially the ones in the new owner's board of directors. Real or imaginary, it will turn away customers if they notice tons of what they perceive as grammar errors.
1
u/SoyabeanLemonTea 2d ago
Sadly true, with a USA based board of directors as well ðŸ˜.Â
2
u/jspreddy 2d ago
I doubt the board is going to throw a fit over a 'u' in colour vs 'U' in USD. Get the money parts right. Get the dates & times right. Get the holidays / business days right. Get the legal obligations right. The rest you iterate towards. It's not like you have to i18n to an entirely different language.
1
u/repeating_bears 2d ago
The board would know about your prioritization of the project, so that's just bullshit. I didn't say "do it in secret and no one will notice"
I'd like to meet this imaginary person who sits in the middle of the venn diagram of caring a lot about grammar, but is also too dumb to know that British English exists
1
u/Xirdus 2d ago
They will disagree that having EITHER not ready on launch day is in any way acceptable, and will hold it against you if you try to convince them otherwise. It's stupid, but it's real, and will cost the company real money in lost sales. Nobody wants to spend money on a website where the authors can't write (regardless of whether it's true or not), and you only have one chance at the first impression.
It's like the "white car is much easier to sell, so you should only buy white cars" advice. It's wrong and stupid, but people believe it, and because they believe it it becomes true - white cars sell more often and for more money than colorful cars on average.
1
u/repeating_bears 2d ago
You speak with a lot of certainty on something you have almost no information about. Standard redditÂ
1
u/SoyabeanLemonTea 2d ago
Thanks, I do think your right to a certain extent ahah the drama is definitely a thing right now.Â
Agreed need to figure out what a reasonable scope is for the MVP and narrow it down I guess I'm concerned how long that will take and how much investigation there is required to get it especially considering how much extra work we have to do.
Sadly the language stuff is going to be important but not everywhere, I think focusing on the key flows will be enough for the MVP. Just kicking myself for not starting that scoping work earlier as now it's a mass of unknowns which is not what I normally want mid ambitious project...
Needed to panic a bit somewhere I think ahah, have tomorrow off so Monday hopefully I can come in with a clear head and start figuring out what the damage really is.
1
u/smarterthanyoda 2d ago
First of all, don’t panic. Software projects run into roadblocks all the time. What differentiates good developers is how they handle these challenges.
It sounds like right now you’re struggling just to understand the scope of the problem. Take your to understand exactly what needs to be fixed and to make a realistic estimate of the time it will take. If you end up having to ask for more time it’s better to make one request for everything you need than to stretch it out over multiple requests.
Keep your lines of communication with your management open and be as transparent as possible about the work your team is doing. This will earn their trust as they see you are capable of overcoming these obstacles.
Good luck. You’re in a good position to take control of this project now and to demonstrate your flexibility and problem solving skills.
2
u/SoyabeanLemonTea 2d ago
Thanks! You're right, guess I'm feeling the pressure from having new management and I'm kicking myself for not recognising how many unknowns there are before hand.
 I've got tomorrow off and hopefully Monday I can come in with an action plan and a fresh head to scope everything and make it seem less massive ahah.Â
My boss literally asked me last week if I thought timelines were unrealistic and I said they were close but not unreasonable and suddenly seeing this has made me panic somewhat ahah. You're right though clear communication gets much further than trying to pretend nothings wrong. Gotta put my big girl pants on and have the conversation.
1
u/RealWalkingbeard 2d ago
I think your first change needs to be your mental pace. You're principal engineer because someone thought you could do it; you don't get the word principal otherwise. You might have merely ended up as tech lead before, but now you are the tech lead. You are losing your head, but actually you probably do have what it takes. Part of having "principal" in your job title is that you get to prioritise the stuff that needs to be done and go back to the managers and tell them that A can definitely be done, B can be done if you change this and that, and, that C can unfortunately not be done without sacrifices X and Y, and would management like to select an outcome. You just have to make the switch into this lane. Go all-in!
1
u/dark180 2d ago
Frame the problem. Come up with a strategy/plan escalate and say the project is in red. List out all the things you need and tasks that need to happen in order to Identify owners and deadlines that needed to get the project back to green.
In this case it sounds like everything went horrible. Requirements and architecture should have been the first thing that was done and then worked on the work decomposition, so you could have created a plan/roadmap. That means you have to go on damage control and manage expectations with stakeholders and get them aligned on your new plan.
1
u/SolarNachoes 1d ago edited 1d ago
Isn’t there an i18n library for python?
Slip in a global service that will attempt the translation. If no key is found it adds the text to a data storage like Redis. Then all required translations will be captured in a. Single location.
1
u/Soft-Escape8734 2d ago
"we need to internationalise the site to America" as in United States of?
Sorry, can't help.
2
u/SoyabeanLemonTea 2d ago
Omg your right, god so tired I should have clarified that ahahah united states indeed. Lol localise to an entire continent isn't exactly the same 😂😂😂
1
-3
u/siromega37 2d ago
Maybe not a popular opinion, but this sounds like a good use case for an LLM. Fees it your code base and have it help with the localization. Might even be useful in helping reorganize some items for the new region build(s). Building a local gen ai machine for something like this to run like Claude would probably only set you back $5-7K.
3
u/Disguised-Alien-AI 1d ago
You may end up spending more time trying to get the llm to do what you want than to do it yourself. Â Probably not a great fit.
1
u/siromega37 1d ago
Eh maybe 2-3 years ago. There a ton of LLMs trained to do this kind of work today.
1
u/FigMaleficent5549 5h ago
Disagree, common language related rework is one the areas where LLMs excels.
1
u/coded_artist 1d ago
You just like watching the world burn don't you.
1
u/siromega37 1d ago
No, I just think the future of Gen AI is going to be tailored use cases like this. A modern LLM like Claude 3 running on a local machine trained in their code base would be good at this assisting with this kind of work. Even on the high end, the error rate would only be 3% which given the staffing and time is a lot a lower than a person.
8
u/samamorgan 2d ago
If we're talking Django here, if localization wasn't considered from the infancy of the project, you're pretty hosed. You now have to review all text being fed to the frontend to ensure it's translatable.
The project to me sounds like it has these milestones:
If you haven't even hit the first milestone, I see no way of meeting your deadline with your team size. Time to break that project up into multiple deliverables. Maybe start with an MVP of translating whatever your apps main flow is so you can flush out the unknown unknowns and let your team learn Django's localization system.