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 - "9 k"
-
Hi,
I'm not a ranty person so I never actually thought I'd post anything here but here it goes.
From the beginning.
We use ancient technologies. PHP 5.2, Symfony 1.2 and a non RFC complient SOAP with NO documentation.
A year ago We've been thrown a new temporary project. An VOIP app for every OS.
That being iOS, Android, MAC, PC, Linux, Windows mobile. With a 3 month deadline. All that thrown at 4 PHP developers. The idea being that They'll take it, sign the delivery protocol, everyone happy. No more updates for the app needed. They get their funds they needed the app for and we get paid.
Fast forward to today...
Our dev team started the year with great news that We'll most likely have to create a new project. Since the amount of new features would be far greater than current feature set, we managed to finally force our boss to use newer technologies (ie. seperate backend symfony4 PHP7+/frontend react, rest api and so on). So we were ecstatic to say the least. With preestimates aimed at a minimum 3 month development period. Since we're comfortable with everything that needs to be done.
Two days later our boss came to me that one of our most annoying clients needs a new feature. Said client uses ancient version written on a napkin because They changed half of the specification 2 weaks before deadline in a software made not by a developer but some sysadmin who didn't know anything. His MVC model was practically VVV model since he even had sql queries in some views. Feature will take 3 days - fixing everything that will break in the meantime - 1-2 months.
F*** it, fine. A little overtime won't kill me.
Yesterday boss comes again... Apparently someone lost a delivery protocol for a project we ended that half a year ago. Whats even better at the time when we asked for hardware to test we never got any. When we asked about any testing enviornment - nothing. The app being SEMI-stable on everything is an overstatement but it was working on the os'es available at the time. Since the client started testing now again, it turns out that both Android app does not work on 8.1/9 and the iOS app does not work on ios12. The client obviously does not want to pay and we can do little with it without the protocol, other than rewriting the apps.
It will take months at least since all of those apps were written by people that didn't know neither the OS'es nor the languages. For example I started writing the iOS one in swift. Only to learn after half of the development time, that swift doesn't like working by C Library rules and I had to use ObjC also. With some C thrown in due to the library. 3 unknown languages, on an unknown platform in 3 months. I never had any apple device in my hand at that time nor do I intend to now. I'm astonished it worked out then. It was a clusterf**k of bad design and sticking everything together with deprecated apis and a gum. So I'll have to basically fully rewrite it.
If boss decides we'll take all those at the same time I'll f***ing jump of a bridge.8 -
I've been lurking on devrant a while now, I figure it's time to add my first rant.
Little background and setting a frame of reference for the rant: I'm currently a software engineer in the bioinformatics field. I have a computer science background whereas a vast majority of those around me, especially other devs, are people with little to no formal computer background - mostly biology in some form or another. Now, this said, a lot of the other devs are excellent developers, but some are as bad as you could imagine.
I started at a new company in April. About a month after joining a dev who worked there left, and I inherited the pipeline he maintained. Primarily 3 perl scripts (yes, perl, welcome to bioinformatics, especially when it comes to legacy code like is seen in this pipeline) that mostly copied and generated some files and reports in different places. No biggie, until I really dove in.
This dev, which I barely feel he deserves to be called, is a biology major turned computer developer. He was hired at this company and learned to program on the job. That being said, I give him a bit of a pass as I'm sure he did not have had an adequate support structure to teach him any better, but still, some of this is BS.
One final note: not all of the code, especially a lot of the stupid logic, in this pipeline was developed by this other dev. A lot of it he adopted himself. However, he did nothing about it either, so I put fault on him.
Now, let's start.
1. perl - yay bioinformatics
2. Redundant code. Like, you literally copied 200+ lines of code into a function to change 3 lines in that code for a different condition, and added if(condition) {function();} else {existing code;}?? Seriously??
3. Whitesmiths indentation style.. why? Just, why? Fuck off with that. Where did you learn that and why do you insist on using it??
4. Mixing of whitesmiths and more common K&R indentation.
5. Fucked indentation. Code either not indented and even some code indented THE WRONG WAY
6. 10+ indentation levels. This, not "terrible" normally, but imagine this with the last 3 points. Cannot follow the code at freaking all.
7. Stupid logic. Like, for example, check if a string has a comma in it. If it does, split the string on the comma and push everything to an array. If not, just push the string to the array.... You, you know you can just split the string on the comma and push it, right?? If there is no comma it will be an array containing the original string.. Why the fuck did you think you needed to add a condition for that??
8. Functions that are called to set values in global variables, arrays, and hashes.. function has like 5 lines in it and is called in 2 locations. Just keep that code in place!
9. 50+ global variables/hashes/arrays in one of the scripts with no clear way to tell how/when values are set nor what they are used for.
10. Non-descriptive names for everything
11. Next to no comments in the code. What comments there are are barely useful.
12. No documentation
There's more, but this is all I can think to identify right now. All together these issues have made this pipeline the pinnacle of all the garbage that I've had to work on.
Attaching some screenshots of just a tiny fraction of the code to show some of the crap I'm talking about.6 -
Worst documentation I've seen?
Our "Coding Standards" 20+ page document. The team who put it together got so detailed, there wasn't much 'wiggle room' for natural deviations in a developer's coding style. For example, a section devoted to no abbreviations. So if you had a variable 'invoiceId', they complained you violated 'standards', even though 'invoiceId' matched a field name in a database table. Using Dapper or another ORM that relied on the 1:1 name match? Nope, you were still forced to inject your own mappers so the code didn't violate standards.
As you can probably guess, such a long, detailed document would have contradictions. I pointed out one of the contradictions. Example:
Page 5: Section B, sub-section B-5, paragraph 3 : "To minimize network traffic, when querying the database, request all the data necessary for the application."
Page 8: Section K, sub-section K-2, paragraph 4 : "For maximum performance, when querying the database, request only the most minimum amount of data necessary for the application ."
In a review I pointed out this contradiction (there were several more)
Me: "If we satisfy A, one could say the code is in violation of B. Which is it?"
<Pointy-Hair-Boss throws his pencil on the table>
PHB: "WHAT IS YOUR PROBLEM WITH STANDARDS! It couldn't be more clear! We are a company of standards because without standards <blah blah..straw man argument..blah blah>"
<deciding not to die on that hill, I move on>
Me: "On page 12, paragraph 9 code is in violation if a method has more than 3 parameters. That seems a little restrictive given our interaction with 3rd party products."
PHB: "There you go again. As stated in the document, ALL code used by the company will comply to our standards. What part of 'ALL' do you not understand?"
Was he bluffing about requiring 3rd party vendors complying with our standards? Heck no. That's a story for another day.10 -
You know what, let me jump in on the "I hate PHP" bandwagon.
A couple months ago I upgraded my mail servers unattended. Roundcube got fucked for a couple of months, and I figured.. fuck it, I can still use Dovecot for authenticating with desktop mail clients like K-9.
Recently I unfucked it, turns out that it was an issue with the sock file in php-fpm. That's also when I noticed that PHP apparently hardcodes in its current version in the bloody socket file. Because why the fuck wouldn't you? It makes upgrades so much fucking easier!!! Said no fucking sysadmin ever!!!
And today I upgraded one of my mail servers to Ubuntu Server 18.04, finally, after a lot of hesitation. Bad decision, because now PHP got fucked YET AGAIN.
Again an issue with socket files? I have no fucking idea. systemctl shows no failed services (because you know PHP, why would you fail your service with an error message instead of throwing a meaningless 502 Bad Gateway, right?!!) and looking at the config files, well the socket file got its new php-fpm 7.2 file (still got the fucking version number hardcoded in) and thus I changed that socket file location in /etc/php/7.0...
devRant may just have been my rubber duck.
WHY THE FUCK DO YOU STINKING FUCKING PILE OF SHIT CALLED FUCKING PHP KEEP THE FUCKING 7.0 DIRECTORY OUT THERE WHEN YOU'VE UPGRADED, WITHOUT EVEN HAVING THE FUCKING BALLS TO RENAME THE MOTHERFUCKING DIRECTORY TO 7.2, IF YOU'RE GOING TO HARDCODE IN YOUR VERSION NUMBERS ANYWAY?!!!!!
Bloody fucking pile of fucking junk!!!!18 -
// Posting this as a standalone rant because I've written the best piece of code ever.
// Inspired by https://devrant.com/rants/1493042/... , here's one way to get to number 50. Written in C# (no, not Do diesis).
int x = 1;
int y = x + 1;
int z = y + 1;
int a = z + 1;
int b = a + 1;
int c = b + 1;
int d = c + 1;
int e = d + 1;
int f = e + 1;
int g = f + 1;
int h = g + 1;
int i = h + 1;
int j = i + 1;
int k = j + 1;
int l = k + 1;
int m = l + 1;
int n = m + 1;
int o = n + 1;
int p = o + 1;
int q = p + 1;
int r = q + 1;
int s = r + 1;
int t = s + 1;
int u = t + 1;
int v = u + 1;
int w = v * 2 * -1; // -50
w = w + (w * -1 / 2); // -25
w = w * -1 * 2; // 50
int addition = x+y+z+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v;
addition = addition * 2;
if (addition == w)
{
int result = addition + w - addition;
Console.Writeline(result * 1 / 1 + 1 - 1);
}
else
{
char[] error = new char[22];
error[0] = 'O';
error[1] = 'h';
error[2] = ' ';
error[3] = 's';
error[4] = 'h';
error[5] = 'i';
error[6] = 't';
error[7] = ' ';
error[8] = 'u';
error[9] = ' ';
error[10] = 'f';
error[11] = 'u';
error[12] = 'c';
error[13] = 'k';
error[14] = 'e';
error[15] = 'd';
error[16] = ' ';
error[17] = 'u';
error[18] = 'p';
error[19] = ' ';
error[20] = 'm';
error[21] = '8';
string error2 = "";
for (int error3 = 0; error3 < error.Length; error3++;)
{
error2 += error[error3];
}
Console.Writeline(error2);
}5 -
Any other IT company is like:
* Task -> Designer -> Markup coder -> Backend -> Finish
Our IT company:
Act I: "Art of setting up contact with idiots".
------
Items:
*Cave scripts (aka "typical task")
Designer: -- "DAFUQ?"
Customer: *gives another interpretation*
Designer: -- "Erm... really? White text on white background?"
Customer: -- "Make a decision by yourself. I was expecting much more independence from you. You are an expert after all."
Designer: -- "Well. I'm making decision by myself. The text will be placed *here* and will be gray-colored, because *bla-bla-bla*"
Customer: -- "I disagree."
Designer: *1 hour of silence later* -- "Well...k."
Act II: "Design meets ar(u)tist"
----
Items:
*Something, that was drawn by dumb kid while smashing his own head against desk. (PSD layout)
* Salt (to pour it on open wounds)
Designer: -- "I'm seeing this task *this way*"
Markup: -- "And how do u think i should get this done? Have you even seen what you made?? This is bullshit!"
Designer: -- "It's not bullshit! It's a sci-fi themed layout!"
Markup: -- "With gameplay elements and graphics from Alien Shooter??"
Designer: -- "Well, I don't care." *brings new edits and changes*
Markup: -- "????"
Designer: *smug face* -- "!!!"
Act III (7 days later, 9 hours till deadline): "Short story about boy, who was trying to hang himself, but instead fell out from window."
----
Items:
*Markup, smelling like it went through hell and back (x1)
* Markup coder with fried butt (x1)
Backend: -- "What. Is. THAT?"
Markup: -- "It's a work we should complete in 9 hours."
Backend: -- "WE?? I know u mean me, but that's a nightmare. What the f*ck were you doing all this time?"
Markup: -- "Well..." *finds out that he was only watching films and sleeping* "I was making this thing up..."
Backend: -- "You mean "f*cking" *this* thing "up"?"
Markup: -- "Not without it"
(*3 hours of edits and changes of color from white to white later*)
Backend: -- "Well, let's do this."
*Picks PHP and tries to bundle it up with MongoDB. After some time tries to rewrite everything to JS and starts shouting something like "F***CK" and looking for window to walk through. Figures out that he is on first floor. And that he is too lazy to go upstairs*
Act IV (3 days after deadline): "Pain and misery":
-----
Items:
*Something covered with insul(t)ating tape. (Final product)
Customer: -- "Really?"
Team: -- "Kinda."
Customer: -- "Well, thanks for your work anyway. It feels like it's going to disassemble right in my hands but it just works. Oh, also, you didnt made this in time, so your payment will be over9000 times lower. That's all"
Backend, on fluids: -- "Well...yeah..."
Markup: -- "Don't look at me like that. I really was doing my job."
Designer, with twitching eye: -- "Huh, I see. You worked so hard that we have nothing to eat now. Thanks for that."
Backend: ...1 -
In the 90s most people had touched grass, but few touched a computer.
In the 2090s most people will have touched a computer, but not grass.
But at least we'll have fully sentient dildos armed with laser guns to mildly stimulate our mandatory attached cyber-clits, or alternatively annihilate thought criminals.
In other news my prime generator has exhaustively been checked against, all primes from 5 to 1 million. I used miller-rabin with k=40 to confirm the results.
The set the generator creates is the join of the quasi-lucas carmichael numbers, the carmichael numbers, and the primes. So after I generated a number I just had to treat those numbers as 'pollutants' and filter them out, which was dead simple.
Whats left after filtering, is strictly the primes.
I also tested it randomly on 50-55 bit primes, and it always returned true, but that range hasn't been fully tested so far because it takes 9-12 seconds per number at that point.
I was expecting maybe a few failures by my generator. So what I did was I wrote a function, genMillerTest(), and all it does is take some number n, returns the next prime after it (using my functions nextPrime() and isPrime()), and then tests it against miller-rabin. If miller returns false, then I add the result to a list. And then I check *those* results by hand (because miller can occasionally return false positives, though I'm not familiar enough with the math to know how often).
Well, imagine my surprise when I had zero false positives.
Which means either my code is generating the same exact set as miller (under some very large value of n), or the chance of miller (at k=40 tests) returning a false positive is vanishingly small.
My next steps should be to parallelize the checking process, and set up my other desktop to run those tests continuously.
Concurrently I should work on figuring out why my slowest primality tests (theres six of them, though I think I can eliminate two) are so slow and if I can better estimate or derive a pattern that allows faster results by better initialization of the variables used by these tests.
I already wrote some cases to output which tests most frequently succeeded (if any of them pass, then the number isn't prime), and therefore could cut short the primality test of a number. I rewrote the function to put those tests in order from most likely to least likely.
I'm also thinking that there may be some clues for faster computation in other bases, or perhaps in binary, or inspecting the patterns of values in the natural logs of non-primes versus primes. Or even looking into the *execution* time of numbers that successfully pass as prime versus ones that don't. Theres a bevy of possible approaches.
The entire process for the first 1_000_000 numbers, ran 1621.28 seconds, or just shy of a tenth of a second per test but I'm sure thats biased toward the head of the list.
If theres any other approach or ideas I may be overlooking, I wouldn't know where to begin.16 -
After a lot of work, the new factorization algorithm has a search space thats the factorial of (log(log(n))**2) from what it looks like.
But thats outerloop type stuff. Subgraph search (inner loop) doesn't appear to need to do any factor testing above about 97, so its all trivial factors for sequence analysis, but I haven't explored the parameter space for improvements.
It converts finding the factors of a semiprime into a sequence search on a modulus related to
OIS sequence A143975 a(n) = floor(n*(n+3)/3)
and returns a number m such that n=pq, m%p == 0||(p*i), but m%q != 0||(q*k)
where i and k are respective multiples of p and q.
This is similar in principal to earlier work where I discovered that if i = p/2, where n=p*q then
r = (abs(((((n)-(9**i)-9)+1))-((((9**i)-(n)-9)-2)))-n+1+1)
yielding a new number r that shared p as a factor with n, but is coprime with n for q, meaning you now had a third number that you could use, sharing only one non-trivial factor with n, that you could use to triangulate or suss out the factors of n.
The problem with that variation on modular exponentiation, as @hitko discovered,
was that if q was greater than about 3^p, the abs in the formula messes the whole thing up. He wrote an improvement but I didn't undertsand his code enough to use it at the time. The other thing was that you had to know p/2 beforehand to find r and I never did find a way to get at r without p/2
This doesn't have that problem, though I won't play stupid and pretend not to know that a search space of (log(log(n))**2)! isn't an enormous improvement over state of the art,
unless I'm misunderstanding.
I haven't posted the full details here, or sequence generation code, but when I'm more confident in what my eyes are seeing, and I've tested thoroughly to understand what I'm looking at, I'll post some code.
hitko's post I mentioned earlier is in this thread here:
https://devrant.com/rants/5632235/...2 -
"Reflective" programming...
In almost every other language:
1. obj.GetType().GetProperties()
or
for k, v in pairs(obj) do something end
or
fieldnames(typeof(obj))
or
Object.entries(obj)
2. Enjoy.
In C++: 💀
1. Use the extern keyword to trick compilers into believing some fake objects of your chosen type actually exist.
2. Use the famous C++ type loophole or structured binding to extract fields from your fake objects.
3. Figure out a way to suppress those annoying compiler warnings that were generated because of your how much of a bad practice your code is.
4. Extract type and field names from strings generated by compiler magic (__PRETTY_FUNCTION__, __FUNCSIG__) or from the extremely new feature std::source_location (people hate you because their Windows XP compilers can't handle your code)
5. Realize your code still does not work for classes that have private or protected fields.
6. Decide it's time to become a language lawyer and make OOPers angry by breaking encapsulation and stealing private fields from their classes using explicit template instantiation
7. Realize your code will never work outside of MSVC, GCC or CLANG and will always be reliant on undefined behaviors.
8. Live forever in doubt and fear that new changes to the compiler magic you abused will one day break your code.
9. SUFFER IN HELL as you start getting 5000 lines worth of template errors after switching to a new compiler.13 -
*new message on LinkedIn from recruiter
Recruiter: would you be interested in a position on .Net ?
Me: I'm only interested in positions that offer flexible schedule (so I can continue my studies)
Recruiter: *proceeds to send me a long description of the job and company
Me: *read it. There is no information regarding the schedule anywhere. Search on Google the company and find out they have a fixed schedule 9-16. F**K!!, Why would you waste my time and yours, you don't even read my message or what ??2 -
Is it sad that I look forward to the weekend so that I can actually write some code rather than:
- Helping clients that can’t / won’t read docs
- Explaining to test colleagues that we need repro steps and can’t fix a bug based on “I was doing something and it crashed”
- Writing any regular expressions for another dev where it’s more complicated than ^[A-Z0-9]*$
- Wading through legacy VBA that’s littered with GoTo, global variables (even i, j and k for loops are fucking global!) and all the other fucking lazy shortcuts that save you 10 seconds at dev time and cost you (which ends up meaning me) hours in subsequent debugging.
I love writing code, and I think I’m pretty good at it, so can I please just get on with it?
Fellow ranters, please tell me I’m not alone in this. -
Idealistic vs. realistic sprint planning:
Idealistic:
p1: "Can you tell us why you think this user story deserves 9 workdays?"
p2: "Of course. We are using framework xyz for part ABC of component y, so if we were to adopt changes in this, we would need to do new test planning and adjust accordingly. The complexity is of linear time and so -"
p1: "Interesting. I had not thought about that. Let us discuss more"
Realistic:
p1: "Ok so, how long?"
p2: "um, 9 days"
p1: "k"
p2: "k"
p1: "and you?"
p2: "yeah 4 for this 2 for this 1 for this, rest is ok"
p1: "aight, meeting concluded gg"
The idealistic one can happen if there's team trust, but usually there's team dysfunction which causes for team silence and brewing of product issues later on. If only reality weren't this sad.4 -
I had a pretty good year! I've gone from being a totally unknown passionate web dev to a respected full stack dev. This will be a bit lengthy rant...
Best:
- Got my first full time employment dev role at a company after being self-taught for 8+ years at the start of the year. Finally got someone to take the risk of hiring someone who's "untested" and only done small and odd jobs professionally. This kickstarted my career, super grateful for that!
- Started my own programming consulting company.
- Gained enough confidence to apply to other jobs, snatched a few consulting jobs, nailed the interviews even though I never practiced any leet code.
- Currently work as a 99% remote dev (only meet up in person during the initialization of some projects.) I never thought working remotely could actually work this well. I am able to stay productive and actually focus on the work instead of living up to the 9-5 standard. If I want to go for a walk to think I can do that, I can be as social and asocial as I want. I like to sleep in and work during the night with a cup of tea in the dark and it's not an issue! I really like the freedom and I feel like I've never been more productive.
- Ended up with very happy customers and now got a steady amount of jobs rolling in and contracts are being extended.
- I learned a lot, specialized in graph databases, no more db modelling hell. Loving it!
- Got a job where I can use my favorite tools and actually create something from scratch which includes a lot of different fields. I am really happy I can use all my skills and learn new things along the way, like data analysis, databricks, hadoop, data ingesting, centralised auth like promerium and centralised logging.
- I also learned how important softskills are, I've learned to understand my clients needs and how to both communicate both as a developer and an entrepeneur.
Worst:
- First job had a manager which just gave me the specifications solo project and didn't check in or meet me for 8 weeks with vague specifications. Turns out the manager was super biased on how to write code and wanted to micromanage every aspect while still being totally absent. They got mad that I had used AJAX for requests as that was a "waste of time".
- I learned the harsh reality of working as a contractor in the US from a foreign country. Worked on an "indefinite" contract, suddenly got a 2 day notification to sum up my work (not related to my performance) after being there for 7+ months.
- I really don't like the current industry standard when it comes to developing websites (I mostly work in node.js), I like working with static websites (with static website generators like what the Svelte.js driver) and use a REST API for dynamic content. When working on the backend there's a library for everything and I've wasted so many hours this year to fix bugs and create workarounds related to dependencies. You need to dive into a rabbit hole for every tool and do something which may work or break something later. I've had so many issues with CICD and deployment to the cloud. There's a library for everything but there's so many that it's impossible to learn about the edge cases of everything. Doesn't help that everything is abstracted away, which works 90% of the time but I use 15 times the time to debug things when a bug appears. I work against a black box which may or may not have an up to date documentation and it's so complex that it will require you to yell incantations from the F#$K
era and sacrifice a goat for it to work properly.
- Learned that a lot of companies call their complex services "microservices". Ah yes, the microservice with 20 endpoints which all do completely unrelated tasks? -
In the chaotic world of online investments and cryptocurrency trading, trust is a fragile commodity. It takes just one wrong move to lose everything, and unfortunately, many fall victim to sophisticated scams promising high returns with minimal effort. I found myself in such a predicament, having been lured by the deceptive promises of 'Ghost Traders' who vanished into thin air, leaving me in a state of despair. However, amidst the darkness, there was a beacon of hope – Lee Ultimate Hacker. with Lee Ultimate Hacker began at my lowest moment. I had invested a substantial amount, $227,000, entrusting it to the hands of supposed experts who claimed they could multiply it tenfold through Bitcoin trading. As the days passed, my investments seemed to vanish into the digital abyss, along with any hope of recovery. The website of the 'Ghost Traders' disappeared without a trace, leaving me stranded and financially devastated. Frustrated and desperate for a solution, I stumbled upon Lee Ultimate Hacker. Skeptical yet with little to lose, I reached out to them, sharing the harrowing tale of my financial demise. To my surprise, they responded promptly, offering reassurance and a glimmer of hope. Despite my initial reservations, I decided to place my trust in their hands, a decision that would ultimately change my life.The turnaround was swift and astonishing. Within a mere six hours, Lee Ultimate Hacker had accomplished what seemed impossible – they had recouped my entire investment, restoring my faith in the possibility of redemption. It was a moment of sheer relief and gratitude, knowing that there were still honorable entities in the digital realm willing to fight for justice. what set Lee Ultimate Hacker apart is not just their efficiency in recovering lost funds, but also their unwavering commitment to their clients. Throughout the process, they maintained open communication, providing regular updates and guidance to ease my concerns. Their professionalism and dedication were evident at every step, instilling a sense of confidence and trust that had been shattered by previous experiences. Lee Ultimate Hacker goes beyond mere transactional interactions; they prioritize education and empowerment. In sharing my story, I hope to raise awareness about the importance of due diligence and vigilance in the online investment landscape. Their quick tip resonates deeply – if recovery efforts stagnate, it may be time to seek alternative assistance. It's a lesson learned the hard way, but one that I am grateful for nonetheless. In conclusion, I wholeheartedly recommend Lee Ultimate Hacker as a beacon of hope for those who have fallen victim to financial scams. Their swift action, unwavering dedication, and commitment to client satisfaction set them apart as a trusted ally in the fight against online fraud. With Lee Ultimate Hacker by your side, there is light at the end of the tunnel – a chance to reclaim what is rightfully yours and rebuild trust in the digital world. Thank you, Lee Ultimate Hacker, for restoring my faith and helping me reclaim what was lost.
Contact :
L E E U L T I M A T E H A C K E R @ A O L .
C O M
S u p p o r t @ l e e u l t i m a t e h a c k e r . c o m
t e l e g r a m : L E E U L T I M A T E
w h @ t s a p p + 1 ( 7 1 5 ) 3 1 4 - 9 2 4 8 -
A cold fear clawed at my throat as I watched $120,000, my life savings, vanish into the digital abyss with a single, ill-fated click on a seemingly legit website. My financial future crumbled like a sandcastle under a rogue wave, leaving me gasping for security. Days bled into weeks, each one a gut-wrenching symphony of despair and frantic Googling. Every "lost funds recovery" claim screamed "scam" in crimson neon. Until, amidst the digital rubble, I stumbled upon Lee Ultimate Hacker — a flicker so faint I almost missed it, but a tenacious shadow nonetheless. Could this company, with its seemingly fantastical promise, truly be my knight in shining armor? I devoured testimonials like a drowning man grasping at lifelines thrown across the void. Finally, fueled by a desperate hope, I reached out. From the first hesitant email, Lee Ultimate Hacker exuded empathy. Their team, a chorus of patient voices and reassuring tones, walked me through the intricate dance of data recovery. Every update, every hurdle overcome, chipped away at the ice encasing my heart. Weeks later, the unthinkable happened. Lee Ultimate Hacker did it. They retrieved my $120,000, meticulously piecing together the shattered fragments of my financial security. Tears, this time joyful, streamed down my face as the numbers materialized on my screen, tangible proof of a miracle. More than just recovering my funds, they reminded me that kindness, expertise, and sheer determination can triumph even in the darkest corners of the digital world. Today, I stand taller, my voice a testament to their prowess. I consider myself not just lucky, but eternally grateful. Remember, your story is a powerful tool to raise awareness about online scams and inspire others facing similar situations. Don't let your misfortune be in vain. Let it be a beacon of hope, a testament to the power of resilience and the magic of unexpected allies like Lee Ultimate Hacker. Lee Ultimate Hacker proved to be the beacon of hope I desperately needed. From the moment I reached out, their empathy and expertise shone through. Their team guided me with patience and reassurance, turning what seemed like an impossible situation into a success story. Their meticulous approach to data recovery left no stone unturned, ultimately restoring my financial security and faith in humanity. Their testimonials spoke volumes, offering a lifeline in a sea of doubt. Unlike other recovery services that felt like scams, Lee Ultimate Hacker delivered tangible results, proving themselves to be trustworthy allies in the fight against online fraud. I wholeheartedly recommend Lee Ultimate Hacker to anyone facing a similar predicament. They are not just a company; they are guardians of hope, capable of turning despair into triumph with their expertise and dedication.
Contact info:
L E E U L T I M A T E H A C K E R @ A O L . C O M
S u p p o r t @ l e e u l t i m a t e h a c k e r . c o m
t e l e g r a m : L E E U L T I M A T E
w h @ t s a p p + 1 ( 7 1 5 ) 3 1 4 - 9 2 4 8 -
L E E U L T I M A T E H A C K E R @ A O L . C O M
t e l e g r a m : L E E U L T I M A T E
w h @ t s a p p + 1 ( 7 1 5 ) 3 1 4 - 9 2 4 8
A Call for Awareness and Vigilance. As a college lecturer in Amsterdam, I’ve always emphasized the importance of financial literacy and critical thinking. However, I recently faced a harsh lesson when I lost $25,000 to a fraudulent Coin Trade platform. This experience was not only financially devastating but also an eye-opener regarding the prevalence of scams in the cryptocurrency space. Initially drawn in by promises of high returns and user-friendly interfaces, I believed I had conducted thorough research. Unfortunately, the allure of quick profits clouded my judgment. The platform appeared legitimate at first, complete with a polished interface and convincing testimonials. However, when I attempted to withdraw my funds, I encountered numerous obstacles, making it clear that I had fallen victim to a sophisticated scam. This incident highlighted the critical need for education about online trading and cryptocurrency investments. Scammers are becoming increasingly adept at creating convincing schemes, and the signs of fraud can be subtle. It's essential for investors to remain vigilant, perform thorough due diligence, and .maintain a healthy skepticism toward offers that seem too good to be true. After realizing the extent of my loss, I felt frustration and helplessness. Fortunately, I connected with a skilled recovery expert who specializes in assisting individuals affected by similar scams. Their guidance was invaluable in navigating the complex process of fund recovery, and I was able to reclaim a significant portion of my lost funds. For anyone facing similar challenges—having lost money to fraudulent platforms—I strongly encourage you to seek help. Lee Ultimate Hacker proved to be a reliable resource, and I can personally attest to the effectiveness of their services. Their dedicated team understands the intricacies of these scams and can assist in recovery efforts. Ultimately, sharing my experience aims to raise awareness and educate others about the risks associated with cryptocurrency investments. By fostering an environment of knowledge and vigilance, we can better protect ourselves and our communities from falling victim to such scams. Let’s continue to learn from one another and promote safer investing practices in the ever-evolving digital landscape. -
After a catastrophic hack, recovering one's bitcoin holdings can be a difficult and complicated process, but it is possible to recover what was lost with the correct advice and knowledge. In my situation, I was the victim of a very skilled cyberattack that caused my digital assets to instantly disappear from my cryptocurrency wallet. As I struggled with the fact that my financial security had been torn away, panic and despair crept in. But I didn't lose hope, and after doing a lot of research, I found Lee Ultimate Hacker service that is well-known for its capacity to locate and retrieve stolen cryptocurrency. When I contacted their staff, they listened carefully to the specifics of my experience and responded in a kind and sympathetic manner. The Lee specialists started painstakingly tracking the movements of my stolen money, traversing the complex world of cryptocurrency transactions, by utilizing their extensive understanding of blockchain technology and hacking techniques. They pursued the digital trail with unwavering resolve, revealing the intricate network of wallets and exchangers the hackers had employed to hide their activities. The Lee Ultimate team was able to locate my missing assets using their advanced investigative methods and state-of-the-art equipment, which paved the way for the recovery procedure.
What followed was a delicate and intricate operation, as the Lee professionals collaborated with law enforcement agencies and cryptocurrency exchanges to freeze the illicit funds and initiate the retrieval process. This involved navigating a maze of legal and technical hurdles, but the team's expertise and persistence paid off, and eventually, I was overjoyed to see my cryptocurrency holdings restored to my rightful wallet. The sense of relief and restored peace of mind was palpable, and I am forever grateful to the Lee team for their tireless efforts in guiding me through this harrowing ordeal and helping me reclaim what was rightfully mine. For more insight; L E E U L T I M A T E H A C K E R @ A O L . C O M
t e l e g r a m : L E E U L T I M A T E
w h @ t s a p p + 1 ( 7 1 5 ) 3 1 4 - 9 2 4
8 -
HOW TO RECOVER STOLEN OR LOST USDT→ VISIT HACKATHON TECH SOLUTION
If you've fallen victim to a scammer and lost your USDT (Tether), i understand how frustrating and disheartening it can be. However, there are steps you can take to increase your chances of recovering your funds from these unscrupulous individuals. One option you can consider is reaching out to Hackathon Tech Solutions, a company that specializes in cybersecurity and digital forensics.Reach out to HACKATHON TECH SOLUTIONS via below contact details
Email: info(@)hackathontechsolution(.)com
W h a t s a p p : + 31 6 4 7 9 99 2 5 6
Telegram: (@)h a c k a t h o n techsolutions -
RECOVER YOUR STOLEN BTC/USDT WITH THE HELP OF SOLACE CYBER WORKSTATIONS
When I first encountered a fitness-focused crypto token supposedly endorsed by NFL quarterback Jake Thompson, I was filled with excitement and optimism. As a long-time fan of Thompson's remarkable performances on the field, his endorsement would lend credibility to the project. Eager to seize what I thought was a golden opportunity, I invested $12,000, convinced that this token would yield significant returns. My enthusiasm quickly turned to despair. Just days after my investment, Thompson deleted all his posts related to the token, leading to a catastrophic collapse in its value. To my utter disbelief, I later learned that the account promoting the token was a fraudulent impersonation of someone who had been posing as Thompson to mislead investors like me. This shocking revelation made it clear that the endorsement was nothing more than a ploy by a scam artist, raising serious ethical concerns about the integrity of celebrity endorsements in the cryptocurrency realm. Desperate to recover my losses, I sought assistance from Solace Cyber Workstations, a firm renowned for its expertise in tracing and recovering funds from fraudulent schemes. Solace Cyber Workstations conducted a thorough investigation and uncovered a disturbing connection between the token's development team for orchestrating celebrity scams. This agency had a long history of leveraging high-profile endorsements, including impersonations, to ensnare unsuspecting investors in dubious ventures. With the support of Solace Cyber Workstations, I felt a renewed sense of hope. They took decisive action, threatening to expose the agency's clients to compel them to take responsibility. Thanks to Solace Cyber Workstations' strategic approach, I was able to recover an impressive 90% of my investment, totaling $10,800. While I still faced a loss, it was a tremendous relief to see such a significant portion of my money returned, all thanks to Solace Cyber Workstations' diligent efforts. This has served as a harsh lesson about the inherent risks of investing in celebrity-endorsed cryptocurrencies, particularly when impersonation is involved. I now recognize the critical importance of conducting thorough research and exercising caution before committing my funds to any project, especially those backed by famous figures. I hope my story serves as a warning to others to remain vigilant in the ever-evolving landscape of digital assets, and I cannot stress enough how instrumental Solace Cyber Workstations was in helping me navigate this challenging situation. Don't be left out, reach out to them now
Website: h t t p s : / / s o l a c e c y b e r w o r k s t a t i o n s . c o m
Email: S o l a c e . c y b e r . w o r k s t a t i o n s @ m a i l . c o m
WhatsApp: + 1 2 4 0 7 4 3 7 6 8 91