Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "train problems"
-
First world problems...
I've been working at this startup as a tech lead for a little over a year, and we've grown from 3 to over 150 employees, and a bit over a million end users.
I've spent tens of thousands on high end displays and chairs for your lazy butts, on external consultants to help and train you, even those fucking dirty recruiters have leeched their shares of the pie. I built an amazing luxury kitchen with a fridge, beer cooler, induction plates and a blender for all your crossfitting bodybuilder meals, but forgot to think of my own needs.
NOW I JUST WANT TO BUY A GOOD COFFEEMAKER AND ALL THESE FUCKING TEASLURPING FAKE DEV-BROS SUDDENLY START SCREAMING ABOUT BUDGETS AND HOW COFFEE IS NOT NECESSARY IF YOU MEDITATE. FUCK YOU, WE'RE LIKE THE ONLY STARTUP IN THE COUNTRY RUNNING A FAT PROFIT. I DON'T CARE ABOUT YOUR STUPID MINDFULNESS IOS APP. GIVE ME MY FUCKING ESPRESSO OR I'LL BLEND YOUR BALLS INTO A PROTEIN SHAKE.25 -
My code review nightmare part 3
Performed a review on/against a workplace 'nemesis'. I didn't follow the department standards document (cause I could care less about spacing, sorted usings, etc) and identified over 80 bugs, logic errors, n+1 patterns, memory leaks (yes, even in .net devs can cause em'), and general bad behavior (ex.'eating' exceptions that should be handled or at least logged)
Because 'Jeff' was considered a golden child (that's another long TL;DR), his boss and others took a major offense and demanded I justify my review, item by item.
About 2 hours into the meeting, our department mgr realized embarrassing Jeff any further wasn't doing anyone any good and decided to take matters into his own hands. Thinking 'well, its about time he did his job', I go back to my desk. About an hour later..
Mgr: "I need you in the conference room, RIGHT NOW!"
<oh crap>
Mgr: "I spoke to Jeff and I think I know what the problem is. Did you ever train him on any of the problems you identified in the review?"
Me: "Um, no. Why would I?"
Mgr: "Ha!..I was right. So lets agree the problems are partially your fault, OK?"
Me: "Finding the bugs in his code is somehow my fault?"
Mgr: "Yes! For example, the n+1 problem in using the WCF service, you never trained him on how to use the service. You wrote the service, correct?"
Me: "Yes, but it's not my job to teach him how to write C#. I documented the process and have examples in the document to avoid n+1. All he had to do was copy/paste."
Mgr: "But you never sat with Jeff and talked to him like a human being? You sit over there in your silo and are oblivious to the problems you cause. This ends today!"
Me: "What the...I have no idea what you are talking about. What in the world did Jeff tell you?"
Mgr: "He told me enough and I'm putting an end to it. I want a compressive training class developed on how to use your service. I'll give you a month to get your act together and properly train these developers."
3 days later, I submit the power-point presentation and accompanying docs. It was only one WCF with a handful of methods. Mgr approved the training, etc..etc. execute the 'training', and Jeff submits a code review a couple of weeks later. From over 80 issues to around 50. The poop hits the fan again.
Mgr: "What's your problem? When are you going to take your responsibility seriously?"
Me: "Its pretty clear I don't have the problem. All the review items were also verified by other devs. Its not me trying to be an asshole."
Mgr: "Enough with the excuses. If you think you can do a better job *you* make the code changes and submit them for Jeff for review. No More Excuses!"
Couple of days later, I make the changes, submit them for review, and Jeff really couldn't say too much other than "I don't see this as an improvement"
TL;DR, I had been tracking the errors generated by the site due to the bugs prior to my changes. After deployment, # of errors went from thousands per hour to maybe hundreds per day (that's another story) and the site saw significant performance increases, fewer customer complaints, etc..etc.
At a company event, the department VP hands out special recognition awards:
VP: "This award is especially well earned. Not only does this individual exemplify the company's focus on teamwork, he also went above and beyond the call of duty to serve our customers. Jeff, come on up and get this well deserved award."19 -
You know you're in the zone when you're working on your laptop on the train and you miss your station and the two after that.
Your commute card are missing two zones and you get off with a stern warning instead of paying the penalty of travelling without a ticket...
#Developersdisease -
I cannot wait to leave my job. I love my bosses, but the customer service people are the fucking worst!
Since I'm the only developer day in and day out I hear the same problems of people forgetting how to do so something over and over and over. Then they yell at me because they say I don't train them enough.
I WASTE 8 HOURS A WEEK RETRAINING YOU SHIT HEADS BUT NONE OF YOU TAKE NOTES IN THE MEETINGS!!!! ITS NOT MY FAULT IF YOU THINK YOU PEA SIZED BRIAN WILL REMEMBER ANYTHING!
AND ITS NOT LIKE THE SYSTEM IS HARD! THERE ARE TOOLTIPS AND CUSTOM ERROR MESSAGES THAT YOU JUST CHOOSE NOT TO READ!
I am just so burned out of answer the same damn questions day in and day out3 -
I was with the train in Vienna already when suddenly I received an email that the test can't be held today because of technical problems 🙄
Now we have it next week when I also have to study for a maths test, do statistics exercises and exercises for database systems
Fml6 -
Part 3: today has become a blog post.
WARNING: this is loooooooooooong
Background is my boss and I were talking about hiring the right people, also generalists vs specialists.
Essentially John and I are the specialists. When something goes wrong it ends up escalating to either him or me. But this is not sustainable as I can't handle the stress and most likely he eventually won't either.
And this goes back to general hiring standards.
All the good people leave and the remaining ones are stuck with all the problems and eventually for one reason or another they leave as well... or the code keeps getting worse... until someone decides to scrap everything and build a new one... But now the only people left to lead teams are monkeys.
Now current problem is the only person that can replace me is John and the only person that can replace John, at least in handling issues, is me...
It's a certain type of person, people that have a growth mindset and can pick things up.
Google and strong tech companies are full of these types of people where if needed there's always someone that can step in and help. They have the background and the ability to quickly learn. This also lets them innovate and identify and solve new problems.
I think that's what the technical interviews are for, to find these types of people.
And you really can't train this. I'm not sure how effective our "new" training program on high quality development is but I'm guessing it's not. Excellence has to be in the culture and it's not something that can be built overnight or by randomly hiring people.
So in a sense, tech companies aren't really paying well, they're paying cost to what their hires are really worth, after they've verified it, and enough to keep them from leaving.3 -
Our project at work goes live in 3 weeks.
The code base has no automated tests, breaks very often, has never had any level of manual testing
will not be releasing with any form of enforced roles or permissions in our first release now due to no time to enforce, however there is a whole admin api where you can literally change anything in our database including roles.
We also have teams in various countries all working separately on the same solution using microservices with shared nuget packages and they aren't using them properly.
Our pull requests are so big - as much as, 75 file changes - in our fe app that I can't keep up with it and I honestly have no idea if it even works or not due to no automated tests and no time to manually test.
We have no testing team, or qa team of any sort.
Every request into the system has to hit a minimum of 3 different databases via 3 different microservices so 1 request = 4 requests with the load on the servers.
We don't use any file streams so everything is just shoved in the buffer on the server.
Most of the people working on the angular apps cba to learn angular, no one across 2 teams cba to learn git. We use git so they constantly face problems. The guy in charge has 0 experience in angular but makes me do things how he wants architecturally so half the patterns make no sense.
No one looks at the pull requests, they just click approve so they may as well push directly to master.
Unfinished work gets put in for pull request so we don't know if the app is in a release state since aall teams are working independently, but on the same code base.
I sat down and tested the app myself for an hour and found 25 fe only issues, and 5 breaking cross browser issues.
Most of our databases are not normalised. Most of our databases make no sense. 99% of our tables have no indexing since there is no expertise with free time to do it.
No one there understands css properly. Or javascript.
Our. Net core microservices all directly use ef in the controller actions so there is no shared code there.
Our customer facing fe app is not dry because no tests so it was decided it was better this way.
Management has no idea on code state, it seems team lead is lieing to them about things like having any level of tests.
Management hire devs that claim to be experts but then it turns out they have basically no knowledge of what they were hired to do, even don't know what json is or the framework or language they are hired for, but we just leave them to get on with it and again make prs too big to review.
Honestly I have no hope that this will go well now but I am morbidly curious to watch. I've never seen anything like the train wreck that we are about to get experience.5 -
So technical interview today but woke up (6am) and started thinking about it and it led to this rant about algorithms. This is probably going into a Medium post if I ever get around to finishing it but sort of just wanted to share the rant that literally just went off in my mind.
*The problem with Algorithms Technical Interviews Is They don't test Real skills*
Real world problems are complex and often cross domain combining experience in multiple areas. Often the best way is not obvious unless you're a polymath and familiar with different areas, paradigms, designs. And intuitively can understand, reason, and combine them.
I don't think this is something a specific algorithm problem is designed to show. And the problem is the optimal solution to some of these and to algorithm design itself is that unless you train for it or are an algorithm designer (practice and experience), you can only brute force it in the amount of time given.
And quite frankly the algorithms I think we rely on daily weren't thought of in 30 minutes. The designers did this stuff for a living, thought about these problems for days and several iterations… at least. A lot were mathematicians. The matrix algorithm that had a Big O of 7N required a flash of insight that only someone constantly looking and thinking about the equations could see.
TBA
-system design
-clean readable coding practices
...
TLDR: I could probably go on and on about this stuff for hours jumping from item/example/area to the next and back again... But I don't think you can test these (~20) years of experience in a 1 hr technical interview focused on algorithms...8 -
!Rant
Do you guys know any website that challenges you into coding little programs (for me, php) to solve problems ?
I mean, it would be to train my skills with actual kind of real world problems, not just hello worlds or simple "how-to" codes.
I signed up to a contest recently and I felt really dumb not to be able to find solutions faster or with more efficiency (FYI : I was ranked 1049/2300 all languages included :( )11 -
I have fucking HATED Windows 10 from day one. Now I'm hearing there are new vacillations of this genius programming train wreck that I think is designed to force monetize Microsoft's business model.
After a short while I managed to get to a point where I can maintain W 7. In fact, I'm using my old computer right now. Because I could not get this rant to load onto Devrant website. If you are reading this we know that it is because 10 sucks consistently.
I save my files onto a backup hard drive so I can find 'paper file' type solution for whatever random crap might block me at the keyboard. In fact, I still use paper and file cabinets so "technology" doesn't bring me to a screeching halt every time something like "no record of that account" or "wrong password".
Why the hell does my PASSWORD work from W7 but not from W10?! And it's getting WORSE by the day! I'm about to take a fucking hammer to my new fucking computer. And to that guy who smarmy says something to the effect of 'don't be such a pussy... just fix it and you will be happy.' Well. Fuck you too!
Now. That being said. Anybody have a suggestion on what to try next? And don't say something like, 'take your computer to Micro Center or Geek Squad'. I've done those guys twice each. And for a small phenomenal fee they have each time made things slightly worse plus lost parts of my saved data each time.
Oh. And "reset to previous" doesn't work either.
Suggestions?
Probably better at this point to attempt to solve my own problems wrong for free at this point. Maybe I'll learn to program in Linux or some such thing.
Forrest
for suggestions please contact me at
res0naza@yahoo7 -
Oh my dear internet,
FUCK THIS FUCKING SHIT
I AM SICK AND TIRED OF IT, WHO BUILT THIS HACKED TOGETHER ORWELLIAN SWAMP PIT?
Fuck the same fucking Envato template on every content page with 70 layers of sidebars, inline ads, popups, cookies and content shifting as if I was playing CATCH UP WITH YOUR FUCKING CONTENT.
FUCK the same fucking annual upselling 'plans' on every 7-day trial overengineered scam app that requires me to sign up for 1 fucking, falsely advertised task where my fucking password generator doesn't even recognize the input as a password field so I have to cmd+, to my FUCKING BABYLONIAN PASSWORD ARCHIVES PROMPTING ME FOR THE MASTER PASSWORD.
Thank god I can at least CREATE A BURNER CREDIT CARD THAT FREEZES ITSELF BECAUSE I CANNOT BE BOTHERED TO UNSUBSCRIBE FROM YOUR FUCKING STEAMING CRAP.
FUCK every fucking step I take being recorded by our CYBERPUNK OVERLORDS REQUIRING ME to sign up for 5 different fucking privacy protection tools' annual plan or duct tape some open source shit onto my browser just for some BASIC PRIVACY WHILE TRYING TO NAVIGATE ALL THE OTHER 5000 annuals plan naval mines like A FUCKING FRENCH SUBMARINE IN 1940 GERMAN WATERS.
FUCK my walled garden scam ecosystem not being compatible with your walled garden scam ecosystem prompting me to reactivate my old SATANIC GOOGLE DON'T BE EVIL ACCOUNT from 2012 sending me on a DANTE ALIGHIERI STYLE ODYSSEY THROUGH THE 9 LAYERS OF PASSWORD RESET QUESTIONS, UNEXPECTED ERROR, 2FA MY PHONE DIED HELL to come out on the other side as a broken man.
Thank GOD I have your useless SUPPORT PAGE to aid with my signup problems that is actually just an FAQ with a hidden EASTER EGG HUNT for your support form CRISP AI BOT THAT IS ALSO 'currently experiencing high demand due to COVID' which is peculiar since that has been 3 years ago, but fortunately for you enabled you to fire ALL YOUR SUPPORT STAFF AND REPLACE IT WITH THIS BANNER.
I might as well just SCRAPE your fucking content, it'd be faster.
And although it is quite funny, FUCK THIS PAGE TOO for having me create another of 10.000 accounts to write this shit, where my browser firmly placed a newly created burner email into the PASSWORD FIELD.
I do not know how we managed to create something that is even more unwieldy than 56k DIAL-UPS, but I know that if this shit continues I'll have to train my own AGI to proudly interact with of all this STUPID SHIT on my behalf or I'll have to move into THE FUCKING MOUNTAINS AND LIVE WITH THE DEER.1 -
The hype of Artificial Intelligence and Neutral Net gets me sick by the day.
We all know that the potential power of AI’s give stock prices a bump and bolster investor confidence. But too many companies are reluctant to address its very real limits. It has evidently become a taboo to discuss AI’s shortcomings and the limitations of machine learning, neural nets, and deep learning. However, if we want to strategically deploy these technologies in enterprises, we really need to talk about its weaknesses.
AI lacks common sense. AI may be able to recognize that within a photo, there’s a man on a horse. But it probably won’t appreciate that the figures are actually a bronze sculpture of a man on a horse, not an actual man on an actual horse.
Let's consider the lesson offered by Margaret Mitchell, a research scientist at Google. Mitchell helps develop computers that can communicate about what they see and understand. As she feeds images and data to AIs, she asks them questions about what they “see.” In one case, Mitchell fed an AI lots of input about fun things and activities. When Mitchell showed the AI an image of a koala bear, it said, “Cute creature!” But when she showed the AI a picture of a house violently burning down, the AI exclaimed, “That’s awesome!”
The AI selected this response due to the orange and red colors it scanned in the photo; these fiery tones were frequently associated with positive responses in the AI’s input data set. It’s stories like these that demonstrate AI’s inevitable gaps, blind spots, and complete lack of common sense.
AI is data-hungry and brittle. Neural nets require far too much data to match human intellects. In most cases, they require thousands or millions of examples to learn from. Worse still, each time you need to recognize a new type of item, you have to start from scratch.
Algorithmic problem-solving is also severely hampered by the quality of data it’s fed. If an AI hasn’t been explicitly told how to answer a question, it can’t reason it out. It cannot respond to an unexpected change if it hasn’t been programmed to anticipate it.
Today’s business world is filled with disruptions and events—from physical to economic to political—and these disruptions require interpretation and flexibility. Algorithms alone cannot handle that.
"AI lacks intuition". Humans use intuition to navigate the physical world. When you pivot and swing to hit a tennis ball or step off a sidewalk to cross the street, you do so without a thought—things that would require a robot so much processing power that it’s almost inconceivable that we would engineer them.
Algorithms get trapped in local optima. When assigned a task, a computer program may find solutions that are close by in the search process—known as the local optimum—but fail to find the best of all possible solutions. Finding the best global solution would require understanding context and changing context, or thinking creatively about the problem and potential solutions. Humans can do that. They can connect seemingly disparate concepts and come up with out-of-the-box thinking that solves problems in novel ways. AI cannot.
"AI can’t explain itself". AI may come up with the right answers, but even researchers who train AI systems often do not understand how an algorithm reached a specific conclusion. This is very problematic when AI is used in the context of medical diagnoses, for example, or in any environment where decisions have non-trivial consequences. What the algorithm has “learned” remains a mystery to everyone. Even if the AI is right, people will not trust its analytical output.
Artificial Intelligence offers tremendous opportunities and capabilities but it can’t see the world as we humans do. All we need do is work on its weaknesses and have them sorted out rather than have it overly hyped with make-believes and ignore its limitations in plain sight.
Ref: https://thriveglobal.com/stories/...6 -
I used to fucking love VSCode it visually was great, it was simple, had an integrated terminal that wasn't shit, supported many languages well (while not forcing every extension down your throat), and was straightforward to configure. I also had problems with it, mainly I felt it was way too bloated for an editor.
That good impression I had is gone now. It seems like every time I'm actually using the editor I have to fight with it. Whether that's an update that fucked up my config, or a reinstall and now I have to **convince** my fucking editor to use tabs instead of spaces automatically and I have to specify because holy shit it will not just listen after I set every possible fucking indentation setting to disable spaces or enable/prefer tabs and they keep adding shit like this that I give no shits about that make me sift through the damn settings finding the settings that turn off whatever new visual effect or quirky little automation they've implemented. I can't tell you how much I actively don't want my braces to be matched up by a color that doesn't even have anything to do with my color scheme.
Ive tried switching but holy shit intellisense is such a great feature that helps me so much so I'm not always bouncing between docs and my editor. Which ATM I'm learning go and intellisense has more fucking information on the functions than the docs do. I've seen Neovim (which is what I'm probably switching to) has language servers that are similar to intellisense so I'm intrigued to try that.
I'm just tired of constantly having to avoid all this shit I don't give a fuck about. I just want to get in, do my thing.
I won't be surprised if I'm the only one on this train 🤣8 -
Pressing Ctrl+C shouldn't overwrite an existing clipboard entry that has just been created by pressing Ctrl+C immediately before.
Who thought it was a good idea to use copy + paste shortcut keys exactly next to each other? Some people's muscle memory does not work with such a fine subtlety.
How much working hours, days or even years must have been wasted by people using productivity software accidentally losing what they were about to paste from their clipboards?
Anticipating the first comments, yes, that's another kind of first-world problems affecting people that spend too much life time doing stupid office work on a (German) (PC) keyboard, but here we are, procrastinating on devRant ant wasting even more time.
Antipating even more comments: why am I using a keyboard to work in a German train on a sunny Sunday instead of relaxing at a lake or a swimming pool instead? Well, at least this train doesn't seem to have a pool. More luxury problems for me.3 -
I never take breaks at work unless it’s lunchtime - this of course has led to some health problems, so now I try taking more breaks.
But when I’m having a tough time at work I try to notify my colleagues and I usually take breaks more often. Some of which include going for a walk outside, catching some fresh air.
And when commuting home I drink some beer on the train and play sudoku or a binary puzzle while listening to podcasts, or I just take out my Switch and play. -
I’ve become so indecisive in terms of knowing what I want from my career.
All I know is what I don’t want (to end up a in management)
I’m definitely getting a new job and right now it looks like I’ve got 3 offers on the table
Option 1, a previous company I worked for. Still the same problems with the company there as before but the work was interesting and unusual. and my line manager was a good guy.
They have practically no legacy code.
Not much in the way of company benefits but they’re local and it would be nice to see friends again.
So feels like the pull to this is strong.
Option 2, a fully remote company that I’ve been referred to by an ex-workmate.
They’ve not even tech tested me because they’ve read my blogs and GitHub repos instead and said they’re impress. So just had a conversation with them. I feel honoured that they took the time to look at what I’ve done in my own time and use that in their decision.
Benefits are slightly better than option 1 (more hols)
But they’re using .net 6 and get a lot of heavy use on their system and have some big customers. I think the work is integrations to start with and moving services into docker and azure.
Option 3, even though I’ve got an offer from this one but they can’t actually explain the work until We can arrange a call next week (they recruit and then work out what team your in, but Christmas got in the way of me having a call with them straight away)
It’s working on government systems and .net is their least used stack so probably end up switching to Java. Maybe other tech stacks too.
This place has much better benefits than option 1 and 2 (more hols and more pension), but 2 days a week in office.
All of the above pay the same salary.
Having choice feels almost as bad as having no choice.
It’s doing my head in thinking about it , (even tho I might as well not think about it at all until the call with option 3 happens).
On the one hand with option 3, using a tech stack that’s new to me might be refreshing, as I’ve done .net for 10 years.
On the other hand I really like c# and I’m very good at it. So it feels a bit like I should be capitalising on that and using my experience to shape how the dev is done. Not sure I and I can do that with option 3, at least for a while.
C# feels like it’s moving forward nicely and I’m not sure I can say the same for Java or other languages.
I love programming and learning new stuff but so unable to let things go. It’s like I have a fear that c# will move on without me and I’ll end up turning into one of those devs whose skills are a decade out of date.
Maybe the early years of my career formed me in this way.
Early on I worked at a company where there was a high number of Cobol devs who thought they had a job for life.
But then redundancies came and many left. Of those who stayed they had to cross train to Java and they just couldn’t do it.
I don’t think the tech was hard for them, I think they were just so used to not learning that they could no longer adapt.
Think most of them ended up retiring after trying to learn Java for a few years.8 -
Can anyone give me an exercise to train programming or critical analysis?
I am really not motivated and trying to give some motivation back when I want to answer some problems.
I'm a bit getting rusty on my head due to Anime and stuff.1 -
!dev
Personal rant, but as one shouldn't bottle up emotions, probably not so bad idea....
Started with diet and exercise in the vacation, as finally a certain thing starting with C calmed down...
Its maddening how fucked up the world is. Now as a lil private info (that might not be so unknown, shared multiple times here) - my body is a train wreck.
Lungs are fucked, muscle distrophy, some other things are fucked.
I'm the kind of thing every gym trainer dreads - the client that needs not only a lot of ass whooping, but also has a lot of problems that need to be taken care of.
Which is why I rather do exercise at home, cause... My experiences with humans in gyms are bad. Most trainers behave like fucking chimpanzees screaming commands while not listening what one tells them...
First challenge: Find a low impact cardio training.
What one mostly finds is a female chick (which is sad cause I like men more for obvious reasons), that should gain some weight, screaming at ya how great sport is while jumping around like a bunny on ecstasy.
Low impact isn't really low impact when you jump around, lil bunny... And it isn't low impact when you just let yourself fall to the floor and start doing push ups.
If an obese person like me did that, it would end in pain, frustration and an empty fridge TM.
So one has to painfully look and skip through 20 min vids of "Non low impact low impact YouTube / ... vids" to find one that is doable without wrecking the body even further... Yaaaay. That makes one totally not feel depressed :-)
The other thing that I always hate is dieting. Note that I don't have to change much - I'm basically on a diet since years, holding weight the whole time.
The jolly fun is that I can't take off with just an diet. If you never heard that such thing is possible, a lil advice: It is possible. Nothing hurts more than being told that eating less solves all problems magically - cause it doesn't.
What I usually need is added protein, as I suffer from muscle dystrophy in my left side. (hence the low impact vids).
If you go to a grocery store, you most likely find *tons* of protein stuff.
The fun thing is that roughly 80 % of that are - like all things in a supermarket - completely bullshit.
I know one could avoid using protein powder / ... - but that makes dieting a very very very hard task, as one has to not only do a lot of planning, but cooking and eating becomes a depression palooza... It just doesn't make fun when you have to scale components for every meal or force yourself to eat e.g. 250 g of low fat curd cheese to gain the necessary proteins.
Why is supermarket stuff so shitty....
Added sugar / saccharides . When one has been dieting for long for health reasons, one finds out pretty quick that most products (especially those labeled as healthy / fat reduced / "weight loss") are perfectly made to lead to a sugar crisis and binge eating.
I've found protein drinks containing up to 25 g of sugar per drink (330 ml).
A coke has 27 g of sugar per 250 ml...
:) Now isn't that jolly...
I've found my stuff of joy not so long ago (not advertising here, but depending on flavor it has only up to 3 g (!)) of sugar per drink)...
It just annoys me and pisses me off how much money is made - in my opinion deliberately - on the suffering of other people...
Most laws by the way end up being blocked by lobbyists - most nutrient scores etc are just "wrong" or better to unspecific... Making exploitation pretty easy.
It's funny how everyone has an opinion on obese people, everybody is pointing fingers and explaining how stupidly easy it is to take off... And at the same time no one gives a damn about shit like that.
That's all folks. Feeling better now.
By the way, I'm doing fine. I lost 7 kg already, though the train wreck of body was pretty pissed the last two weeks as everything hurts.
Another reason why motivational speeches are dumb in videos: Pain isn't fun. :)1 -
Am I in developer hell already? A shitty project is about to come to an end (hopefully), or should I rather say: It needs to come to an end. But I am still quite lost in how to deal with it, hence procrastinating on it - making the deadline come closer and with it the realization that I'll probably have to rewrite almost everything. I'm not sure how, but I do know that the current code is a dumpster fire.
Basically what I need to do is dealing with the APIs of different payment providers/gateways (like PayPal, AmazonPay). For most cases I'll get a payment ID from the shop and need to act on it later, e.g. capture the authorized money in the case of a credit card transaction or do refunds (without user interaction, unless there is an error). Now at first I put something together where I try to abstract the payment information into two tables:
orders{1}<->{0..n}payments
payments{1}<->{1..n}paymentDetails
Unfortunately trying to abstract the different payment methods and to squeeze them (and their different possible stati and functions) in these tables was not very successful, it's a total mess with magic numbers, half-broken behavior and without any consideration for partial payments/captures or unfinished requests (i.e. if there is an exception before the response is dealt with, there is no indication that anything has ever been sent). Also the current amount is calculated through the history of the paymentDetails table, which basically works differently for each payment type.
How to fix this mess in a way that I'll still have a job by next week?
I'm trying to improve the db schema first, as I think my biggest problems are lying there. Through some research I've come across a recommendation for making payment type specific subtables (with a magic number/string in the main table to prevent having to look up all subtables). That way I can record what I send and receive without having to abstract it too much, so I'll have an acceptable transaction log. The paymentDetails table can be removed (necessary fields go to the payments table). The payments table gets multiple fields for the amount (differentiating between open, authorized, captured, processing and refunded values) and always reflects the current status.
Tables:
payments
paymentRequestsPaypal
paymentRequestsAmazonpay
paymentRequestsXyz
I think I'm going in the right direction here. hm. Maybe there's some light at the end of this long, dark tunnel. Or a train. I'll have two days to find out.question kill me already send help thank you for being my rubber duck payment gateways deadline approaching rant/question burnout6