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 - "team structure"
-
My "Coding Standards" for my dev team
1.) Every developer thinks or have thought their shit don't stink. If you think you have the best code, submit it to your peers for review. The results may surprise you.
2.) It doesn't matter if you've been working here for a day or ten years. Everyone's input is valuable. I don't care if you're the best damn programmer. If you ever pull rank or seniority on someone who is trying to help, even if it isn't necessarily valid or helpful, please have your resume ready to work elsewhere.
3.) Every language is great and every language sucks in their own ways. We don't have time for a measuring contest. The only time a language debate should arise is for the goal of finding the right one for the project at hand.
4.) Comment your code. We don't have time to investigate what the structure and purpose of your code is when we need to extend upon it.
5.) If you use someone else's work, give them the credit in your comments. Plagiarism will not be tolerated.
6.) If you use flash, you will be taken out back and shot. If you survive, you will be shot again.
7.) If you load jQuery for the sole purpose of writing a simple function, #6 applies.
8.) Unless it is an actual picture, there is little to no reason for not utilizing CSS. That's what it's there for.
9.) We don't support any version of Internet Explorer and Edge other than the latest versions, and only layout/alignment fixes will be bothered with.
10.) If you are struggling with a task, reach out. While you should be able to work independently, it doesn't make sense to waste your time and everyone else's to not seek assistance when needed.
11.) I'm serious about #6 and #7. Don't do it.48 -
1. The quality of the coffee and toilet paper you encounter during an interview tells you more than promises about table tennis or fruit baskets.
2. Try to determine who their primary client is: subscribers, app buyers, advertisers, etc. It's a major influence on the company dynamic.
3. Before an interview, you can just say: "I would like to sit down with a PO and run through one backlog feature and one bug, to get a feel for the type of tasks at the company". Such an activity immediately reveals team structure, whether they have product owners & scrum masters, what a sprint looks like, how they prioritize tasks, and how organized/chaotic your work experience will be.16 -
I was hired as a senior software engineer. During handover I found out I'm actually replacing the CTO.
I queried why he was leaving and got a simple "just want a break from working" which I found odd.
Fast forward and now I also just want a break from work, permanently. This place has followed every bad practise and big no-no out there. Every bit of software is a built in house knockoff janky piece of crap that doesn't work and makes people's jobs 5000 times harder.
The UI looks worse than Windows 3.1, absolutely horrendous code formatting, worst database structure I've ever seen.
The mere mention of using a team communication tool results in being yelled at from the CEO whom communicates purely via email, who then gets annoyed when you don't reply because they sent the email to a client instead of you.
We get handed printed out "tickets" to work instead of the so called "amazing in house ticket system" built using PHP 5 and is literally crammed into an 800x600 IFrame. Yes a F$*#ing IFRAME!
It's not like we have an outdated TFS server that has work items we can use...
Why not push for changes you say. I have, many times, tried to suggest better tools. The only approval I've gotten is using PhpStorm. Everything else is shutdown immediately and you get the silent treatment.
The CEO hired me to do a job, then micromanages like crazy. I can't make UI changes, I can't make database changes, why? They insists they know best, but has admitted multiple times to not knowing SQL and literally uses a drag and drop database table builder.
Every page in the webapps we make are crammed into 800x600 iframes with more iframes inside iframes. And every time it's pointed out we need to do something, be it from internal staff or client suggestions, the CEO goes off about how the UI is industry leading and follows standards.. what in the actual f....
Literally holding on by a thread here. Why hire a CTO under the guise of being a senior developer but then reduce the work that can be done down to the level of a junior?
Sure the paycheck is really nice but no job is worth the stress, harassment and incompetent leadership from the CEO.
They've verbally abused people to the point they resign, best part is that was simply because the CEO made serious legal mistakes, was told about it by the employee then blamed it on others.21 -
To be a good developer, you must thrive in chaos, and have an insatiable desire to turn it into order.
All user input, both work tasks and actual application input, is pure fucking chaos.
The only way to turn that input into anything usable, is to interpret, structure and categorize it, to describe the rules for transformation as adequately as you can.
Sometimes companies create semi-helpful roles to assist you with this process. Often, these people are so unaware of the delicacy of the existing chaos, that any decision they make just ripples out in waves leaving nearly irreparable confusion and destruction in its path.
So applications themselves also slowly wear down into chaos under pressure of chaotic steak-holders which never seem to be able to choose between peppercorn or bernaise sauce for their steaks.
Features are added, data is migrated between formats, rules become unclear. Is ketchup even fucking valid, as a steak sauce?
The only way to preserve an application long term, is refactoring chaos into order.
But... the ocean of chaos will never end.
You must learn to swim in it.
All you can hope to do is create little pools of clarity where new creative ideas can freely spawn.
Ideas which will no doubt end up polluting their own environment, but that's a problem for tomorrow.
So you must learn to deal with the infinite stream of perplexed reactions from those who can't attach screenshots to issue reports.
You must deflect dragging conversations from those who never quite manage to translate gut feeling into rational sentences.
You must learn to deal with the fact that in reality there are no true microservice backends. There are no clean React frontends. There are no normalized databases. Full test coverage, well-executed retrospectives, finished sprints -- they are all as real as spherical cows in a vacuum.
There is no such thing as clean code.
There is only "relatively cleaner code", and even then there are arguments as to why it would be "subjectively relatively cleaner code".
Every repository, every product, every team and every company is an amalgamation of half-implemented ideals, well-intended tug of war games, and brilliantly shattered dreams.
You will encounter fragmented shards of perfect APIs, miles of tangled barbed documentation, beheaded validator classes, bloody mangled corpses of analytical dashboards, crumbled concrete databases.
You must be able to breathe in those thick toxic clouds of rotting technical and procedural debt, look at your reflection in the locker room mirror while you struggle yourself into a hazmat suit, and think:
"Fuck yes, I was born for this job".24 -
Root interviews for a job
So I've been interviewing for fun lately (and for practice), and it's been going mostly well. This one company in particular looks interesting, and they seem to really like me. This morning was interview #4 with them; tomorrow morning is #5.
The previous interviews were pretty enjoyable, especially the last one where I interviewed with one of the senior devs who gave me his "grumpy old man rails quiz." He actually asked some questions I wasn't able to answer! (Mostly dealing with Rails' internals.) Also when showing me the codebase, there were a few things I hadn't seen before, so it's exciting that I'll actually be able to learn something if I sign on. We ended up talking for almost an hour past our allotted time, and we got along famously. He said he was very surprised I did so well on his quiz because most people don't. Everyone else I interviewed with so far has liked me and gave positive reviews, too.
I don't know if I want the job, but that's beyond the scope of this rant anyway. The real reason for this comes next.
My interview today was with the VP of engineering. It was more of a monologue, as he wanted to give me perspective to see if I actually wanted to work there, but it was still very much a monologue. He's an old white guy who seems to loves to drone, and he never seemed very happy when I responded, so I let him drone and drone. Good information though.
But he's very set in his ways in some regards, and two of them were pretty insulting. We never really talked about technicals, and he just assumed that since I wasn't old and graying that I was a junior dev. He said, and I'll quote: "We run a lean but senior team, so we typically only hire senior devs here. But the dev team is all old white men. There's no diversity in talent, age, sex, race, religion, etc, and I'm looking to change that." He made several more allusions to my more junior level, too. He made a lot of assumptions (like how I'm not comfortable with structure because I've been the only dev so often) and got annoyed when I countered them.
I realize he has no idea of my skill level -- even though he should if he was listening to his team -- but to just assume that I'm not talented because I'm young, and bloody hire me just because I'm female? I don't want to be your diversity hire, old man. 🤬
So I'm feeling angry.
I might still take the job because the it offers considerable benefits over where I'm working (despite being quite happy here), but it will absolutely be despite him.rant i don't want to leave my job sexism but i want to leave the desert and the two are married ageism am i really going to tag this ageism? guess so 🙁 diversity hire interview28 -
I've had many, but this is one of my favorite "OK, I'm getting fired for this" moments.
A new team in charge of source control and development standards came up with a 20 page work-instruction document for the new TFS source control structure.
The source control kingpin came from semi-large military contract company where taking a piss was probably outlined somewhere.
Maybe twice, I merged down from a release branch when I should have merged down from a dev branch, which "messed up" the flow of code that one team was working on.
Each time I was 'coached' and reminded on page 13, paragraph 5, sub-section C ... "When merging down from release, you must verify no other teams are working
on branches...blah blah blah..and if they have pending changes, use a shelfset and document the changes using Document A234-B..."
A fellow dev overheard the kingpin and the department manager in the breakroom saying if I messed up TFS one more time, I was gone.
Wasn't two days later I needed to merge up some new files to Main, and 'something' happened in TFS and a couple of files didn't get merged up. No errors, nothing.
Another team was waiting on me, so I simply added the files directly into Main. Unknown to me, the kingpin had a specific alert in TFS to notify him when someone added
files directly into Main, and I get a visit.
KP: "Did you add a couple of files directly into Main?"
Me:"Yes, I don't what happened, but the files never made it from my branch, to dev, to the review shelfset, and then to Main. I never got an error, but since
they were new files and adding a new feature, they never broke a build. Adding the files directly allowed the Web team to finish their project and deploy the
site this morning."
KP: "That is in direct violation of the standard. Didn't you read the documentation?"
Me: "Uh...well...um..yes, but that is an oddly specific case. I didn't think I hurt any.."
KP: "Ha ha...hurt? That's why we have standards. The document clearly states on page 18, paragraph 9, no files may ever be created in Main."
Me: "Really? I don't remember reading that."
<I navigate to the document, page 18, paragraph 9>
Me: "Um...no, it doesn't say that. The document only talks about merging process from a lower branch to Main."
KP: "Exactly. It is forbidden to create files directly in Main."
Me: "No, doesn't say that anywhere."
KP: "That is the spirit of the document. You violated the spirit of what we're trying to accomplish here."
Me: "You gotta be fracking kidding me."
KP grumbles something, goes back to his desk. Maybe a minute later he leaves the IS office, and the department manager leaves his office.
It was after 5:00PM, they never came back, so I headed home worried if I had a job in the morning.
I decided to come in a little early to snoop around, I knew where HR kept their terminated employee documents, and my badge wouldn't let me in the building.
Oh crap.
It was a shift change, so was able to walk in with the warehouse workers in another part of the building (many knew me, so nothing seemed that odd), and to my desk.
I tried to log into my computer...account locked. Oh crap..this was it. I'm done. I fill my computer backpack with as much personal items as I could, and started down the hallway when I meet one of our FS accountants.
L: "Hey, did your card let you in the building this morning? Mine didn't work. I had to walk around to the warehouse entrance and my computer account is locked. None of us can get into the system."
*whew!* is an understatement. Found out later the user account server crashed, which locked out everybody.
Never found out what kingpin and the dev manager left to talk about, but I at least still had a job.13 -
A lite story about how i was hired at 16 years old.
Me at 11. Modifying HTML templates to create a sign up page for a game. Me at 14. Created some worthless websites in the past (at a training), barely knowing the structure of HTML.
Me at 15. Made my first website for a customer (using WordPress for the first time, didn't know how to use it before). The website was selling apartments, it was looking very good and went on the first place on SEO. Got my first money (100E).
Me at 16. Made some other WordPress websites for other customers (one of them still haven't paid, the website was made way back in 2015), so i shut down the website and replaced it with a text saying "This website is currently down until the customers pays the developer".
Me still at 16. A friend of my mom sent my CV to multiple companies, to work as a intern to learn more, and one of them accepted me for a interview (a well known and one of the best company with 30~ people)
Went to the interview, asked me about what i realized, what i can do, about my knowledges in others languages etc (forgot to mention that i love the computers from young age, so i was very good in them, specially at the age of 11), so they were happy about it and asked called me for another interview with the boss. Went to it, the boss asked me some tricky questions, i answered them immediately, he was very surprised about my knowledge at that age and accepted me immediately. After working for 2 weeks, instead of hiring me as a intern for 4-6 months, they instead hired me as a normal person, as a front end developer, for an undefined date, making 250 E / Month (6 hours per day in summer)
Now, I'm in the 11 grade, working for them about 9 months, making 315 E / Month, working for 4 hours per day after school, the place is cool, my entire team (family) is very funny and very cool, and they asked me many times to help them with different problems they had and i fixed them immediately (they really didn't know some stuff which i knew). Worked on big projects and worked on some from scratch by myself and they were very happy about how it went.
TLDR: was talented in computers (software), I'm a fast learner, barely knew about making websites, hired as a front end developer at 16 yr.
Btw, I'm in love with DevRant, I'm feeling like home everytime i visit this community :').
P.S. Sorry for my bad English and the mistakes i made.
alert("Thanks for reading my first rant!");10 -
i was asked to start a new project, and another dev was brought onto the team shortly after. as soon as he joined, straight away he started an entirely new project and worked on it through the whole weekend, then came back on monday and just sort of pasted his files into/over the code i had already started and was working on, with no regard for folder structure or naming conventions or anything. his work was even split between 2 almost identically named namespaces (both of which were completely different to the existing project namespace) and his shit broke everything i did in the first place. the cherry on top is that none of his work was even functional, it was purely dummy/mockup web pages that weren't linked to any sort of backend.
when i asked him wtf he thought he was doing, he kept saying "i didnt touch your code" and refused to acknowledge that pasting a project over a different project can break stuff, then said it "wasn't his fault that i'm slow and not keeping up". and just kept saying vague bullshit about how i have to do it his way because he "has more experience"
he had no idea what my previous experience was, he had never asked and i had never told him, he just decided that he had more experience than me.
i dug through the shit and found out that he didn't just break my work, he had actually purposely deleted it when he realised it was getting in the way of his spaghetti. i showed him the commit and confronted him with it and all the cunt said was "well the good news is, you know the fix" and kept trying to dismiss me in the most disrespectful ways he could think of. i eventually snapped at him (long overdue at this point) and told him that any experienced developer would not commit code that didn't even fucking compile, especially when they're the one who broke it, and that he needs to grow up. of course he then complained that i was being unprofessional.
our manager decided we should go with fuckfaces """code""" without even looking at the work either of us had done, purely because fuckface is older than me and that's how the world works.
in the end i just told my manager that i refuse to work with the guy and he could either take him or me off the project (guess who he picked) or i quit.
after a few months of the guy failing to deliver any of even the basic functionality that was asked for, the entire project got scrapped, and the dude just quit once everyone realised he was literally just larping as an experienced dev but couldn't accomplish simple tasks.
i never received an apology from anybody involved.5 -
I am UI developer. The fucking domain model which we have in our project changes very frequently (once in a week (f**k)).
There is one person who is backend developer in this project. I call him TATTI because code he wrotes is "maha tatti".
Now real story,
Whene ever he makes any chnages to, so called, very complex domain model, he even doesn't inform me to reflect changes in UI. So whenever it goes on production, our boss abuse me for not updating UI.
Fucking tatti, just message me what should be changed or not and I really don't understand why they need changes in domain model every week.
F**g cto, decide domain structure first and then tell your team to start implementing it.
Other thing, when ever I ask tatti any doubt about any field is needed to display in UI or not because it is removed or added in domain model, he fucking chutiya starts explaining me whole project instead of just telling yes or no.
I don't care what your fucking backend does. Just tell me what is needed or not. And also he is not sure whether to keep that field or not even he had made that change.
He tells, "ha ye field chahie (after 5 seconds) , nahi wese to hum kahi use nahi kr rhe, ye sirf furture ke liye rkha tha use hta do (after 5 seconds), ek kam kro Mr xyz(another back end developer) se puch lo"
Fuck you maha tatti. And due to this i left that project and switched to other.19 -
"Mature codebase"
"Our entire team are senior devs"
"Almost everyone that worked on the project is still here and available, so nothing's lost! We can ask whatever we need to."
You would think this would mean the code was clean and easy to read, and you could ask the person who wrote it for help. But. no. It's kinda the opposite.
Here's an example:
I'm trying to write a mailer, and I have no freaking clue how to get it working. I talked with two of the more senior devs, and both assured me it was very straightforward, and then walked me through the quite complicated mailer structure and got lost. The first pretended not to, but glazed over a few holes in his tour, and said I could figure the rest out. The second one ended up admitting that he's totally unfamiliar with it -- his last commit on a mailer was from about 8 years ago -- and doesn't know how to get it working anymore.
So, I'm on my own.
I wrote a super basic mailer for debugging (no idea if/how it actually sends a mail, but I think I can construct one?). But whenever I call the mailer, it gets run twice? Somehow? Apparently I need to start a bunch of daemons to get that part of the system to work. Which is cool because they don't work fresh out of the repo. Got some further help, and now my ostensibly working code throws errors for an undefined var that i'm not even using, and to make it easier: without a backtrace. joy! There's so much inheritence and extending and including going on that it's going to take me hours to track this down. ugh.
I'm keeping my paystub in front of me for some desparately needed motivation.13 -
So I once had a job as a C# developer at a company that rewrote its legacy software in .Net after years of running VB3 code - the project had originally started in 1994 and ran on Windows 3.11.
As one of the only two guys in the team that actually knew VB I was eventually put in charge of bug for bug compatibility. Since our software did some financial estimations that were impossible to do without it (because they were not well defined), our clients didn't much care if the results were slightly wrong, as long as they were exactly compatible with the previous version - compatibility proved the results were correct.
This job mostly consisted of finding rounding errors caused by the old VB3 code, but that's not what I'm here to talk about today.
One day, after dealing with many smaller functions, I felt I was ready to finally tackle the most complicated function in our code. This was a beast of a function, called Calc, which was called from everywhere in the code, did a whole bunch of calculations, and returned a single number. It consisted of 500 or so lines of spaghetti.
This function had a very peculiar structure:
Function Calc(...)
...
If SomeVariable Then
...
If Not SomeVariable Then
...
(the most important bit of calculation happened here)
...
End If
...
End If
...
End Function
But for some reason it actually worked. For days I tried to find out what's going on, where the SomeVariable was being changed or how the nesting indentation was actually wrong and didn't match the source, but to no avail. Eventually, though, after many days, I did find the answer.
SomeVariable = 1
Somehow, the makers of VB3 though it would be a good idea for Not X to be calculated as (-1 - X). So if a variable was not a boolean (-1 for True, 0 for False), both X and Not X could be truthy, non-zero values.
And kids these days complain about JavaScript's handling of ==...7 -
I love how the Keybase Linux client installs itself straight into /keybase. Unix directory structure guidelines? Oh no, those don't apply to us. And after uninstalling the application they don't even remove the directory. Leaving dirt and not even having the courtesy to clean it up. Their engineers sure are one of a kind.
Also, remember that EFAIL case? I received an email from them at the time, stating some stuff that was about as consistent as their respect for Unix directory structure guidelines. Overtyping straight from said email here:
[…] and our filesystem all do not use PGP.
> whatever that means.
The only time you'll ever use PGP encryption in Keybase is when you're sitting there thinking "Oh, I really want to use legacy PGP encryption."
> Legacy encryption.. yeah right. Just as legacy as Vim is, isn't it?
You have PGP as part of your cryptographic identity.
> OH REALLY?! NO SHIT!!! I ACTIVELY USED 3 OS'S AND FAILED ON 2 BECAUSE OF YOUR SHITTY CLIENT, JUST TO UPLOAD MY FUCKING PUBLIC KEY!!!
You'll want to remove your PGP key from your Keybase identity.
> Hmm, yeah you might want to do so. Not because EFAIL or anything, just because Keybase clearly is a total failure on all levels.
Written quickly,
the Keybase team
> Well that's fucking clear. Could've taken some time to think before hitting "Send" though.
Don't get me wrong, I love the initiatives like this with all my heart, and greatly encourage secure messaging that leverages PGP. But when the implementation sucks this much, I start to ask myself questions about whether I should really trust this thing with my private conversations. Luckily I refrained from uploading my private key to their servers, otherwise I would've been really fucked. -
So recently we re-orged to a product vs engineering (yes, I meant vs, it’s contentious) organizational structure. One of the former dev leads got picked for product and went on this lovely ass-kissing spiel about how great this was in front of our new bosses. The next day(!) he was telling his old team what to do directly to his buddy the scrum master, who works for me and casually mentioned it. How am I supposed to run engineering and deliver if every P.O. can end run around the structure? I hate all this.
Also, if the new PE tells me one more time all my problems can be solved with SQS, I’m gonna explode. Not all dev problems are a nail to fix with an sns hammer. Asynch comms has its uses, it is not the *only solution.
I feel like I’m over reacting, and yet, I still feel rage…and happy to find an anonymous place to rant about it.
11 -
Interesting bug hunt!
Got called in because a co-team had a strange bug and couldn't make sense of it. After a compiler update, things had stopped working.
They had already hunted down the bug to something equivalent to the screenshot and put a breakpoint on the if-statement. The memory window showed the memory content, and it was indeed 42. However, the debugger would still jump over do_stuff(), both in single step and when setting a breakpoint on the function call. Very unusual, but the rest worked.
Looking closer, I noticed that the pointer's content was an odd number, but was supposed to be of type uint32_t *. So I dug out the controller's manual and looked up the instruction set what it would do with a 32 bit load from an unaligned address: the most braindead thing possible, it would just ignore the lowest two address bits. So the actual load happened from a different address, that's why the comparison failed.
I think the debugger fetched the memory content bytewise because that would work for any kind of data structure with only one code path, that's how it bypassed the alignment issue. Nice pitfall!
Investigating further why the pointer was off, it turned out that it pointed into an underlying array of type char. The offset into the array was correctly divisible by 4, but the beginning had no alignment, and a char array doesn't need one. I checked the mapfiles and indeed, the old compiler had put the array to a 4 byte boundary and the new one didn't.
Sure enough, after giving the array a 4 byte alignment directive, the code worked as intended.
8 -
So here's the deal. I am a team lead of a small company and I have a junior who is an idiot. I mean literally, idiot. We code in Python mostly and as Python is not structured as a default Java or C# project, the developer needs to be very careful so that the structure (or tiers) is maintained properly.
Now this girl, always messes up the tiers. Say one enhancement can be easily implemented in the UI tier, she would do the implementation in the core Db access layer, which may complete this particular enhancement, but breaks all the other functions (sometimes the whole project) connected to that particular module of the Db layer. She doesn't do any integration testing after updating the code, she only checks the current enhancement she is working on. When the enhancement goes to the testing phase, the testers find those broken functions and that results a re-work (most of the times done by me).
I have warned her. Even our manager has warned her. She always tells that she is working to improve herself. But I know, she isn't. She mostly chats with her boyfriends (yes, with an 's') when she has no work to do. She never upgrades herself or works on her skills.
I can easily report about her, and they will fire her without any warning (they did it already with a guy earlier). I don't want to do that again. What should I do? Any suggestions?
Oh, she has a great ego. She thinks that knows and understands everything. She will listen to your suggestions carefully, but will never follow those.11 -
Company: our team is like a family, everyone is valued and respected
Reality: We have a predefined power structure that will not be challenged no matter what. This is not a democracy, it's a dictatorship.4 -
Tl;DR; version:
French designer, Mexican PSD -> HTML converter, Indian VueJS developer, Spanish project manager and a Taiwanese back-end developer. Application was made like an tower of pizza from bullcrap held by boogers and constantly licked by an orangutang to keep it standing.
Longer version:
We had to take a "half-finished" project from one of our clients, received the code for full-stack project. The css/design was so unbearable that it mostly broke on anything that had higher than 720px wide screen, structure was full of tables/divs and no fucking flexbox/grid... Then the fun part - we saw it's conversion to vueJS - a single fucken App.vue file that had shitton of conditions for pages.... yea, not even multi-component/routed app, just conditions!!!! And then... A back-end (in which I mainly specify myself) - it was made by a developer that had to mainly use Java/C# as their daily driver while all being build on php and Laravel. 0 Fucken laravel functions used, 0 of models, logic and so on.... Most of the page was running on RAW sql queries. Names... Oh my god the function names....
`getTheUsersThatHasAtLeastOneSpaceAssignedToThemByGivenCompanyId(int $id)`
And it held an RAW sql that was coming from a model....
All of this was managed by a random spanish manager who couldn't really understand what our client needed and what he actually wanted so from 100% of the site, only 20% was correct in logic....
And yet, according to the whole "package" (team) - they did everything correctly, saw no issues and our client was ungrateful fucker that refused to pay 10x the amount that we asked in order to completely re-do the application....
Morale: Remote teams are great... As long as all of them can work remote in TEAM.5 -
Fun day, lots of relief and catharsis!
Client I was wanting to fire has apparently decided that the long term support contract I knew was bullshit from go will instead be handled by IBM India and it's my job to train them in the "application." Having worked with this team (the majority of whom have been out of university for less than a year), I can say categorically that the best of them can barely manage to copy and paste jQuery examples from SO, so best of fucking luck.
I said, "great!," since I'd been planning on quitting anyways. I even handed them an SOW stating I would train them for 2 days on the application's design and structure, and included a rider they dutifully signed that stated, "design and structure will cover what is needed to maintain the application long term in terms of its basic routing, layout and any 'pages' that we have written for this application. The client acknowledges that 3rd party (non-[us]) documentation is available for the technologies used, but not written by [us], effective support of those platforms will devolve to their respective vendors on expiry of the current support contract."
Contract in hand, and client being too dumb to realize that their severing of the maintenance agreement voids their support contract, I can safely share what's not contractually covered:
- ReactiveX
- Stream based programming
- Angular 9
- Any of the APIs
- Dotnet core
- Purescript
- Kafka
- Spark
- Scala
- Redis
- K8s
- Postgres
- Mongo
- RabbitMQ
- Cassandra
- Cake
- pretty much anything not in a commit
I'm a little giddy just thinking about the massive world of hurt they've created for themselves. Couldn't have happened to nicer assholes.3 -
I was working on a team with people with various employment statuses. Contractors, employees of the client, and me as a regular full time employee of the company that “owned” the contract. My HR manager gave us a presentation about our reporting structure. I had at least seven managers for different reasons across various projects.
I got a new position so needed to resign but I had no idea which managers were the ones I should notify. I looked at the org chart that the HR lady showed. I sent my resignation to five managers that would be affected by my leaving. Unknown to me my project manager was actually a contracting manager hired by the client. He let his employer, the client, know that the lead dev quit.
Apparently it destabilized the contract for my employer. If I hadn’t just issued resignation they would have fired me for telling a customer about a significant internal staffing change. They didn’t fire me because the optics would have been worse for them.2 -
Me, two weeks ago, adding yet another function onto an increasingly complex webservice: "hey uh this is getting pretty confusing, why don't we structure the request this other way so at least it makes more sense."
Manager: "just leave it as is, let the other team worry about how confusing it is. It's their problem now, I want you to move on to a new assignment."
Now- the other team is confused by the webservice and does the requests wrong, resulting in failures. Does it become my problem again when they report that my webservice isn't working?
Yes, it does.3 -
Not sure if this is necessarily a prank, but I was working on a team that was split in 2. We had a group of senior devs in one country, and junior devs in another (god only knows why, and yes I complained about this a lot).
The "lead" of the juniors was very stubborn and refused to adhere to the official standards, as his way was better.
I was working on an app with him, I was fed up with how badly the app was working, how hard it was to find files etc. So I waited for him to be off on holidays and pulled some extra hours to completely re-do the folder structure, rip out his persistence layer and a few other things.
When he came back he lost his shit and complained to the architect. The architect (also fed up with his shit) told him that we don't have the time to invest in reverting back everything, and loosing all the new features I added on top, especially since the app is now adhering to standards.
Never felt such satisfaction in my life. -
Team of developers suggest one of our legacy services is a nightmare to maintain, terrible to develop on top of and is fundamentally wrong in terms of data and application structure.
They are 100% correct and I fully endorse their request to redevelop it.
I'm less enthusiastic that their new version is much worse than the original...1 -
Running a fucking conda environment on windows (an update environment from the previous one that I normally use) gets to be a fucking pain in the fucking ass for no fucking reason.
First: Generate a new conda environment, for FUCKING SHITS AND GIGGLES, DO NOT SPECIFY THE PYTHON VERSION, just to see compatibility, this was an experiment, expected to fail.
Install tensorflow on said environment: It does not fucking work, not detecting cuda, the only requirement? To have the cuda dependencies installed, modified, and inside of the system path, check done, it works on 4 other fucking environments, so why not this one.
Still doesn't work, google around and found some thread on github (the errors) that has a way to fix it, do it that way, fucking magic, shit is fixed.
Very well, tensorflow is installed and detecting cuda, no biggie. HAD TO SWITCH TO PYHTHON 3,8 BECAUSE 3.9 WAS GIVING ISSUES FOR SOME UNKNOWN FUCKING REASON
Ok no problem, done.
Install jupyter lab, for which the first in all other 4 environments it works. Guess what a fuckload of errors upon executing the import of tensorflow. They go on a loop that does not fucking end.
The error: imPoRT eRrOr thE Dll waS noT loAdeD
Ok, fucking which one? who fucking knows.
I FUCKING HATE that the main language for this fucking bullshit is python. I guess the benefits of the repl, I do, but the python repl is fucking HORSESHIT compared to the one you get on: Lisp, Ruby and fucking even NODE in which error messages are still more fucking intelligent than those of fucking bullshit ass Python.
Personally? I am betting on Julia devising a smarter environment, it is a better language already, on a second note: If you are worried about A.I taking your job, don't, it requires a team of fucktards working around common basic system administration tasks to get this bullshit running in the first place.
My dream? Julia or Scala (fuck you) for a primary language in machine learning and AI, in which entire environments, with aaaaaaaaaall of the required dlls and dependencies can be downloaded and installed upon can just fucking run. A single directory structure in which shit just fucking works (reason why I like live environments like Smalltalk, but fuck you on that too) and just run your projects from there, without setting a bunch of bullshit from environment variables, cuda dlls installation phases and what not. Something that JUST FUCKING WORKS.
I.....fucking.....HATE the level of system administration required to run fucking anything nowadays, the reason why we had to create shit like devops jobs, for the sad fuckers that have to figure out environment configurations on a box just to run software.
Fuck me man development turned to shit, this is why go mod, node npm, php composer strict folder structure pipelines were created. Bitch all you want about npm, but if I can create a node_modules setting with all of the required dlls to run a project, even if this bitch weights 2.5GB for a project structure you bet your fucking ass that I would.
"YOU JUST DON'T KNOW WHAT YOU ARE DOING" YES I FUCKING DO and I will get this bullshit fixed, I will get it running just like I did the other 4 environments that I fucking use, for different versions of cuda and python and the dependency circle jerk BULLSHIT that I have to manage. But this "follow the guide and it will work, except when it does not and you are looking into obscure github errors" bullshit just takes away from valuable project time when you have a small dedicated group of developers and no sys admin or devops mastermind to resort to.
I have successfully deployed:
Java
Golang
Clojure
Python
Node
PHP
VB/C# .NET
C++
Rails
Django
Projects, and every single fucking time (save for .net, that shit just fucking works on a dedicated windows IIS server) the shit will not work with x..nT reasons. It fucking obliterates me how fucking annoying this bullshit is. And the reason why the ENTIRE FUCKING FIELD of computer science and software engineering is so fucking flawed.
But we can't all just run to simple windows bs in which we have documentation for everything. We have to spend countless hours on fucking Linux figuring shit out (fuck you also, I have been using Linux since I was 18, I am 30 now) for which graphical drivers for machine learning, cuda and whatTheFuckNot require all sorts of sys admin gymnasts to be used.
Y'all fucked up a long time ago. Smalltalk provided an all in one, easily rollable back to previous images, easily administered interfaces for this fileFuckery bullshit, and even though the JVM and the .NET environments did their best to hold shit down, and even though we had npm packages pulling the universe inside, or gomod compiling shit into one place NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO we had to do whatever the fuck we wanted to feel l337 and wanted.
Fuck all of you, fuck this field, fuck setting boxes for ML/AI and fuck every single OS in existence2 -
At work, my closest relation is with the DBA. Dude is a genius when it comes to proper database management as well as having a very high level of understanding concerning server administration, how he got that good at that I have no clue, he just says that he likes to fuck around with servers, Linux in particular although he also knows a lot about Windows servers.
Thing is, the dude used to work as a dev way back when VB pre VB.NET was all the rage and has been generating different small tools for his team of analysts(I used to be a part of his team) to use with only him maintaining them. He mentioned how he did not like how Microsoft just said fk u to VB6 developers, but that he was happy as long as he could use VB. He relearned how to do most of the GUI stuff he was used to do with VB6 into VB.NEt and all was good with the world. I have seen his code, proper OOP practices and architectural decisions, etc etc. Nothing to complain about his code, seems easy enough to extend, properly documented as well.
Then he got with me in order to figure out how to breach the gap between building GUI applications into web form, so that we could just host those apps in one of our servers and his users go from there, boy was he not prepared to see the amount of fuckery that we do in the web development world. Last time my dude touched web development there was still Classic ASP with JScript and VBScript(we actually had the same employer at one point in the past in which I had to deal with said technology, not bad, but definitely not something I recommend for the current state of web development) and decided that the closest thing to what he was used was either PHP(which he did not enjoy, no problem with that really, he just didn't click with the language) and WebForms using VB.NET, which he also did not like on account of them basically being on support mode since Microsoft is really pushing for people to adopt dotnet core.
After came ASP.NET with MVC, now, he did like it, but still had that lil bug in his head that told him that sticking to core was probably a better idea since he was just starting, why not start with the newest and greatest? Then in hit(both of us actually) that to this day Microsoft still not has command line templates for building web applications in .net core using VB.NET. I thought it was weird, so I decided to look into. Turns out, that without using Razor, you can actually build Web APIs with VB.NET just fine if you just convert a C# template into VB.NET, the process was...err....tricky, and not something we would want to do for other projects, with that in we decided to look into Microsoft's reasons to not have VB.NET. We discovered how Microsoft is not keeping the same language features between both languages, having crown C# as the language of choice for everything Microsoft, to this point, it seems that Microsoft was much more focused in developing features for the excellent F# way more than it ever had for VB.NET at this point and that it was not a major strategy for them to adapt most of the .net core functionality inside of VB, we found articles when the very same Microsoft team stated of how they will be slowly adding the required support for VB and that on version 5 we would definitely have proper support for VB.NET ALTHOUGH they will not be adding any new development into the language.
Past experience with Microsoft seems to point at them getting more and more ready to completely drop the language, it does not matter how many people use it, they would still kill it :P I personally would rather keep it, or open source the language's features so that people can keep adding support to it(if they can of course) because of its historical significance rather than them just completely dropping the language. I prefer using C#, and most of my .net core applications use C#, its very similar to Java on a lot of things(although very much different in others) and I am fine with it being the main language. I just think that it sucks to leave such a large developer pool in the shadows with their preferred tool of choice and force them to use something else just like that.
My boy is currently looking at how I developed a sample api with validation, user management, mediatR and a custom project structure as well as a client side application using React and typescript swappable with another one built using Angular(i wanted to test the differences to see which one I prefer, React with Typescript is beautiful, would not want to use it without it) and he is hating every minute of it on account of how complex frontend development has become :V
Just wanted to vent a little about a non bothersome situation.6 -
So the development team are being sent very angry emails from a customer.
Reason being that we can't send a release to them because we are waiting for the signing of a document our managment has known about for five months...
While mangement just keeps passing around responsibility and just throws poop. I'm seriously starting to question why middle managers are allowed to exist in a company structure.
I'm two days away from personally calling the CEO then someone gets fired. It's me or one of these middle manager clowns.1 -
Years ago, we were setting up an architecture where we fetch certain data as-is and throw it in CosmosDb. Then we run a daily background job to aggregate and store it as structured data.
The problem is the volume. The calculation step is so intense that it will bring down the host machine, and the insert step will bring down the database in a manner where it takes 30 min or more to become accessible again.
Accommodating for this would need a fundamental change in our setup. Maybe rewriting the queries, data structure, containerizing it for auto scaling, whatever. Back then, this wasn't on the table due to time constraints and, nobody wanted to be the person to open that Pandora's box of turning things upside down when it "basically works".
So the hotfix was to do a 1 second threadsleep for every iteration where needed. It makes the job take upwards of 12 hours where - if the system could endure it - it would normally take a couple minutes.
The solution has grown around this behavior ever since, making it even harder to properly fix now. Whenever there is a new team member there is this ritual of explaining this behavior to them, then discussing solutions until they realize how big of a change it would be, and concluding that it needs to be done, but...
not right now.2 -
1 on 1 meetings with manager throughout the year
Manager: You're doing really well! Keep it up!
Me: Cool, thanks!
1 on 1 meetings with my manager a month or two ago
Manager: You're still killing it! I'd really like to see you challenge the status quo since you're the newest on the team. I think we could benefit from fresh perspective.
Me: Ok, cool, I'm starting to feel pretty comfortable so I'll do that.
Me: *starts challenging process, team structure, and company norms in meetings*
Manager: *confused pikachu face*
1 on 1 meetings now, right before performance management
Manager: I really need you to start picking up more important work. You're not performing well relative to others at your level, and I won't be able to represent you well during performance management.
Me: 😐10 -
Got demoted, got a pay raise and don't know how to feel about it. A story of how not to drink with your coworkers?
The story begins roughly 8-9 months ago. Me and this coworker (let's name him Tim) go out drinking after a Friday party at the office. We do some rounds and we're both smashed. Tim starts telling me how he's happy with life and that he's earning a nice salary right now. He told me his salary. It was the same as mine. Which was weird - He codes in a more hardcore languages than me and has almost double the time in the company as me. I think after some more drinking I've confessed that I make the same as him. This part is sort of a blur (drinking). I've gotten a pay raise(+30-40%) roughly a few months ago from that point backwards because another company gave be a much higher offer. The company I work for matched to keep me. Anyway, 3 months or so after the drinking,Tim is promoted to team lead, and me and a few other people are added to his team. Conversation slips and he told me his new salary - quite a bit more than me.I think it's safe to assume what happened.
The problem with that is that I was a team lead of 1 person (me) at that time, and I was managing my own time and my own tasks, was working with people individually. I was part of the weekly meetings with the CEO and other team leads. Being stripped of this title wasn't a problem at the beginning, as people still contacted me because of their problems, suggestions, whatever. A few more months pass (to now) and less and less people are contacting me - instead they are talking with Tim, and are asking of his opinion on tasks I should do, where he has no experience and roughly 0 lines in the programming language I code in. This is starting to piss me off.
There are a couple other things to take into consideration as well - The company is hiring a lot of people right now. The whole structure for team leads changed a bit, more team leads then ever right now and new roles added pretty fast.
I've gotten a pay raise a few weeks ago though(10%~).
I'm not sure on how to react to this. Should I comply and just keep on working on these tasks? Or should I still keep contacting people directly on their requests and talk to them directly, take credit for the projects I complete publicly and the stuff I do as I was previously doing? Part of me wants to reroute all of the stupids questions people have to Tim, as he is now responsible for these tasks and get this weight off my shoulders.
I'm starting to shift to learning a new programming language and thinking of jumping ship. Thoughts?6 -
It began when I was tasked with creating a better and more engaging experience for our new Facebook page. This was in Facebook's early days, so there were not really any "best practices". We were making it up as we went along. I decided one way would be to game-ify things, since gaming, at the time, was a Big Deal on Facebook and people were starting to use it to build customer funnels.
Grasping for low-hanging fruit, I decided a Tetris variant around our topic would be fun. I had to hire a dev because at the time I was a static HTML web developer just getting into social media management. I knew nothing about game development or how to use Facebook's API for such things.
Long story short, we got about $10,000 (FB app devs came at a premium then) into the project when I came across a very recent article about the history of Tetris games. It said that even though Tetris had once been considered for all intents to be public domain due to it being created by a Russian coder during the Cold War, it had just been acquired by an IP protection entity that was charging royalties for any variant of Tetris created from a specific date onward and paying the original developer. So, even though I thought I had been thorough in my initial permissions checking, it turned out we were gonna be in deep doo-doo with licensing fees and restrictions if we released this game to the public.
I had to call my boss and admit my error. She was FURIOUS and really gave me an ass-chewing over it. I then had to call the marketing person whose budget I'd been slaving away at wasting. She was a bit more forgiving (her budget was in the millions). Then I had to call the corporate legal department and explain what was going on. They told me to immediately pay any outstanding hours, then fire the dev but not before getting him to send me all code and assets, deleting his copy, and then, upon my receipt of those assets, deleting MY copy so that nothing of it ever existed. And I was supposed to say _nothing_ to the dev about why he was being let go, so that there would be no "trail" leading back to this fiasco. (The dev hounded me for weeks asking what he'd done wrong. It killed me that I was bound and gagged by corporate legal and couldn't tell him.)
I was in so much trouble. I was literally in tears over it. I'd never wasted that much money in my life. That incident pretty much sealed my fate as far as any trust my bosses ever put in me again (not much at all). I was a bit of a pariah in a lot of ways for the next 5 years whereas I had come onto the team as a young social media rockstar at first.
After that, and a couple of other bad scenarios that were less my fault and more due to a completely dysfunctional management and reporting structure, they eventually "transferred" me to another team. Which was really just a way of getting rid of me by sending me to a department that was already starting to outsource overseas and lay people off. It was less messy that way. I was in the first set of layoffs.
Since then, I've had a BIG fear of EVER joining a large corporation EVER again. I prefer to work for small businesses now, even if I get paid less. Much less stressful from an office politics and impact of mistakes standpoint.3 -
TL;DR:
JuniorDev ignores every advice, writes bad code and complains about other people not working because he does not see their result because he looks at the wrong places.
Okay, so I am really fed up right now.
We have this Junior Dev, who is now with us for circa 8 months, so ca. a year less than me. Our first job for both of us.
He is mostly doing stuff nobody in the team cares about because he is doing his own projects.
But now there's a project where we need to work with him. He got a small part and did implement that. Then parts of the main project got changed and he included stuff which was not there anymore. It was like this for weeks until someone needed to tell him to fix it.
His code is a huge mess (confirmed by senior dev and all the other people working at the project).
Another colleague and me mostly did (mostly) pair programming the past 1-2 weeks because we were fixing and improving (adding functionality) libraries which we are going to use in the project. Furthermore we discussed the overall structure and each of us built some proof-of-concept applications to check if some techniques would work like we planned it.
So in short: We did a lot of preparation to have the project cleaner and faster done in the next few weeks/months and to have our code base updated for the future. Plus there were a few things about technical problems which we need to solve which was already done in that time.
Side note: All of this was done not in the repository of the main project but of side projects, test projects and libraries.
Now it seems that this idiot complained at another coworker (in our team but another project) that we were sitting there for 2 weeks, just talking and that we made no progress in the project as we did not really commit much to the repository.
Side note: My colleague and me are talking in another language when working together and nobody else joins, as we have the same mother tongue, but we switch to the team language as soon as somebody joins, so that other colleague did not even know what we were talking about the whole day.
So, we are nearly the same level experience wise (the other colleague I work with has just one year more professional experience than me) and his work is confirmed to be a mess, ugly and totally bad structured, also not documented. Whereas our code is, at least most of it, there is always space for improvement, clean, readable and re-useable (confirmed by senior and other team members as well).
And this idiot who could implement his (far smaller part) so fast because he does not care about structure or any style convention, pattern or anything complains about us not doing our work.
I just hope, that after this project, I don't have to work with him again soon.
He is also one of those people who think that they know everything because he studied computer science (as everybody in the team, by the way). So he listens to nothing anybody explains to him, not even the senior. You have to explain everything multiple times (which is fine in general) and at some points he just says that he understood, although you can clearly see that he didn't really understand but just wants to go on coding his stuff.
So you explain him stuff and also explain why something does not work or is not a good thing, he just says "yes, okay", changes something completely different and moves on like he used to.
How do you cope with something like this?6 -
tl : "hey dotenv, we have a presentation with VP tomorrow, do you want to present any of your achievements in product?"
me: "umm, what achievements ?"
tl : "you know, something that you added in app which made a good impact to various metrics like DAU, MAU, less bad reviews etc"
me: "umm... i coded the tasks and features created by you folks. they got shipped at some point of your liking, and are now being tracked by you for its success failure. So i am not sure what to take credit for"
TL: "no, no.. i mean like any bugs or issues that you fixed outside of your daily jira tasks which you tracked to be a sucess"
me: "well as far as tracking is concerned, then neither i know how to track them nor i did. but yea, i identified a bug where an outdated payload was generating bad request and giving a silent failure instead of success which recently got shipped. maybe its helping users get actual response instead of "we will get back to you in some time" , so this might get considered?
TL : "oh that? that we have already added as one of the team's achievements (=PM+TL's achievement) and have tracked it to be a succes"
me : "what th- okay. then how about that api failure which was identified by AVP as "something is not right" in which the api was intermittently taking a long time to respond. he tagged me and i set up logs to identify which type of users got that issue and the actual cause of that api failure. that was definitely a good fox for app as we ended up with good reviews on playstore for our new release?"
TL : "oh that? how can you take credit for that fix? it was identified by AVP, you just added similar logs that we were using for tracking errors and implemented a fix when it came to you as a sprint task? its a team achievement"
me : "but you guys didn't identified the cause through your logs!? my log was more granular. and even if that's the case, we aren't allowed to pick any task just as is, without getting it added to sprint , right?"
TL : "nah, that was a team win"
*6 months later, during appraisal time"
TL : "Hey dotenv, you haven't displayed any leadership skills and haven't gone put of the box to improve the product. Here's your peanut appraisal 🗑️"
me : 🥲🔫🤯🪦
------------
fuck this stupid neaurocrst structure. i hate being a selfish prick than a team player, but either give credits as well as punishment to the team or gove credits as well as punishment to the single person. but wtf is thos culture of giving reward to team and punishment to individual? fckin communists
------ -
dev, ~boring
This is either a shower thought or a sober weed thought, not really sure which, but I've given some serious consideration to "team composition" and "working condition" as a facet of employment, particularly in regard to how they translate into hiring decisions and team composition.
I've put together a number of teams over the years, and in almost every case I've had to abide by an assemblage of pre-defined contexts that dictated the terms of the team working arrangement:
1. a team structure dictated to me
2. a working temporality scheme dictated to me
3. a geographic region in which I was allowed to hire
4. a headcount, position tuple I was required to abide by
I've come to regard these structures as weaknesses. It's a bit like the project management triangle in which you choose 1-2 from a list of inadequate options. Sometimes this is grounded in business reality, but more often than not it's because the people surrounding the decisions thrive on risk mitigation frameworks that become trickle down failure as they impose themselves on all aspects of the business regardless of compatibility.
At the moment, I'm in another startup that I have significantly more control over and again have found my partners discussing the imposition of structure and framework around how, where, why, who and what work people do before contact with any action. My mind is screaming at me to pull the cord, as much as I hate the expression. This stems from a single thought:
"Hierarchy and structure should arise from an understanding of a problem domain"
As engineers we develop processes based on logic; it's our job, it's what we do. Logic operates on data derived from from experiments, so in the absence of the real we perform thought experiments that attempt to reveal some fundamental fact we can use to make a determination.
In this instance we can ask ourselves the question, "what works?" The question can have a number contexts: people, effort required, time, pay, need, skills, regulation, schedule. These things in isolation all have a relative importance ( a weight ), and they can relatively expose limits of mutual exclusivity (pay > budget, skills < need, schedule < (people * time/effort)). The pre-imposed frameworks in that light are just generic attempts to abstract away those concerns based on pre-existing knowledge. There's a chance they're fine, and just generally misunderstood or misapplied; there's also a chance they're insufficient in the face of change.
Fictional entities like the "A Team," comprise a group of humans whose skills are mutually compatible, and achieve synergy by random chance. Since real life doesn't work on movie/comic book logic, it's easy to dismiss the seed of possibility there, that an organic structure can naturally evolve to function beyond its basic parts due to a natural compatibility that wasn't necessarily statistically quantifiable (par-entropic).
I'm definitely not proposing that, nor do I subscribe to the 10x ninja founders are ideal theory. Moreso, this line of reasoning leads me to the thought that team composition can be grown organically based on an acceptance of a few observed truths about shipping products:
1. demand is constant
2. skills can either be bought or developed
3. the requirement for skills grows linearly
4. hierarchy limits the potential for flexibility
5. a team's technically proficiency over time should lead to a non-linear relationship relationship between headcount and growth
Given that, I can devise a heuristic, organic framework for growing a team:
- Don't impose reporting structure before it has value (you don't have to flatten a hierarchy that doesn't exist)
- crush silos before they arise
- Identify needed skills based on objectives
- base salary projections on need, not available capital
- Hire to fill skills gap, be open to training since you have to pay for it either way
- Timelines should always account for skills gap and training efforts
- Assume churn will happen based on team dynamics
- Where someone is doesn't matter so long as it's legal. Time zones are only a problem if you make them one.
- Understand that the needs of a team are relative to a given project, so cookie cutter team composition and project management won't work in software
- Accept that failure is always a risk
- operate with the assumption that teams that are skilled, empowered and motivated are more likely to succeed.
- Culture fit is a per team thing, if the team hates each other they won't work well no matter how much time and money you throw at it
Last thing isn't derived from the train of thought, just things I feel are true:
- Training and headcount is an investment that grows linearly over time, but can have exponential value. Retain people, not services.
- "you build it, you run it" will result in happier customers, faster pivoting. Don't adopt an application maintenance strategy
/rant2 -
!rant
Need some opinions. Joined a new company recently (yippee!!!). Just getting to grips with everything at the minute. I'm working on mobile and I will be setting up a new team to take over a project from a remote team. Looking at their iOS and Android code and they are using RxSwift and RxJava in them.
Don't know a whole lot about the Android space yet, but on iOS I did look into Reactive Cocoa at one point, and really didn't like it. Does anyone here use Rx, or have an opinion about them, good or bad? I can learn them myself, i'm not looking for help with that, i'm more interested in opinions on the tools themselves.
My initial view (with a lack of experience in the area):
- I'm not a huge fan of frameworks like this that attempt to change the entire flow or structure of a language / platform. I like using third party libraries, but to me, its excessive to include something like this rather than just learning the in's / out's of the platform. I think the reactive approach has its use cases and i'm not knocking the it all together. I just feel like this is a little bit of forcing a square peg into a round hole. Swift wasn't designed to work like that and a big layer will need to be added in, in order to change it. I would want to see tremendous gains in order to justify it, and frankly I don't see it compared to other approaches.
- I do like the MVVM approach included with it, but i've easily managed to do similar with a handful of protocols that didn't require a new architecture and approach.
- Not sure if this is an RxSwift thing, or just how its implemented here. But all ViewControllers need to be created by using a coordinator first. This really bugs me because it means changing everything again. When I first opened this app, login was being skipped, trying to add it back in by selecting the default storyboard gave me "unwrapping a nil optional" errors, which took a little while to figure out what was going on. This, to me, again is changing too much in the platform that even the basic launching of a screen now needs to be changed. It will be confusing while trying to build a new team who may or may not know the tech.
- I'm concerned about hiring new staff and having to make sure that they know this, can learn it or are even happy to do so.
- I'm concerned about having a decrease in the community size to debug issues. Had horrible experiences with this in the past with hybrid tech.
- I'm concerned with bugs being introduced or patterns being changed in the tool itself. Because it changes and touches everything, it will be a nightmare to rip it out or use something else and we'll be stuck with the issue. This seems to have happened with ReactiveCocoa where they made a change to their approach that seems to have caused a divide in the community, with people splitting off into other tech.
- In this app we have base Swift, with RxSwift and RxCocoa on top, with AlamoFire on top of that, with Moya on that and RxMoya on top again. This to me is too much when only looking at basic screens and networking. I would be concerned that moving to something more complex that we might end up with a tonne of dependencies.
- There seems to be issues with the server (nothing to do with RxSwift) but the errors seem to be getting caught by RxSwift and turned into very vague and difficult to debug console logs. "RxSwift.RxError error 4" is not great. Now again this could be a "way its being used" issue as oppose to an issue with RxSwift itself. But again were back to a big middle layer sitting between me and what I want to access. I've already had issues with login seeming to have 2 states, success or wrong password, meaning its not telling the user whats actually wrong. Now i'm not sure if this is bad dev or bad tools, but I get a sense RxSwift is contributing to it in some fashion, at least in this specific use of it.
I'll leave it there for now, any opinions or advice would be appreciated.question functional programming reactivex java library reactive ios functional swift android rxswift rxjava18 -
I never knew that I was a good mentor at SQL , specially at PL/SQL.
I gave a task to a new member of my team, to fill 5 tables with data from other 15 tables.
I informed him well about data table info and structure. He spended about 3 days to create 25 different queries in order to fill 5 tables.
After I saw the 25 queries, I told him, that he could do it with 1 main query and 5 insert statements.
So I spended 1 hour of training, in order to build,run and explain how to create the best sql statements for this task.
(First 5 minutes)
It was looking so simple at the beginning from starting with 1 simple join, after some steps he lost my actions.
(Rest 55 minutes)
I was explained the sql statements I 've created and how Oracle works.
Now , every time he meets me, he feels so thankful for learning him all those Oracle sql tips in 1 hour.
Now he is working only with big data and he loves the sql.1 -
Proudest bug squash? Probably the time I fixed a few bugs by accident when I was just trying to clean up an ex-coworker's messy code.
So I used to work with a guy who was not a very good programmer. It's hard to explain exactly why other than to say that he never really grew out of the college mindset. He never really learned the importance of critical thinking and problem-solving. He did everything "by the book" to a point where if he ran into an issue that had no textbook solution, he would spin his wheels for weeks while constantly lying to us about his progress until one of us would finally notice and take the problem off his plate. His code was technically functional, but still very bad.
Quick Background: Our team is responsible for deploying and maintaining cloud resources in AWS and Azure. We do this with Terraform, a domain-specific language that lets us define all our infrastructure as code and automate everything.
After he left, I took on the work to modify some of the Terraform code he'd written. In the process, I discovered what I like to call "The Übervariable", a map of at least 80 items, many of them completely unrelated to each other, which were all referenced exactly once in his code and never modified. Basically it was a dynamic collection variable holding 80+ constants. Some of these constants were only used in mathematical expressions with multiple other constants from the same data structure, resulting in a new value that would also be a constant. Some of the constants were identical values that could never possibly differ, but were still stored as separate values in the map.
After I made the modification I was supposed to make, I decided I was so bothered by his shitty code that I would spend some extra time fixing and optimizing it. The end result: one week of work, 800 lines of code deleted, 30 lines added, and a massive increase in efficiency. I deleted the Übervariable and hardcoded most of the values it contained since there was no possible reason for any of them to change in the future. In the process, I accidentally fixed three bugs that had been printing ominous-sounding warnings to the console whenever the code was run.
I have a lot of stories about this guy. I should post some more of them eventually.2 -
How surprising is it when a person designs code in a very clear and impressive structure and just when you think about asking them for guidance, they reveal themselves to be complete turds?
I've been working with this person's "infra" code, at work. I've rewritten some classes to use their infra. I had a vague idea of how the classes work. I had no idea of how their code works. Expectedly, there were some issues but now only minor ones remain.
I asked them for a description of what I'm supposed to do for the few bugs I'm facing. They replied in such a condescending tone, it made me want to punch them through the screen.
Almost a month later, we're still going back and forth with emails. I've been swallowing it and responding calmly. I never got direct answers. Always deflections to irrelevant things or veiled insults. I took it because they did correct one silly error of mine that actually my code reviewer should've caught. (What's worse is that it got introduced by me just before my review and commit.)
But does that give them the right to insult me in front of the whole team including my project manager? I got a reply today from them with everyone of note in cc implying very clearly that I have not done any work. They highlighted a line from my code with some todo tag (that was not meant for them) to make their invalid point. A line that's unrelated to the bug I asked them about. This is after I proved them wrong when they insisted that I had done something wrong about a feature related to the bug.
If you don't understand what I asked for fucking ask me to ask again. But do not fucking try establish yourself on higher ground by pointing out irrelevant things in my code.
I was shocked and enraged that they'd do such a thing. I double checked everything like a mad man. Despite knowing that the fix has to come from them, I was instantly transported to the noob stage, grasping at straws. I wanted to send a really scathing reply right away but my manager asked me to wait.
My mind is now a see saw shifting between a panicked noob questioning every fucking thing I ever did in my nada life and a hungry enraged monster looking to maul that fucking shithead for burning me like that.1 -
Working on an Android app for a client who has a dev team that is developing a web app in with ember js / rails. These folks are "in charge" of the endpoints our app needs to function. Now as a native developer, I'm not a hater of a web apps way of doing things but with this particular app their dev teams seems to think that all programming languages can parse json as dynamically as javascript...
Exhibit A:
- Sample Endpoint Documentation
* GetImportantInfo
* Params: $id // id of info to get details of
* Endpoint: get-info/$id
* Method: GET
* Entity Return {SampleInfoModel}
- Example API calls in desktop REST client
* get-info/1
- response
{
"a" : 0,
"b" : false,
"c" : null
}
* get-info/2
- response
{
"a" : [null, "random date stamp"],
"b" : 3.14,
"c" : {
"z" : false,
"y" : 0.5
}
}
* get-info/3
- response
{
"a" : "false" // yes as a string
"b" : "yellow"
"c" : 1.75
}
Look, I get that js and ruby have dynamic types and a string can become a float can become a Boolean can become a cat can become an anvil. But that mess is very difficult to parse and make sense of in a stack that relies on static types.
After writing a million switch statements with cases like "is Float" or "is String" from kotlin's Any type // alias for java.Object, I throw my hands in the air and tell my boss we need to get on the phone with these folks. He agrees and we schedules a day that their main developer can come to our shop to "show us the ropes".
So the day comes and this guy shows up with his mac book pro and skinny jeans. We begin showing him the different data types coming back and explain how its bad for performance and can lead to bugs in the future if the model structure changes between different call params. He matter of factually has an epiphany and exclaims "OHHHHHH! I got you covered dawg!" and begins click clacking on his laptop to make sense of it all. We decide not to disturb him any more so he can keep working.
3 hours goes by...
He burst out of our conference room shouting "I am the greatest coder in the world! There's no problem I can't solve! Test it now!"
Weary, we begin testing the endpoints in our REST clients....
His magic fix, every single response is a quoted string of json:
example:
- old response
{
"foo" : "bar"
}
- new "improved" response
"{ \"foo\" : \"bar\" }"
smh....8 -
MENTORS - MY STORY (Part II)
The next mentor was my first boss at my previous job:
2.- Manager EA
So, I got new in the job, I had a previous experience in other company, but it was no good. I learned a lot about code, but almost nothing about the industry (project management, how to handle requirements, etc.) So in this new job all I knew was the code and the structure of the enterprise system they were using (which is why the hired me).
EA was BRILLIANT. This guy was the Manager at the IT department (Software Development, Technology and IT Support) and he was all over everything, not missing a beat on what was going on and the best part? He was not annoying, he knew how to handle teams, times, estimations, resources.
Did the team mess something up? He was the first in line taking the bullets.
Was the team being sieged by users? He was there attending them to avoid us being disturbed.
Did the team accomplished something good? He was behind, taking no credit and letting us be the stars.
If leadership was a sport this guy was Michael Jordan + Ronaldo Nazario, all in one.
He knew all the technical details of our systems, and our platforms (Server Architectures both software and hardware, network topology, languages being used, etc, etc). So I was SHOCKED when I learned he had no formation in IT or Computer Science. He was an economist, and walked his way up in the company, department from department until he got the job as IT Manager.
From that I learned that if you wanna do things right, all you need is the will of improving yourself and enough effort.
One of the first lessons he taught me: "Do your work in a way that you can go on holidays without anyone having to call you on the phone."
And for me those are words to live by. Up to that point I thought that if people needed to call me or needed me, I was important, and that lessons made me see I was completely wrong.
He also thought me this, which became my mantra ever since:
LEARN, TEACH AND DELEGATE.
Thank you master EA for your knowledge.
PART I: https://devrant.com/rants/1483428/...1 -
No table and monitor, and having to work ALL THE TIME. Our team structure changed recently, and a coworker with 2 years of experience is my lead. He wakes up at 11-12 in the morning, starts working by around 2, takes enough breaks and sleeps at like 5 AM. He assigns tasks late in the evening and night. Expects people to finish it staying up late, because if he can, why can't we. Most of the time, it's like, hey, just push a little and finish it tonight, we have other things to do tomorrow.
And team mates who can NOT work without help from other people and text and call you every hour.4 -
One of our projects migrated their file-repository to another one during a major release.
Instead of giving this task to an experienced programmer, they gave it to the head of the respective dev department due to the usual release panic.
Soo.... He wrote the migration tool. It was executed during the release. Everything seemed fine so far.
A few days later. Someone from the above project came to my team due to some "strange behaviour on the production database".
They reported that they couldn't download some of the user's documents due to unknown reasons.
After quickly analyzing the current state of the new file-repository, we concluded that the affected documents did not exist in the new repository.
Then we took a look at the so called migration tool...
Well.. After nearly 30 min. we knew the root cause for that.
They only migrated the first 4 levels of the folder structure. Due to the assumption that "we don't use deeper nesting". (Facepalm)
As the head of their department wrote it, no one seems to questioned it either. Nor did they made a code review and ended up with a tool with hard coded urls to the production db, no version control, no build tool, no ci, nothing. Breaking nearly every possible company standard.
However.. That's not it. When analyzing their migration tool we noticed another even more dangerous thing.
They mixed up the id generation of the migrated documents resulting in a random assignment between customers and documents. Which is quite bad as this contains sensitive information. E.g. passports
They offered us quite a nice amount of money to fix this until EOB. We declinded as it was simply not possible in that time, but agreed to support them with the new tool.
After some time I heard that they migrated production again. And they fucked it up again. They never talked to us after we offered them support...
The third and final migration was written by us. Not only migrated it correctly. It was also way faster. By factor 20.
In the end we haven't gained anything from this rushed project as the penalties were piling up due to this fucked up migration.
After all this time I'm not sure who is to blame. In my opinion, partly all of them.
Head of department who can't and shouldn't code.
Seniors who didn't review the code and didn't ask for help.
Release mgmt who put way too much pressure on the devs. -
tl;dr; A co-worker and I had an disagreement on our package structure. They went straight to our team lead instead of trying to solve this in our team and by that letting me do my job.
Do I overreact by assuming that this was malicious?
A co-worker asked me to do their code review today. There was nothing really wrong there, mainly something a bad generator created.
However at one point we had a disagreement about the naming structure of the packages. We both agreed to disagree, so I thought we could bring that up in the next daily, as it's something the team should agree on.
Shortly after that, they told me on Slack, that they relayed the matter to our team lead to get their opinion. Wtf.
My role in the team is that of a technical lead. Even though I like to discuss such topics in the team and not straight up dictate decisions.
By going directly to our team leader, they basically circumvented the whole team. This really rubs me wrong the way.
Maybe I'm just overreacting?5 -
We are all about structures, clean code and many other things that make our life easier, right?
Well... It's not all white and black...
As talked many times, projects can be rushed... Client budgets can be low at the start and only then grow...
Let me take an example:
Client X needs a tool that helps his team perform jobs faster. They have a $500 budget. So... Testing, clean architecture and so on - are not really a viable option. Instead, you just make it work and perform that task as needed. So the code has minimal patterns, minimal code structure, a lot of repetitive parts and so on.
Now... Imagine that 3 months pass by without any notice and clients are ultra happy with the product. They want more things to be automated. They contact developers and ask for more things. This time they have a bigger budget but short timeframe.
So once again, you ignore all tests, structure and just make it work. No matter what. The client is happy again.
A year passes and the client realizes that their workflow changed. The app needs total refactoring. The previous developer has no time for adjustments at this point and hires a new company. They look at the code and rants spill out of their mouth along with suicidal thoughts.
So... What would you do? Would you rant about "messy project" or just fix it? Especially since people now have a bigger budget and timeframe to adapt to changes.
Would you be pissed on such a project?
Would you flame on previous devs?
Would you blame anyone for the mess?
Or would you simply get in and get the job done since the client has a "prototype" and needs a better version of it?
---
Personally, I've been in this situation A LOT. And I'm both, the old and new dev. I've built tons of crappy software to make things work for clients and after years - they come back for changes/new things. You just swallow the pill and do what is needed. Why? Well, because it's an internal system and not used by anyone outside their office. Even if it's used outside the office - prototyping is the key. They didn't know if the idea would work or be helpful in any way. Now they know and want it done correctly.6 -
God damnit!!
Just got a team assigned for the course I follow and the codebase they work looks like someone shit on the floor and dragged it all over place. No consistency, no clear structure.
The project has to be built in PHP (which is fine by the way) following the principles of MVC. Did I say the codebase looks like shit all over the place? Well that's exactly what it is!!
They use $_SERVER['DOCUMENT_ROOT'] everywhere!! In every fucking file!! Why the FUCK would someone possibly want to do that??
I know I'm not perfect, but what the fuck!!
Now comes the most weird thing. They have to work on a remote server without SSH access, so working with FTP is mandatory. This is because the school won't setup ssh. That's fine by me, but because of that they don't use git!! They upload files directly to the production server. They merge everything manually. I asked why they didn't use git and the answer was so fucking SHIT!! "Because the teacher wants to see who uploaded to the server.."
First off all: what happened to git blame? Second: Later I heard that there is only one FTP account, so all the things they said where just bullshit!!
The fuck.
Tomorrow I'm going to try and convince them to use git..1 -
I need some opinions on Rx and MVVM. Its being done in iOS, but I think its fairly general programming question.
The small team I joined is using Rx (I've never used it before) and I'm trying to learn and catch up to them. Looking at the code, I think there are thousands of lines of over-engineered code that could be done so much simpler. From a non Rx point of view, I think we are following some bad practises, from an Rx point of view the guys are saying this is what Rx needs to be. I'm trying to discuss this with them, but they are shooting me down saying I just don't know enough about Rx. Maybe thats true, maybe I just don't get it, but they aren't exactly explaining it, just telling me i'm wrong and they are right. I need another set of eyes on this to see if it is just me.
One of the main points is that there are many places where network errors shouldn't complete the observable (i.e. can't call onError), I understand this concept. I read a response from the RxSwift maintainers that said the way to handle this was to wrap your response type in a class with a generic type (e.g. Result<T>) that contained a property to denote a success or error and maybe an error message. This way errors (such as incorrect password) won't cause it to complete, everything goes through onNext and users can retry / go again, makes sense.
The guys are saying that this breaks Rx principals and MVVM. Instead we need separate observables for every type of response. So we have viewModels that contain:
- isSuccessObservable
- isErrorObservable
- isLoadingObservable
- isRefreshingObservable
- etc. (some have close to 10 different observables)
To me this is overkill to have so many streams all frequently only ever delivering 1 or none messages. I would have aimed for 1 observable, that returns an object holding properties for each of these things, and sending several messages. Is that not what streams are suppose to do? Then the local code can use filters as part of the subscriptions. The major benefit of having 1 is that it becomes easier to make it generic and abstract away, which brings us to point 2.
Currently, due to each viewModel having different numbers of observables and methods of different names (but effectively doing the same thing) the guys create a new custom protocol (equivalent of a java interface) for each viewModel with its N observables. The viewModel creates local variables of PublishSubject, BehavorSubject, Driver etc. Then it implements the procotol / interface and casts all the local's back as observables. e.g.
protocol CarViewModelType {
isSuccessObservable: Observable<Car>
isErrorObservable: Observable<String>
isLoadingObservable: Observable<Void>
}
class CarViewModel {
isSuccessSubject: PublishSubject<Car>
isErrorSubject: PublishSubject<String>
isLoadingSubject: PublishSubject<Void>
// other stuff
}
extension CarViewModel: CarViewModelType {
isSuccessObservable {
return isSuccessSubject.asObservable()
}
isErrorObservable {
return isSuccessSubject.asObservable()
}
isLoadingObservable {
return isSuccessSubject.asObservable()
}
}
This has to be created by hand, for every viewModel, of which there is one for every screen and there is 40+ screens. This same structure is copy / pasted into every viewModel. As mentioned above I would like to make this all generic. Have a generic protocol for all viewModels to define 1 Observable, 1 local variable of generic type and handle the cast back automatically. The method to trigger all the business logic could also have its name standardised ("load", "fetch", "processData" etc.). Maybe we could also figure out a few other bits too. This would remove a lot of code, as well as making the code more readable (less messy), and make unit testing much easier. While it could never do everything automatically we could test the basic responses of each viewModel and have at least some testing done by default and not have everything be very boilerplate-y and copy / paste nature.
The guys think that subscribing to isSuccess and / or isError is perfect Rx + MVVM. But for some reason subscribing to status.filter(success) or status.filter(!success) is a sin of unimaginable proportions. Also the idea of multiple buttons and events all "reacting" to the same method named e.g. "load", is bad Rx (why if they all need to do the same thing?)
My thoughts on this are:
- To me its indentical in meaning and architecture, one way is just significantly less code.
- Lets say I agree its not textbook, is it not worth bending the rules to reduce code.
- We are already breaking the rules of MVVM to introduce coordinators (which I hate, as they are adding even more unnecessary code), so why is breaking it to reduce code such a no no.
Any thoughts on the above? Am I way off the mark or is this classic Rx?16 -
To a fellow dev on my team; If you notice a difference between the spec and the database structure, just fucking talk to the BA! Don’t code something that fails and put it into QA.
And constantly saying “It’s not my job” is a severely career limiting move you dogmatic little shit.2 -
While in Mec engineering university program I was in a robocup team (small robots playing soccer against an other team of robots using AI).
I designed the mechanical structure of the robots. After 2 years of development (while all those years our goal was to participate in the upcoming international tournament) we realized the software part of the project was mismanaged and really far behind. I couldn't accept that and learned how to code over night. Couldn't let the project I put so much time in die because of someone else.
With the help of others that came from other backgrounds than software, we made it the to tournament and the following two others after this one.
Now my job involves programming more than standard mec engineering. It also pushed me to do a masters in robotics in which I developed my coding skills even more.3 -
So I came from the Portal modding scene. And I know most other ones who did similar stuff.
Now there was a cool looking upcoming free mod and I somehow came in touch with the lead Dev. Now somehow I managed to get into the developer team and me and my girlfriend we're part of it. We got a level name and should start mapping it (TL;DR, we never finished one because we didn't know what to do).
I actually made a website for the mod. But sometime later we both left the team because the lead Dev (12 yo btw) was "hiring" (working for passion not money btw, that's fine in this case) everyone he got in touch with. They had no team structure just a huge list of people and a long story script. I'd guess the mod won't ever be done, although it has made it through steam greenlight (R.I.P greenlight). Just because they're not working on a team. -
Fucking fuck !
I work with a senior Dev,
It’s pretty much like am working under him....
He’s like a great Dev no doubt about it
But !!!!
He’s a fucking dumbass when it comes to working in a team. He makes changes in my code without telling me. He says He forgot to tell me , every single time
When I ask him how a piece of code works , he says it’s pretty much obvious and acts like even a 6 year old kid Would know this ,
He doesn’t think 2 steps ahead before solving a problem usually creating another problem !
We were once working on a language which we weren’t very good at , so I suggested him to ask another Dev in our company about inputs on our code structure to which he completely Disagreed saying they really won’t know much and that he knows more than them..
Fucking dumbass thinks he knows more than most ...
I have tried confronting him multiple times but he feels but he just won’t listen...1 -
A few months back, I was having the last few days of my college / university. Already had a job offer, wasn't fond of attending classes, so I had not much to do. I had been a student placement coordinator, and a few of other student coordinators along with the University Placement Cell decided to overhaul the current placement structure with a new, more efficient one. So, they asked whether I could take interviews (along with a few others) for new placement coordinators, who'd take over the following year, making the existing posts null and void.
So, I was interviewing a 2nd year girl for the technical team. In her form, she had mentioned that she'd been an executive member of the programming club of our University, founded the previous year, was peaking in terms of popularity among other clubs.
I found it strange, and during the interview, I kept pushing it until she accepted that she was just a member and not an executive member.
Then, I asked, do you know Bugs Buggy (name changed)... She said, yes, he is the founder of that club. I said, I am, Bugs Buggy.
Felt thug life B)1 -
So with the current project that I am working on, I'm in charge with creating various base classes, libraries, and helpers. The problem is that the other developers on the team just want to dive straight into developing the API endpoints without designing what the request and response formats should be, let alone decide what the URL structure should be!
So in the middle of their development work, they keep telling me how this and that don't work, or they can't figure out why Laravel is throwing this particular error. It's starting to piss me off that I'm having to do an architect's job whilst also teaching these guys how to use Laravel because they don't bother reading the documentation.
The worst part is that once they've completed their implementation, I'll have to end up fixing it because it's either missing a bunch of business rules, or it doesn't account for any error handling. -
I work at a research institute (part of probably the largest research body in whole Europe). And it's driving me nuts. Forget about the lack of interest to improve yourself in terms of software skills or basic digital hygiene so that others don't have to pick up the mop and clean after you. The ancient mindset is what is making me curse everyday. Only a few years ago we switched to GitLab. Before that versioning, if at all a known term, was done explicitly via email messages - code snippets in the message's body, versions in the subject of message attachments...A freaking nightmare. Constantly broken links to files and folders on our NAS since some people have never heard of relative paths or writing even the tiniest bit of support for configuration files in their software so that a tool does not completely brake the moment you transfer it onto another system or - God forbid - the person leaves and there is no information whatsoever what's where. Everyone is complaining about the clutter on our servers but no one is willing to actually clean their own (not someone else's) crap. If you mention to someone something like "Can you please pack your stuff in this GitLab repo with this folder structure, so that I have an easier time integrating it into the main software that we need to ship to our customers in a few days?" all you get as a response is a blank facial expression and the occasional "I have my own processes. Don't bother me with this!". I have been trying for almost 4 years now and its budging a little bit but the lack of support is abysmal. My boss, as enthusiastic as it is, is incapable of putting his foot down. The fact that I have two heads of my team (one not really but acting like it) does not improve the situation at all especially since both are pulling in a completely different direction. We are literally wasting hundreds of thousands of euros of taxpayers' money to buy new hardware that people are either inadequate to use to its fullest potential (think buying the latest GPU to play Minesweeper) or not having even the smallest clue on what they need it for. And we are always complaining about our budget! You don't invest a couple of hours to investigate how PyTorch can work in a distributed manner on multiple CPUs, GPUs and even systems, yet demand you get a new server for 80K with a more powerful GPU and CPU to run your crap models on so that you can publish a half-ass paper that nobody cares for let alone will ever bother reading (beside the AI reviewers).1
-
My first dev job was for a .net shop. Until then, I had only worked in Java and PHP. This place didn't have the normal team structure, and I soon found that I was going to be working solo on the projects I was responsible for. I'm my first week there, I was tasked with making make revisions to an application in a new language, with a new toolkit, solo. A few weeks later was the most intense day I've had as a dev, as I put in the change control to release my update to production.2
-
The whole episode of me managing an outsourced team for about 6 months. I thought because I’ve managed other teams doing non dev things, it would be like that.
I’ve never been so wrong and NEVER AGAIN! I had to own everything and they’re code is so repetitive and confusing. It misses basic structure because I didn’t outline some things like knowing when a operation is complete and that if the same button appears in two pages it should do the same thing! Or that is you break up a SPA you shouldn’t just duplicate the whole files and then confusingly use randomly parts to so random jobs across all layers of the app. Ffs. Never want to work with a team that doesn’t have a plan to maintain the code they write. I felt like a failure but for me to make them successful I would have had to pretty much write the code.
Now I have to explain this embarrassing pile of curry spaghetti to my colleagues who need to do some other work on it. Fuck. I want to throw it out and start over so badly.
I should have told my boss a hard no on that one and let him know outsourcing would slow things down not speed them up. He just needs to stop trying to get software developed and deployed at the same time. Fuckers.3 -
The „UI-God“ in our team has never heard of dry or clean code.
Clashing classnames for modules in global namespace, gives a f* about patterns, naming conventions, structure and everytime I rebase it breaks my code.
I need the same amount of time fixing his work as he spends on it. -
Does anyone have experience on just "taking" the team organizer slot? My current team meetings are just nuts. A lot of ummms and awkward silences no structure and each runs at least 100% longer than the allotted time. No preparations are made before the meetings. The oldest team member has only been with the company like 1,5 year. I crave more organization1
-
For a new microservice we were designing, I recently had a design discussion with a team member on creating REST endpoints for a new entity. This discussion went on for almost 3 hours, most of the time was spent on why to have two endpoints for getting this resource, one is a POST using a graphQL-like query and another one is a GET using unique ID. I said, the client-side use case is different, one is a dashboard where search results need to be shown based on multiple fields and the unique ID won't be available there because it is a system generated value, second one will be used when the unique ID is present in the client as a result of previous search result. Their responses will be similar, first returns a list of entities, second returns a single entity of the same structure.
Then came the next argument: if both APIs are returning same response, why do we need two different requests ?
It was like saying, because 5+6=11, any sum of two numbers resulting in 11 should always use 5 & 6.
Are people so frustrated of working remotely all the time that they come with such weird arguments ?1 -
Joined a startup, pretty happy with the company over-all so far truthfully. Secured a large project yesterday with higher billables so job security wise things are good. However... The project I've been working on is a mix of a Spring boot webapp and a game. Two separate applications that interact with each other.
Two teams. A home team, and an away team, plus.... 2 "AI's" to play against... Well.... whoever designed this "AI" designed it so they can only ever play as the away team. Why... every function, every method, every bit of logic is coded around what "Half" of the inning it is.... Now I had the bright idea of picking up the hardest task on the ticket list, of making these AI's be able to play as the home team.
WHAT A TASK, and to make things worse. Instead of using some kind of proper inheritance with actual structure, we have TWO COPY AND PASTED AIs where the other has more hard-coded team sided logic that needs to ALSO be adapted.
17 points my ass.
I do love my job though.4 -
Context:
I recently joined a team and we are working on a fairly large mobile app using RN, they started a month ago. And I noticed, they don't have any fucking tests and static typings like Typescript.
I have this pretentious team leader that acts like he's the BeSt dEveLopEr in ThE woRld, and act like he always know what he's doing. But in reality, he code like crap, the formatting is shit because the ESLint config is not working, he's not even aware of it until I've fixed it. He's using every BAD Practice available, unused variables and imports are scattered everywhere, etc. And the directory structure is crap and no consistency.
How can I convince this ignorant mofo to use tests and typescript? He believes that adding those will take us longer and cost more money to the client, based on my experience, this is not the case, it's only slow on the first 2 weeks and it is worth it in the long run.13 -
Follow-up rant to my company. Today's day is fairly good, so let's talk about infra.
We're building upon an existing open-source project which is not intended to be extended (e.g. plugins).
Our backend-team somehow hacked symfony into the app, which made the actual work a little bit less annoying. But on the other side, there is absolutely no automation. Everything is setup by hand and I need to upload my sources to my dev-server and watch what files exactly are overwritten. Because if not, I accidentally overwrite core sources which will break the whole app, no matter what. If I forget what file I wrongly overwrote, I have no choice but to setup the core from scratch and apply our sources on-top, AGAIN.
The first time setup took me almost five days.
Oh yeah and the team shares one dev server, so whenever I feel like fucking with a mate, I can easily fuck up his system, since everyone has root-rights.
We're required to use windows, but our dev is linux and I am the only knowledgable linux guy. They need cheatsheets (to be fair, I need my powershell-cheatsheet).
We market the same app with some additional functionality, but we also have clients which require their own stuff. This case has never been thought-out, since for these specific clients, we also modify some core-parts. Which makes it a real hassle to add a basic new feature to that special customer.
At least our frontend is somewhat decent. Simple and without critical thinking, but it works and is decently understandable. I'll rant about that for another day, it's still tedious.
I know I won't stay there for long since I start my own stuff, but it's sad. Nothing is perfect and they _do_ want to make it better, but it's the usual "there is no time, client first" talk. On the other hand, they tell that we should be more efficient, but there is no way to be without looking back at the fundamental structure and what takes us so long.
I don't think I am able to change anything here and as I heard from co-workers, they already look for something new.
cheers -
So I graduated last year learned everything I would need to succeed in the job world. I got to my first rotation, I solved a total of 6-7 jiras in the past 6 months. I got to my second rotation, my new team is pretty much all remote and it’s been 2 weeks that i have been sitting idle. Their code base is not on git they’re not organized as my first one and I’m confused as to what they do, there’s not really any confluence and the deployment of code is done via uploading a jar. I really want them to adopt a structure like my last team or something similar because but I don’t know enough how to implement a new deployment process. I feel like sitting idle is the worst so I’m gonna start to see if I can implement a proper structure for them but who knows if they’ll even use it.3
-
!rant
Was too much into jquery, and so when I started my job I made everyone think jquery is the boss and stuff (my team is full of data engineers and business analysts.. No one understands code)
But now, based on my previous rant, I feel I should switch the entire project from a node/express structure with jquery to one with angular2
Does it make sense? Please advice... I am nervous of losing my job coz of this
(even now I hate typescript but I see why angular2 is better than jquery.. So I'll learn it all)13 -
My boss tells sets the tasks, and supervisor assigns them to the dev team. It should be as smooth as that simple sentence, but it just isn't. Boss sucks at communicating his ideas clear enough, so we're left scrambling on ourselves trying to guess and develop what he needs, and when we deliver it, boss says it's not what he asked! It's my first job as a self-taught frontend developer, but the lack of structure and clear objectives of the project got me so stressed out that I'm thinking about looking for another job.
-
Guys, how do you structure branching in an enterprise project?
We're using git, managers are MIA, I'm basically helping another new guy kick off and maintain the projects that we have.
What would be a good branching strategy? Front end and backend in the same project, 5 man team in the future.2 -
👇 Many people argue whether software engineers need to be good at concepts like data structures, algorithms, and system design.
Also, they think that companies should stop making their hiring decisions based on testing these concepts.
I think a basic understanding of all of the above is really necessary if you want to be a good engineer.
There can be a discussion on whether an engineer needs a mastery of the advanced topics or not.
However, a basic understanding of data structures, algorithms, and system design is essential for engineers.
Why is that?
I think overall; every software application has two parts:
◉ Data (Micro-level)
◉ Design (Macro-level)
Almost every engineer deals with both of these, depending on their role in the team.
If you're a junior engineer, you may not do that much on the design side. However, your most work would be on the micro-level, i.e., dealing with data.
If you're a senior engineer, you may work more on the macro-level, like designing the architecture, structure, arrangement of different parts, and other related stuff.
A good understanding of data structures and algorithms enables you to be good at manipulating data. So it will help you to deal with data efficiently, and you'd be able to make good decisions at the micro-level.
However, to be good at designing the architecture, you'd need to be good at dealing with different parts of the system on the macro-level. This is where system design principles help you.
This is why you need to understand the basics of both.
👉 Do you think engineers need to be good at data structures and algorithms alongside system design?3 -
If a software company has 3 unique client projects, is it better to structure the discord server this way:
`-` is a category (parent) and `--` is a text or voice channel (child)
OPTION 1: category as project
- Project A
-- general
-- resources
-- design
-- dev team 1
-- dev team 2
- Project B
-- general
-- resources
-- design
-- dev team 1
-- dev team 2
- Project C
-- general
-- resources
-- design
-- dev team 1
-- dev team 2
OPTION 2: category as event
- Projects
-- projectA-general
-- projectB-general
-- projectC-general
- Design
-- projectA-design
-- projectB-design
-- projectC-design
- Resources
-- projectA-resources
-- projectB-resources
-- projectC-resources
- Developer discussions
-- projectA-team1-dev
-- projectA-team2-dev
-- projectB-dev
-- projectC-dev
- Meetings
-- projectA-meeting
-- projectB-meeting
-- projectC-meeting
?
What do you think is better.
PS. there is literally NO other communication service that can structure it exactly like this. Only discord is powerful and FREE to do it like this.
- Rocketchat isnt flexible enough to do this
- Slack requires me to pay first so i can do this
- Teams too
So fuck all of them I'll stick to discord unless someone can name me 1 single alternative service capable of structuring channels like this for a real time communication for FREE19 -
If a project's structure is shit, well of course, let's continue using it because "it is known". Doing it any other way "will add complexity".
That I wasted three days making my working code adhere to the clusterfuck of a structure, nevermind that. Let's continue. And yes, colleagues do agree that the structure is shit, though let's improve it ... later.
Or in other words: Suck it up, we always have done it this way. Fuck you and your ill-advised attempts of trying to improve it. -
New team structure at work. Six of us. It’s a mixture of seasoned devs and new guys (me). An (subjective) objection is made about something I created. Should I push back or let the senior devs have their way?6
-
Critical Tips to Learn Programming Faster Sample:
Be comfortable with basics
The mistake which many aspiring students make is to start in a rush and skip the basics of programming and its fundamentals. They tend to start from the comparatively advanced topics.
This tends to work in many sectors and fields of Technology, but in the world of programming, having a deep knowledge of the basic principles of coding and programming is a must. If you are taking a class through a tutor and you feel that they are going too fast for your understanding, you need to be firm and clear and tell them to go slowly, so that you can also be on the same page like everyone else
Most often than not, many people tend to struggle when they reach a higher level with a feeling of getting lost, then they feel the need to fall back and go through basics, which is time-consuming. Learning basics well is the key to be fast and accurate in programming.
Practice to code by hand.
This may sound strange to some of you. Why write a code by hand when the actual work is supposed to be done on a computer? There are some reasons for this.
One reason being, when you were to be called for an interview for a programming job, the technical evaluation will include a hand-coding round to assess your programming skills. It makes sense as experts have researched and found that coding by hand is the best way to learn how to program.
Be brave and fiddle with codes
Most of us try to stick to the line of instructions given to us by our seniors, but it is extremely important to think out of the box and fiddle around with codes. That way, you will learn how the results get altered with the changes in the code.
Don't be over-ambitious and change the whole code. It takes experience to reach that level. This will give you enormous confidence in your skillset
Reach out for guidance
Seeking help from professionals is never looked down upon. Your fellow mates will likely not feel a hitch while sharing their knowledge with you. They also have been in your position at some point in their career and help will be forthcoming.
You may need professional help in understanding the program, bugs in the program and how to debug it. Sometimes other people can identify the bug instantly, which may have escaped your attention. Don't be shy and think that they'll make of you. It's always a team effort. Be comfortable around your colleagues.
Don’t Burn-out
You must have seen people burning the midnight oil and not coming to a conclusion, hence being reported by the testing team or the client.
These are common occurrences in the IT Industry. It is really important to conserve energy and take regular breaks while learning or working. It improves concentration and may help you see solutions faster. It's a proven fact that taking a break while working helps with better results and productivity. To be a better programmer, you need to be well rested and have an active mind.
Go Online
It's a common misconception that learning how to program will take a lot of money, which is not true. There are plenty of online college courses designed for beginner students and programmers. Many free courses are also available online to help you become a better programmer. Websites like Udemy and programming hub is beneficial if you want to improve your skills.
There are free courses available for everything from [HTML](https://bitdegree.org/learn/...) to CSS. You can use these free courses to get a piece of good basic knowledge. After cementing your skills, you can go for complex paid courses.
Read Relevant Material
One should never stop acquiring knowledge. This could be an extension of the last point, but it is in a different context. The idea is to boost your knowledge about the domain you're working on.
In real-life situations, the client for which you're writing a program for possesses complete knowledge of their business, how it works, but they don't know how to write a code for some specific program and vice versa.
So, it is crucial to keep yourself updated about the recent trends and advancements. It is beneficial to know about the business for which you're working. Read relevant material online, read books and articles to keep yourself up-to-date.
Never stop practicing
The saying “practice makes perfect” holds no matter what profession you are in. One should never stop practicing, it's a path to success. In programming, it gets even more critical to practice, since your exposure to programming starts with books and courses you take. Real work is done hands-on, you must spend time writing codes by hand and practicing them on your system to get familiar with the interface and workflow.
Search for mock projects online or make your model projects to practice coding and attentively commit to it. Things will start to come in the structure after some time.4 -
Best Practices for Implementing CI/CD Pipelines in a Microservices Architecture
Hello everyone,
I'm currently working on implementing CI/CD pipelines for our microservices-based application and I'm looking for some best practices and advice. Our architecture consists of several microservices, each with its own repository and development team. We've been using Jenkins for our build automation, but we're open to exploring other tools if they offer better integration or features.
Here are a few specific areas where I need guidance:
Pipeline Design: How should we structure our CI/CD pipelines to handle multiple microservices efficiently? Should each microservice have its own pipeline, or is there a better approach?
Deployment Strategies: What deployment strategies work best for microservices to ensure zero downtime and easy rollback? We're considering blue-green deployments and canary releases, but would love to hear about your experiences.
Tool Recommendations: Are there any CI/CD tools or platforms that are particularly well-suited for microservices architectures? We're particularly interested in tools that offer good integration with Kubernetes.
Testing and Quality Assurance: How do you handle testing in a microservices environment? What types of tests do you include in your CI/CD pipelines to ensure the quality and stability of each microservice?
Monitoring and Logging: What are the best practices for monitoring and logging in a microservices setup? How do you ensure that you have visibility into the performance and issues of individual microservices?
Any insights, resources, or examples from your own implementations would be greatly appreciated. Thank you in advance for your help!2 -
Not a horror. I'm rewriting services.
It started as a help request. I was asked to help with completing a service dealing with push notifications which was a research prototype. It was suggested to keep core part of it, but it was so awful that I just removed all files and wrote the service from scratch.
The second service had been developed for more than a year by a junior and then by our manager who wanted to complete it as fast as possible, without taking care of code quality. Then I was asked to take over the project and after some time I agreed with one condition: I'll have 1 month on takeover. But when I looked at the code, it became clear that it's much faster and better to rewrite everything except API and database than to takeover existing code.
The third service dealing with file exchange was working, but the junior who wrote it advised to rewrite it because it was a very simple service. So, I initiated rewriting, designed a new API and reviewed the final result.
And now I'm dealing with the fourth one. It was developed in my team but not under control. Now, when I "inherited" this complicated project, I decided to rewrite it because it should be simple, but it doesn't. It features reflection, layers inside layers, strange namespaces, strange solution structure. And that's after months of refactorings and improvements. So, wish me luck because I want to keep part of the infrastructure, but I don't know if it's possible. -
Depends on what style means...
How I format the code: language, team/style-check rules, IDE auto format settings
How I structure my code and design programs: experience... Mainly from blowing stuff up, having to rewrite monolith code, trying to understand other people's shitty code and why they can't seem to organize it better so you don't need to be a surgeon or God to even attempt to figure out wtf it's doing and how it works... Or supposed to work. -
Pure Pressure Wash Co LLC: Professional Gutter Cleaning Services in Thousand Oaks, CA
At Pure Pressure Wash Co LLC, we understand the importance of maintaining the health and integrity of your home or business, and one key aspect of property maintenance that’s often overlooked is gutter cleaning. Gutters are designed to protect your property by channeling rainwater away from your roof, walls, and foundation, but over time, they can become clogged with leaves, twigs, dirt, and other debris. When this happens, your gutters can no longer do their job effectively, leading to potential damage to your roof, walls, and even your foundation. That's where we come in.
Serving Thousand Oaks, California, and the surrounding areas, Pure Pressure Wash Co LLC offers professional gutter cleaning services to keep your property safe and protected. Our team uses the latest tools and techniques to ensure your gutters are clear, functioning properly, and free of debris, so you can avoid costly repairs down the road.
Why Gutter Cleaning is Essential
Your gutters play a critical role in maintaining the structural integrity of your property. When they are clogged or damaged, it can lead to a number of issues, including:
Water Damage to the Roof
When gutters are clogged, water can back up onto your roof. Over time, this can cause roof leaks, rotting shingles, and mold growth, which can compromise the entire roofing structure. Regular gutter cleaning prevents water from accumulating on your roof and causing expensive damage.
Foundation Problems
Gutters that are full of debris can cause rainwater to spill over the edges and pool around the foundation of your home. This excess water can seep into the ground, leading to soil erosion and cracks in your foundation, which can be costly to repair.
Landscape Damage
Overflowing gutters can also damage your landscaping by directing water to areas where it shouldn’t be. Erosion, over-watering, and soil displacement can harm your plants, garden beds, and lawn.
Mold and Mildew Growth
When water is trapped in clogged gutters, it can create a perfect breeding ground for mold and mildew. Over time, this can spread to other parts of your home, causing health issues and further property damage.
Pest Infestations
Clogged gutters are also a haven for pests, including mosquitoes, ants, rodents, and even birds. Standing water in gutters provides a place for mosquitoes to breed, while leaves and debris attract rodents looking for shelter. Gutter cleaning ensures that these unwanted guests don’t make your gutters their home.
Why Choose Pure Pressure Wash Co LLC for Gutter Cleaning?
At Pure Pressure Wash Co LLC, we pride ourselves on providing top-notch gutter cleaning services that ensure your property stays in great shape year-round. Here’s why homeowners and businesses in Thousand Oaks trust us for all their gutter cleaning needs:
Experienced Technicians: Our team of professionals is highly trained in gutter cleaning, ensuring that we remove debris thoroughly and safely. We use the best tools and techniques to get the job done right the first time, whether your gutters are hard to reach or heavily clogged.
Thorough Inspection: We don’t just clean your gutters—we also inspect them for any damage, such as cracks, leaks, or loose hangers. If we find any issues, we’ll notify you so you can address them before they become bigger problems.
Safe and Efficient: Gutter cleaning can be dangerous, especially if your gutters are high up or hard to access. Our team is equipped with the proper safety gear and tools to safely clean your gutters, ensuring a job well done without risking injury.
Eco-Friendly Practices: We’re committed to protecting the environment, which is why we use eco-friendly cleaning products and methods. We also dispose of debris in a responsible manner, ensuring that nothing goes to waste.
Affordable Pricing: We believe that gutter cleaning should be affordable, and we offer competitive, transparent pricing with no hidden fees. You’ll receive a free estimate before we start the job, so you know exactly what to expect.
Comprehensive Services: In addition to gutter cleaning, we also offer gutter maintenance and repair services. If your gutters need minor repairs or adjustments, we can handle it while we’re on-site, ensuring that your gutters function optimally year-round.
Our Gutter Cleaning Process
We follow a systematic approach to ensure that your gutters are thoroughly cleaned and working efficiently. Here’s what you can expect when you hire Pure Pressure Wash Co LLC for gutter cleaning:
Initial Inspection
We start by inspecting your gutters to assess the level of cleaning required. We check for blockages, damage, and potential problem areas, ensuring that we address any issues as part of the service.
5 -
Ohrenkorrektur at Ästhetik Zentrum Berlin - Dr. Jungk: Enhance Your Ear Aesthetics with Expertise and Care
At Ästhetik Zentrum Berlin, led by the experienced Dr. Jungk, we specialize in Ohrenkorrektur (ear correction surgery) in Berlin. If you are looking to improve the appearance of your ears, whether due to protrusion, asymmetry, or other concerns, our clinic offers personalized solutions designed to achieve natural and harmonious results.
Conveniently located at Grolmannstraße 36 – 10623 Berlin, our clinic provides a professional environment focused on delivering outstanding cosmetic outcomes with the utmost care and precision. With Dr. Jungk's expertise and advanced techniques, we are dedicated to helping you achieve the ear appearance you've always desired.
What is Ohrenkorrektur (Ear Correction Surgery)?
Ohrenkorrektur is a cosmetic surgical procedure aimed at reshaping or repositioning the ears to improve their appearance. Whether you have ears that protrude, are asymmetrical, or simply wish to alter their size or shape for cosmetic reasons, ear correction surgery can help enhance the overall balance of your face. It is especially beneficial for individuals who feel self-conscious about their ears, whether due to congenital factors or changes over time.
Why Choose Ästhetik Zentrum Berlin for Your Ohrenkorrektur?
Experienced Expertise of Dr. Jungk: With years of experience in cosmetic surgery, Dr. Jungk is dedicated to providing patients with the best possible results. His extensive knowledge of ear correction procedures ensures that your surgery is in safe hands. Dr. Jungk utilizes state-of-the-art techniques for minimal scarring and a natural, aesthetically pleasing outcome.
Customized Treatment Plans: Every patient has different needs, and at Ästhetik Zentrum Berlin, we take the time to understand your personal goals. Through a detailed consultation, Dr. Jungk will assess your ear structure and discuss the optimal approach to achieve the most balanced and attractive result for you.
Advanced Surgical Techniques: We use the latest techniques in Ohrenkorrektur surgery to ensure that the procedure is effective, minimally invasive, and quick. Our modern surgical tools and methods allow for a quicker recovery time and more precise results.
Comprehensive Aftercare: After your Ohrenkorrektur surgery, we provide detailed instructions on post-operative care and ensure you are fully supported throughout the recovery process. Our team will monitor your progress and offer any assistance you may need, ensuring you achieve the best possible outcome.
The Ohrenkorrektur Procedure
The Ohrenkorrektur surgery typically involves reshaping the cartilage of the ear to reposition it closer to the head, which reduces the protrusion. The procedure is often performed under local anesthesia with sedation, ensuring comfort and safety during the process.
Depending on the complexity of the case, the surgery generally lasts 1-2 hours. Dr. Jungk will make discreet incisions, typically hidden behind the ear, to minimize visible scarring. The cartilage is then sculpted or repositioned, and the ear is secured in its new position.
Benefits of Ohrenkorrektur
Improved Facial Symmetry: One of the key benefits of Ohrenkorrektur is the improved balance it brings to your facial features, giving you a more harmonious appearance.
Boosted Confidence: Many patients experience a significant boost in self-esteem after ear correction, as they no longer feel self-conscious about the appearance of their ears.
Natural, Lasting Results: With expert surgical techniques, the results of Ohrenkorrektur are permanent and natural-looking, leaving you with ears that complement your overall facial features.
Quick Recovery: The recovery time for Ohrenkorrektur is typically short, allowing patients to return to their normal routines quickly while still achieving optimal results.
Ready to Take the Next Step?
If you are interested in Ohrenkorrektur in Berlin and want to learn more about how it can help you achieve the appearance you desire, contact Dr. Jungk and the team at Ästhetik Zentrum Berlin. Schedule your consultation today by calling +49 171 1269326.
Our clinic is located at Grolmannstraße 36 – 10623 Berlin, and we look forward to guiding you through your transformation. Trust in our expertise and commitment to your satisfaction as we work together to enhance your aesthetic journey.
Achieve the look you’ve always wanted and feel more confident with Ohrenkorrektur at Ästhetik Zentrum Berlin.2 -
Home Loan Calculator: Simplify Your Mortgage Process with Calculating a Mortgage Loan
When you’re ready to purchase a home, one of the most important financial decisions you’ll make is how to finance it. A home loan calculator is an invaluable tool in this process, helping you understand exactly what your monthly payments will look like and ensuring that you are financially prepared for your new home. At Calculating a Mortgage Loan, we provide comprehensive, user-friendly home loan calculators that make it easier for you to make informed decisions about your mortgage.
Why Use a Home Loan Calculator?
A home loan calculator allows you to quickly and accurately determine the cost of your mortgage. It’s an essential tool for anyone looking to buy a home, refinance, or even adjust their current loan terms. By calculating your mortgage payments in advance, you’ll be better prepared to make a sound financial decision. Here’s why it’s essential to use a home loan calculator:
Understand Your Monthly Payment:
A home loan calculator helps you determine what your monthly mortgage payments will be based on the loan amount, interest rate, and loan term. This gives you a clear picture of how much you’ll need to budget each month to stay on track with your payments.
Assess Affordability:
With the home loan calculator, you can easily adjust loan amounts, interest rates, and loan terms to see how these factors affect your monthly payment. This allows you to find a loan structure that fits your budget and financial situation.
Plan for the Long Term:
It’s not just about your current monthly payment. A home loan calculator also shows you the total cost of the loan over its lifetime, including the principal and interest. This can help you compare different loan terms and decide whether a shorter or longer-term loan is right for you.
Make Informed Decisions:
By using a home loan calculator, you can see exactly how different interest rates and down payment amounts affect your loan. This helps you make smart decisions about choosing a lender, negotiating terms, and determining how much you should put down on your new home.
Save Time and Stress:
Having access to a home loan calculator saves you the hassle of manual calculations or relying on estimates. The tool provides quick, accurate results that allow you to move forward with confidence.
How to Use a Home Loan Calculator
Using a home loan calculator is simple and straightforward. Here’s how you can calculate your monthly mortgage payment:
Enter Loan Amount:
This is the total amount you plan to borrow for your home. It’s usually the purchase price of the home minus your down payment.
Interest Rate:
Input the interest rate for your loan. This rate can vary depending on the type of loan and your creditworthiness.
Loan Term:
Choose the length of your loan, typically 15, 20, or 30 years. The longer the loan term, the lower your monthly payment will be, but you’ll pay more in interest over the life of the loan.
Down Payment:
The more money you put down upfront, the smaller the loan amount will be, reducing your monthly payment. Most homebuyers make a down payment of 20%, but it can vary.
Additional Costs:
Be sure to account for other costs, such as property taxes, homeowner’s insurance, and private mortgage insurance (PMI). These costs are often rolled into your monthly mortgage payment.
Once you input these details, the calculator will give you an estimate of your monthly payment, helping you plan and budget accordingly.
Why Choose Calculating a Mortgage Loan?
At Calculating a Mortgage Loan, we understand that buying a home is one of the biggest decisions of your life. Our home loan calculator is designed to simplify the mortgage process, providing you with all the information you need to make confident financial decisions.
Here’s why you should choose us:
Accurate Results:
Our home loan calculator provides precise, reliable estimates to help you make informed decisions about your mortgage.
Ease of Use:
Whether you’re a first-time homebuyer or a seasoned homeowner, our tool is easy to use, allowing you to quickly calculate mortgage payments and compare loan options.
Expert Advice:
Beyond just the calculator, we offer expert advice to help you navigate the home loan process. Our team is available to answer any questions and guide you through every step.
Comprehensive Resources:
We provide additional resources to help you understand every part of the mortgage process, from the initial calculation to closing the deal.
Contact Us Today
If you're ready to start using our home loan calculator or need assistance with your mortgage, our team at Calculating a Mortgage Loan is here to help. We’re committed to making the mortgage process simple and transparent, so you can feel confident about your home purchase.7 -
AGI: Property Inspections – Your Trusted Home Inspector in Lake Charles, LA
When it comes to purchasing, selling, or maintaining a property, one of the most crucial steps is having a thorough inspection done. A professional home inspection gives you the information you need to make confident decisions about your property. If you’re looking for a reliable and experienced home inspector in Lake Charles, AGI: Property Inspections is here to help. With years of experience and a commitment to excellence, we ensure that your property is in the best possible condition.
Why Choose AGI: Property Inspections for Your Home Inspection in Lake Charles, LA?
At AGI: Property Inspections, we are dedicated to providing the highest quality home inspection services to homeowners, buyers, and sellers in Lake Charles and the surrounding areas. Here’s why you should trust us as your home inspector in Lake Charles:
Local Expertise
As a locally owned and operated business, we understand the unique characteristics of homes in Lake Charles. From local weather conditions to building standards, we are familiar with the specific challenges that properties in our area face. This local expertise allows us to offer the most accurate assessments of your property.
Comprehensive Home Inspections
Our inspections cover every aspect of the property. From the foundation to the roof, we examine the structure, plumbing, electrical systems, HVAC, insulation, and much more. We ensure that all potential issues, whether visible or hidden, are identified and thoroughly documented.
Certified and Experienced Inspectors
The team at AGI: Property Inspections is made up of certified and highly trained inspectors with extensive experience in the field. Our commitment to professionalism and detail ensures that every inspection is thorough, accurate, and reliable.
Clear and Detailed Reports
After your inspection, you’ll receive a comprehensive report outlining our findings. We provide clear, easy-to-understand descriptions, along with photos and recommendations for repairs or further investigations. Our goal is to help you fully understand the condition of your property.
Affordable Pricing with No Hidden Fees
We believe in offering high-quality inspection services at fair prices. Our pricing is transparent, so you won’t be surprised by hidden fees. We strive to make our services accessible without compromising on quality.
Flexible Scheduling
We understand that your time is valuable. That’s why we offer flexible scheduling options to accommodate your busy schedule. Whether you need an inspection during regular business hours, weekends, or after-hours, we’ll work with you to find a time that’s convenient.
Our Home Inspection Services in Lake Charles, LA
We offer a range of home inspection services tailored to meet your needs:
Pre-Purchase Inspections
If you’re in the process of buying a home, our pre-purchase inspection is essential. We’ll provide a detailed analysis of the property’s condition, helping you avoid unexpected repair costs after you make your purchase.
Pre-Sale Inspections
If you’re selling your home, a pre-sale inspection can help identify issues before listing the property. Addressing these problems upfront can make your home more attractive to potential buyers and speed up the sales process.
New Construction Inspections
Even newly built homes can have issues that may not be immediately apparent. Our inspectors conduct thorough assessments of new construction properties to ensure they meet all required building codes and quality standards.
Annual Home Inspections
Regular home inspections help maintain your property’s value. We offer annual inspections to catch small issues before they become bigger problems, saving you money on future repairs.
Commercial Property Inspections
We also offer commercial property inspections for business owners and investors. Whether you're purchasing or maintaining a commercial property, we can help ensure that it meets all safety standards and is in good condition.
How to Schedule Your Home Inspection in Lake Charles, LA
Scheduling an inspection with AGI: Property Inspections is simple. Just call +1 (337) 905-1428, and our friendly staff will help you book an appointment at a time that works best for you. We offer flexible scheduling and can accommodate evening or weekend appointments to fit your needs.2 -
The aftermath of falling victim to a cryptocurrency scam is often a whirlwind of anger, regret, and helplessness. After losing a significant portion of my savings to a cunning fraud scheme, I was consumed by the belief that my funds were irretrievable until I discovered TECH CYBER FORCE RECOVERY. This exceptional team didn’t just recover my assets; they reignited my hope in the face of digital deception. From the outset, TECH CYBER FORCE RECOVERY’s approach radiated competence and compassion. Their consultants listened intently to my story, validating the emotional weight of my situation while swiftly pivoting to actionable solutions. What struck me was their refusal to exploit my vulnerability, a stark contrast to other firms I had approached. They presented a transparent fee structure and realistic timelines, establishing credibility that immediately put me at ease. Their recovery strategy was a masterclass in precision. Utilizing cutting-edge blockchain analysis tools, the team dissected the scam’s infrastructure, uncovering hidden trails in the decentralized labyrinth. Rather than applying boilerplate methods, they engineered a bespoke plan tailored to the scam’s unique mechanics. Their communicators maintained a steady cadence of updates, translating technical jargon into digestible insights without ever leaving me in the dark.
What truly amazed me was their adaptability. When initial attempts hit roadblocks, the team recalibrated their tactics, demonstrating both resilience and ingenuity. Their collaborative spirit shone through as they consulted external cybersecurity experts to fortify their approach, a testament to their commitment to leaving no stone unturned. The outcome exceeded my wildest expectations. TECH CYBER FORCE RECOVERY retrieved approximately 95% of my stolen cryptocurrency in under a month. The moment I saw the funds restored in my wallet was surreal, a victory I had dismissed as a fantasy weeks earlier. Beyond financial recovery, they equipped me with actionable advice to safeguard future transactions, transforming my traumatic experience into a learning opportunity.
TECH CYBER FORCE RECOVERY’s integrity is its crown jewel. They never compromised ethics for expediency, even when confronting the scam’s orchestrators. Their adherence to legal frameworks and respect for privacy reinforced my trust in their operations. For those reeling from crypto scams, this team is essential. They illuminate paths to redemption with unwavering expertise. My journey with them was more than a service transaction; it was a partnership anchored in mutual respect. To anyone questioning whether recovery is possible, let my experience answer. With TECH CYBER FORCE RECOVERY, it’s not just possible, it’s probable.
CONTACT THEM FOR EXPERIENCE LIKE THIS
EMAIL Tech cybers force recovery @ cyber services . com
TELEGRAM (@) TECHCY BERFORC2 -
Perfect Pressure Pros: Your Trusted Experts for Window Cleaning, Pool Deck Cleaning, Soft Washing, and Roof Washing in North Carolina
At Perfect Pressure Pros, we specialize in providing top-quality exterior cleaning services for homes and businesses across Huntersville, NC, Charlotte, NC, and Concord, NC. Whether you're in need of window cleaning, pool deck cleaning, soft washing services, or roof washing, our team has the experience and tools to get the job done right. Serving you from our base at 7818 June Ln, Wildwood, FL, we proudly bring professional exterior cleaning to the Charlotte and surrounding areas.
Window Cleaning in Huntersville, NC – Make Your Windows Sparkle
Dirty windows can impact the look of your home or business and even reduce the amount of natural light that enters your space. If you’re in search of window cleaning in Huntersville, NC, Perfect Pressure Pros is here to help. Our expert window cleaning service removes dirt, streaks, and grime, leaving your windows looking crystal clear. We use advanced cleaning solutions and techniques that ensure a spotless finish, whether you need interior or exterior window cleaning. Let us enhance the curb appeal of your property with our professional window cleaning services.
Pool Deck Cleaning in Charlotte, NC – Keep Your Pool Area Beautiful and Safe
Your pool deck is exposed to the elements, meaning it can quickly accumulate dirt, algae, and other contaminants. Regular pool deck cleaning in Charlotte, NC is essential to maintaining a safe, clean, and attractive outdoor space. At Perfect Pressure Pros, we specialize in pressure washing and cleaning pool decks of all types, including concrete, stone, and pavers. We remove dirt, mold, mildew, and slippery algae, providing you with a clean and safe environment to enjoy your pool. With our pool deck cleaning services, you can relax and enjoy your outdoor area without worrying about safety hazards or unsightly stains.
Soft Washing Services in Charlotte, NC – Safe and Effective Cleaning
For delicate surfaces like roofs, siding, and windows, soft washing services in Charlotte, NC is the ideal solution. Unlike traditional pressure washing, soft washing uses low-pressure water and special eco-friendly cleaning solutions to gently and effectively clean surfaces without causing any damage. At Perfect Pressure Pros, we use soft washing to safely remove algae, mold, mildew, and other contaminants from your home’s exterior. Whether it's your roof, siding, or deck, our soft washing services are an effective and safe way to maintain your property’s appearance while protecting delicate surfaces.
Roof Washing Company in Concord, NC – Protect and Clean Your Roof
Your roof is an essential part of your home’s structure and deserves proper care to ensure its longevity. Over time, algae, moss, and debris can accumulate on your roof, causing damage and diminishing its curb appeal. As a leading roof washing company in Concord, NC, Perfect Pressure Pros provides safe and effective roof cleaning services. We use specialized soft washing techniques to remove harmful growths and contaminants without damaging your shingles. Regular roof washing not only improves the look of your home but also helps prevent costly repairs by extending the lifespan of your roof.
Why Choose Perfect Pressure Pros?
Experienced and Professional Team: Our technicians are highly trained and experienced in all aspects of exterior cleaning, ensuring top-quality results every time.
Advanced Equipment: We use the latest pressure washing and soft washing technology to deliver the best results for your property.
Affordable and Transparent Pricing: We offer competitive pricing and free estimates, so you can get the services you need without breaking the bank.
Customer Satisfaction: We prioritize customer satisfaction and are committed to exceeding your expectations with every service we provide.
Contact Perfect Pressure Pros Today
If you're looking for window cleaning in Huntersville, NC, pool deck cleaning in Charlotte, NC, soft washing services in Charlotte, NC, or a roof washing company in Concord, NC, contact Perfect Pressure Pros today! Our professional team is ready to help restore the beauty and safety of your property. Call us at +1 (561) 907-7201 to schedule an appointment or get a free estimate.
Let Perfect Pressure Pros handle all your exterior cleaning needs. We are your go-to service provider for top-quality pressure washing and soft washing solutions in Huntersville, Charlotte, and Concord, NC!2 -
STEPS TO RECOVER BITCOIN AND USDT FROM ONLINE INVESTMENT SCAM
Betafort Recovery follows a systematic approach to ensure the best chance of recovering stolen funds. Here are the steps they took to help me:
1. Initial Contact and Case Assessment
I contacted Betafort Recovery via email and WhatsApp, explaining the situation in detail. They responded quickly, requesting specific information to assess the theft. This included:
- Details of the stolen transaction
- The wallet addresses involved
- Any communication or evidence related to the scam
2. Verification and Agreement
Once they reviewed my case, Betafort Recovery confirmed that they could assist in the recovery. They provided a service agreement outlining the recovery process, confidentiality terms, and their fee structure based on the amount recovered. I reviewed and signed the agreement, reassured by their transparent and professional approach.
3. In-Depth Investigation
The firm began by conducting a thorough investigation to trace the stolen funds. This involved:
- Analyzing the blockchain to track the movement of the stolen assets
- Identifying the destination wallet and any subsequent transactions
- Utilizing advanced forensic tools to uncover patterns and connections
4. Recovery Strategies
Once they gathered sufficient information, Betafort Recovery implemented various strategies to recover the stolen money:
- Negotiation: They sometimes engaged directly with the perpetrators, using their expertise to negotiate the return of the funds.
- Technical Exploits: The team exploited vulnerabilities in the scammers’ systems to regain access to the stolen assets.
- Collaborative Efforts: When necessary, they collaborated with other cybersecurity experts and legal authorities to enhance the recovery process.
5. Successful Recovery
After several days of diligent work, Betafort Recovery successfully recovered my stolen funds. They transferred the recovered money back to a secure wallet that I controlled. Their professionalism and expertise were evident throughout the process, and I was immensely grateful for their assistance.
Conclusion
Having your funds stolen from Trust Wallet can be a harrowing experience, but there is hope with services like Betafort Recovery. Their systematic and professional approach makes them a reliable partner in recovering stolen cryptocurrencies. If you ever find yourself in a similar situation, don’t hesitate to reach out to them:
Email: info@betafort.online
WhatsApp: +17126004729
Thanks to Betafort Recovery, I was able to restore my financial stability and continue my journey in the world of cryptocurrency with renewed confidence. Their dedication and expertise turned a potential financial disaster into a successful recovery, for which I am eternally grateful.2 -
RECOVER BTC AND MONEY SENT TO SCAMMERS HIRE A HACKER TECHNOCRATE RECOVERY
When my cryptocurrency wallet was suddenly emptied, leaving me with a loss of $145,000, I was engulfed in shock and disbelief. The devastation was compounded when I uncovered the truth: my ex-girlfriend, whom I had recently discovered was unfaithful, was behind the theft. The realization that someone I once trusted had betrayed me so deeply was crushing. The emotional turmoil left me desperate for a solution, so I began searching for recovery services. During this search, I came across a Telegram group where someone recommended TECHNOCRATE RECOVERY. Their glowing reviews provided a glimmer of hope, and reaching out to them turned out to be a pivotal decision. From our very first conversation, TECHNOCRATE RECOVERY exhibited a level of professionalism that immediately reassured me. They didn’t just sympathize—they acted, quickly launching an investigation into how the theft occurred. Knowing that this betrayal came from someone close to me, their careful, methodical approach was exactly what I needed. They were meticulous in their investigation, tailoring their efforts to the unique aspects of my case, which was vital given the complexities of cryptocurrency recovery. Their team was both knowledgeable and empathetic, fully understanding the emotional weight of my situation. Throughout the process, I experienced an emotional roller coaster. The initial despair slowly gave way to hope as the team at TECHNOCRATE RECOVERY consistently communicated with me. They were transparent, explaining each step in a way that was easy to understand, which helped alleviate some of the anxiety I felt. Their regular updates were a lifeline, ensuring I was never left in the dark about the progress being made. Their ability to break down complex technical details into something manageable was a testament to their commitment to client care. TECHNOCRATE RECOVERY’s use of advanced forensic tools and blockchain expertise was nothing short of impressive. They tracked the movement of my stolen assets with precision, leaving no avenue unexplored. I was particularly impressed by their collaboration with other experts and law enforcement when necessary, demonstrating their dedication to recovering my funds. Their transparent fee structure was another standout feature. While many services charge hefty fees or demand significant upfront payments, TECHNOCRATE RECOVERY provided a clear breakdown of costs from the outset. This transparency built trust, making the financial aspect of the process far less stressful. Their focus on results over profit was evident and greatly appreciated. Ultimately, TECHNOCRATE RECOVERY successfully recovered all my stolen assets, bringing a sense of closure to this painful chapter. But what truly set them apart was their post-recovery support. They provided invaluable advice on securing my cryptocurrency wallet against future threats, arming me with the knowledge I needed to prevent such a breach from happening again. If you ever find yourself in a similar situation, know that there’s a way back from the brink. TECHNOCRATE RECOVERY isn’t just a service—they’re a lifeline, guiding you through the darkest moments and helping you regain control over what you thought was lost forever.
Web Info: ww w.technocraterecove ry.site
Contact Email: technocratrecovery (@) contractor. net -
Wash Pros LLC: Premier Exterior Cleaning Services in East Providence
At Wash Pros LLC, we specialize in top-tier exterior cleaning services designed to keep your property looking its best all year round. Whether it's gutter cleaning, solar panel cleaning, or driveway cleaning, our team uses the latest tools and techniques to ensure your home or business is spotless and well-maintained. Serving East Providence and surrounding areas, we are committed to delivering outstanding results that help enhance curb appeal, protect your investment, and improve the longevity of your property.
Exterior Cleaning: Transform the Look of Your Property
The exterior of your home or business is the first thing people see. Keeping it clean not only boosts the aesthetic appeal but also protects the structure from weather damage and deterioration. Our comprehensive exterior cleaning services cover a range of areas around your property, including the siding, windows, fences, and patios.
At Wash Pros LLC, we understand that different surfaces require different cleaning techniques. That's why we offer customized solutions, from gentle soft washing for delicate surfaces to more powerful pressure washing for tougher materials. No matter the scope or complexity of the job, we’ll leave your property looking fresh and well-maintained.
Gutter Cleaning: Protect Your Home from Water Damage
Your gutters play a crucial role in protecting your home from water damage by directing rainwater away from the roof and foundation. Over time, gutters can accumulate leaves, twigs, dirt, and debris, which can obstruct the flow of water. This buildup can lead to water overflow, which may cause significant damage to your roof, siding, and even your home’s foundation.
At Wash Pros LLC, our gutter cleaning service ensures that your gutters are clear, free of debris, and functioning properly. We use specialized tools to safely remove all debris and ensure that your gutters are flowing freely. Regular gutter cleaning helps prevent costly repairs down the line and keeps your home protected from the elements.
Solar Panel Cleaning: Maximize Your Solar Efficiency
Your solar panels are an investment in both your home’s energy efficiency and the environment. To ensure they work at their peak performance, it’s important to keep them clean and free of dirt, dust, and debris. Dirty panels can significantly reduce the amount of sunlight absorbed, ultimately decreasing their energy production.
At Wash Pros LLC, we offer professional solar panel cleaning services to help you maximize the efficiency of your solar system. Our team uses specialized cleaning techniques that are gentle on your panels but effective in removing dirt, grime, and other buildup. We ensure that your solar panels remain in excellent condition, providing you with optimal energy savings.
Driveway Cleaning: Enhance the First Impression
Your driveway is one of the most visible parts of your property, and over time, it can become stained and dirty from oil spills, tire marks, dirt, and weather exposure. Driveway cleaning is an essential service that restores the look of your driveway and boosts the overall appearance of your property.
At Wash Pros LLC, we use powerful pressure washing equipment to remove dirt, stains, and buildup from concrete, asphalt, and other driveway materials. Our experts know how to tackle tough stains while preserving the integrity of your driveway. A clean driveway not only adds curb appeal but also extends the life of the surface, helping you avoid costly repairs.
Why Choose Wash Pros LLC?
Expert Technicians: Our team is highly trained in the latest exterior cleaning techniques and equipped with advanced tools to handle any job.
Eco-Friendly Solutions: We prioritize the use of environmentally safe cleaning solutions that protect both your property and the planet.
Affordable Rates: We offer competitive pricing for all our services, ensuring that you get the best value for your investment.
Customer Satisfaction: We take pride in delivering exceptional customer service and top-notch results with every project.
Reliable & Efficient: We work quickly and efficiently to get the job done, allowing you to enjoy a clean and well-maintained property without any hassle.
Get in Touch with Wash Pros LLC Today!
If you’re looking for reliable exterior cleaning services in East Providence, look no further than Wash Pros LLC. Whether you need gutter cleaning, solar panel cleaning, driveway cleaning, or a comprehensive exterior cleaning, our team is here to provide top-quality service that exceeds your expectations.
For more information or to schedule a service, contact us at +1 (401) 340-9811 or visit us at 39 Unity Avenue, East Providence, RI 02914. Let us help you keep your property looking its best with our expert cleaning services!1 -
BEST CRYPTO RECOVERY EXPERT- OFFERING SOLUTIONS FOR STOLEN CRYPTO ASSETS/ VISIT TRUST GEEKS HACK EXPERT
In today’s digital age, scams in the crypto space are becoming increasingly sophisticated. Even experienced users can be deceived by what appear to be legitimate update prompts or wallet notifications.In my case, it all started with what looked like a routine wallet update notification. I received an email that appeared to come from the official source of my XRP wallet provider. It was well-crafted, complete with the company's branding, tone, and even security warnings urging users to act quickly to prevent potential vulnerabilities. The message informed me that a mandatory security update was required to continue using the wallet, with a direct link to download the latest version.Wanting to stay ahead on security and seeing no red flags at first glance, I clicked the link and followed the update process. The website I was taken to was a near-perfect replica of the actual wallet site same layout, same logos, and even a live chat box that appeared to respond like a real support agent. It asked me to enter my wallet credentials, including my recovery phrase, under the guise of syncing my existing wallet to the new version. Trusting that this was a legitimate procedure, I complied. Within minutes, my wallet was drained.I refreshed my wallet balance out of instinct and watched in real time as my 650K XRP disappeared, transferred through a series of unknown addresses. The sickening realization hit: I had been tricked into handing over access to my assets. The email, the website, the entire update process it was all part of a well-coordinated phishing scam. After the initial shock, I began researching recovery options and came across TRUST GEEKS HACK EXPERT Web Site h t tp s:// trust geeks hack expert . c o m / , a firm that specializes in tracing and recovering stolen cryptocurrency. Their team is well-versed in the intricacies of blockchain technology and has a strong track record of helping victims reclaim their digital assets. From the moment I contacted them, their professionalism and confidence gave me a glimmer of hope in an otherwise bleak situation.They began by meticulously tracking the movement of my XRP across multiple wallets and exchanges. XRP poses unique challenges for traceability due to its blockchain structure, which while public is difficult to interpret without specialized tools and experience. Most recovery firms might have declared the situation a lost cause, but TRUST GEEKS HACK EXPERT leveraged their expertise, contacts, and timing to turn the situation around. In the end, they successfully recovered a significant portion of my stolen funds, TRUST GEEKS HACK EXPERT support team is available W e b Si te. w w w :// trust geeks hack expert . c o m/ ( E- m a i l: Trust geekshackexpert @ f a s t s e r v i c e . C o m) (TeleGram.Trustgeekshackexpert)2 -
Innovative Bitcoin Recovery Solutions - How CRC is Revolutionizing Scam Recovery
Breakthrough Methods for Bitcoin Recovery
As cryptocurrency scams become more sophisticated, CipherRescue Chain (CRC) has developed cutting-edge techniques to recover stolen Bitcoin that set new industry standards:
1. Smart Contract Exploit Reversal
Deploys counter-exploit protocols
Utilizes time-delay transaction analysis
Implements blockchain-level interventions
2. AI-Powered Forensic Tracking
Machine learning wallet clustering
Predictive movement algorithms
Cross-exchange behavior mapping
3. Legal Pressure Strategies
Real-time asset freezing technology
Multi-jurisdictional seizure orders
Exchange compliance enforcement
Why CRC Leads in Bitcoin Recovery Innovation
1. Certified Cutting-Edge Technology
Patent-pending recovery algorithms
Blockchain Intelligence Group partnership
Regular technology audits by Kaspersky Labs
2. Transparent & Ethical Operations
Flat 12% recovery fee structure
14-day action guarantee
No hidden costs
Full legal compliance documentation
3. Unmatched Success Metrics
94% success rate for recent scams
$420+ million recovered since 2019
3,200+ wallets successfully traced
78% faster recovery times than industry average
The CRC Recovery Process
Phase 1: Digital Triage (48-72 Hours)
Blockchain snapshot analysis
Threat actor profiling
Recovery probability assessment
Phase 2: Active Recovery (7-21 Days)
Smart contract interventions
Exchange coordination
Dark web monitoring
Legal pressure campaigns
Phase 3: Asset Return (3-14 Days)
Multi-signature escrow returns
Anonymity protection
Tax documentation
Security consultation
About CipherRescue Chain (CRC)
CRC represents the next generation of cryptocurrency recovery with:
Technological Advantages:
Quantum-resistant tracing systems
Behavioral analysis engines
Real-time alert networks
Expert Team Includes:
NSA cryptography specialists
Former blockchain protocol developers
International cybercrime prosecutors
Financial intelligence analysts
For advanced Bitcoin recovery solutions:
📧 Contact: cipherrescuechain @ cipherrescue .co .site
CRC maintains revolutionary standards for:
Zero-knowledge client verification
Non-invasive recovery methods
Continuous technology updates
Global regulatory cooperation
Having developed 17 proprietary recovery techniques in the past three years alone, CRC continues to redefine what's possible in cryptocurrency recovery. Their combination of technological innovation and legal expertise provides scam victims with recovery options that simply didn't exist until recently.
Note: While CRC's methods are groundbreaking, they maintain complete transparency about each case's realistic recovery potential during free initial consultations.2 -
DIGITAL TECH GUARD RECOVERY - THE BEST EXPERTS FOR BITCOIN AND CRYPTO
Years of hard-earned savings vanished in mere minutes when I lost 7.1 BTC to a phishing scam. It felt like a nightmare as I clicked on a fraudulent email that closely mimicked my crypto exchange, unknowingly surrendering my wallet credentials. Panic set in, and I was overwhelmed with shame and regret. I immediately reported the theft to the authorities, but they emphasized the grim reality: Bitcoin transactions are irreversible making recovery nearly impossible. Desperate for a solution, I turned to Digital Tech Guard Recovery, known for Bitcoin and cryptocurrency scam recovery. What impressed me most was their commitment to transparency. They clearly outlined the odds of recovery upfront, emphasizing that while success was not guaranteed, they would exert relentless effort on my behalf. To my astonishment, within just three days, their dedicated team meticulously dissected the phishing infrastructure. They traced my stolen BTC through a complex web of layered wallets and mixers, collaborating with global exchanges and legal teams to freeze the stolen funds. Throughout the process, I received regular updates, which helped balance my hope with a realistic understanding of the situation. Miraculously, they managed to recover all 7.1 BTC, an incredible achievement considering the sophistication of the scam. Their contingency-based fee structure and ethical approach, requiring no upfront costs, made the outcome even more rewarding. Digital Tech Guard Recovery’s strengths lie in their technical precision, extensive global network, and a steadfast refusal to exploit victims’ desperation. This restored my faith in recovery efforts. This has not only taught me to be more cautious online but also showed me the value of professional, ethical recovery services. While the world of cryptocurrency is full of risks, knowing that there are trustworthy experts out there gives me hope for the future.
WhatsApp: +1 (443) 859 - 2886 Email @ digital tech guard . com
Telegram: digital tech guard . com Website link: digital tech guard . com2 -
Betafort Recovery follows a systematic approach to ensure the best chance of recovering stolen funds. Here are the steps they took to help me:
1. Initial Contact and Case Assessment
I contacted Betafort Recovery via email and WhatsApp, explaining the situation in detail. They responded quickly, requesting specific information to assess the theft. This included:
- Details of the stolen transaction
- The wallet addresses involved
- Any communication or evidence related to the scam
2. Verification and Agreement
Once they reviewed my case, Betafort Recovery confirmed that they could assist in the recovery. They provided a service agreement outlining the recovery process, confidentiality terms, and their fee structure based on the amount recovered. I reviewed and signed the agreement, reassured by their transparent and professional approach.
3. In-Depth Investigation
The firm began by conducting a thorough investigation to trace the stolen funds. This involved:
- Analyzing the blockchain to track the movement of the stolen assets
- Identifying the destination wallet and any subsequent transactions
- Utilizing advanced forensic tools to uncover patterns and connections
4. Recovery Strategies
Once they gathered sufficient information, Betafort Recovery implemented various strategies to recover the stolen money:
- Negotiation: They sometimes engaged directly with the perpetrators, using their expertise to negotiate the return of the funds.
- Technical Exploits: The team exploited vulnerabilities in the scammers’ systems to regain access to the stolen assets.
- Collaborative Efforts: When necessary, they collaborated with other cybersecurity experts and legal authorities to enhance the recovery process.
5. Successful Recovery
After several days of diligent work, Betafort Recovery successfully recovered my stolen funds. They transferred the recovered money back to a secure wallet that I controlled. Their professionalism and expertise were evident throughout the process, and I was immensely grateful for their assistance.5 -
The Best Bitcoin Recovery Expert to Recover Scammed Bitcoin – Visit CryptoChain Global Track
When cryptocurrency scams leave victims devastated, CryptoChain Global Track delivers professional recovery solutions through certified blockchain forensic specialists. Their team of licensed investigators employs advanced techniques to trace and recover stolen Bitcoin, providing legitimate hope for victims of fraudulent schemes.
CryptoChain Global Track's recovery process utilizes cutting-edge blockchain analysis to follow digital transaction trails across wallets and exchanges. Their forensic experts examine transaction patterns, identify wallet clusters, and pinpoint recovery opportunities through sophisticated tracking technology. This technical approach is enhanced by legal strategies when recoverable funds are located on regulated platforms.
Clients benefit from transparent operations including a success-based fee structure, ensuring payment only occurs upon fund recovery. The team maintains strict confidentiality protocols while providing regular case updates throughout the investigation. Their rapid response system prioritizes new cases to maximize recovery potential before scammers can obscure the funds' trail.
Contact the Bitcoin recovery specialists today:
Email: [ cryptochainglobaltrack @cryptochain .co .site ]
WhatsApp: +44 7 7 6 8 7 6 1 5 6 92 -
This year I and two friends joined modelling competition for uni students called SCUDEM. We are modelling refugee settlements and the crime rate in Uganda. I try to lead the group as the previous year and we changed one team member. The model is written in Julia and it is 2k of working lines after week, we work on it in our spare time.
However, one friend who hasn’t done any bigger project in the past or wasn’t programming for money disagree with the workflow. He prefers doing some small models separately. He doesn’t write clear code and it is difficult to read it afterwards. His ideas are good, but he likes more to talk about the problems than straight code them down in the way that we can use it in the bigger structure.
Do you any ideas on how to motivate him to take part in the collective workflow? I feel that working separately is rather contra-productive.2 -
HOW TO AVOID CRYPTOCURRENCY SCAM HIRE DUNAMIS CYBER SOLUTION
I'm really sorry to hear about your experience with the Bitcoin theft, but it's great to hear that you were able to recover a significant portion of your funds with the help of DUNAMIS CYBER SOLUTION Recovery Team. It must have been an incredibly stressful and emotional journey, but your story shows the power of persistence and seeking help from trusted professionals.If you'd like to reach out to DUNAMIS CYBER SOLUTION Recovery Team again, here's an example of how you might structure your message:**Subject:** Gratitude and Request for Further Assistance Dear DUNAMIS CYBER SOLUTION Recovery Team,I hope this message finds you well. I wanted to take a moment to express my immense gratitude for your help during the difficult time when I lost my life savings to a Bitcoin hack. Thanks to your team's expertise, particularly Sarah's support throughout the process, I was able to recover 80% of my stolen funds. I can't overstate how much this has meant to me—not only financially but emotionally as well.Your professionalism, transparency, and dedication have truly restored my faith in the cybersecurity community. I feel much more confident in my investments moving forward, and I intend to diversify my portfolio as I learned valuable lessons throughout this experience.If there are any further recommendations or actions I should take regarding my recovery or securing my assets, I would appreciate your advice. Additionally, if there's anything I can do to assist you or share my positive experience with others who might be in similar situations, please let me know.Once again, thank you for your hard work and kindness. I will always be grateful for your support.
+13433030545
7 -
Reliable Home Maintenance and Renovation Services in Stamford, CT
At Handyman Services Maintenance & Remodeling, located at 750 E Main St, Stamford, CT, we provide comprehensive home and property maintenance, as well as renovation services for homeowners in Stamford and the surrounding areas. Whether you're looking for home maintenance near me, property maintenance near me, home renovation near me, or searching for a general contractor near me, our expert team is here to help. We offer professional, efficient, and affordable solutions to keep your home in top condition and make your renovation dreams come true.
Home Maintenance Near Me: Keep Your Home in Excellent Shape
Regular home maintenance is essential to prevent small problems from turning into expensive repairs. If you're searching for home maintenance near me, look no further than Handyman Services Maintenance & Remodeling. We provide a wide range of maintenance services designed to keep your home safe, comfortable, and functional. From seasonal tasks like gutter cleaning and HVAC maintenance to routine inspections and small repairs, we take care of all your home maintenance needs. With our help, you can rest easy knowing your home is well-maintained and ready for anything.
Property Maintenance Near Me: For Homes and Commercial Properties
Whether you own a residential or commercial property, keeping it in top shape requires regular maintenance. If you're looking for property maintenance near me, Handyman Services Maintenance & Remodeling has you covered. Our property maintenance services are designed to address the unique needs of your property, including landscaping, cleaning, general repairs, and more. We work with property owners and managers to ensure that every aspect of your property is well-maintained, whether it’s handling minor repairs, managing exterior maintenance, or conducting regular inspections. Our goal is to help you protect your investment and create a safe, welcoming environment for tenants or residents.
Home Renovation Near Me: Transform Your Living Space
A home renovation can completely change the way you experience your space. If you're searching for home renovation near me, Handyman Services Maintenance & Remodeling is here to help you bring your vision to life. Whether you’re dreaming of a new kitchen, a spa-like bathroom, or a more open floor plan, our team of experts can guide you through every step of your renovation project. From the initial design to the final touches, we work with you to ensure that your renovation reflects your style and meets your functional needs. With our experience and attention to detail, your home renovation will be completed on time and within budget.
General Contractor Near Me: Professional Project Management
When it comes to larger renovation projects or new construction, finding the right general contractor near me is crucial. As a trusted general contractor in Stamford, CT, Handyman Services Maintenance & Remodeling offers full-service contracting for all your home improvement needs. We manage every aspect of your project, including coordinating subcontractors, securing permits, and overseeing construction. Whether you're remodeling your kitchen, adding a room, or building a new structure, we ensure that your project is completed to the highest standards. Our team works closely with you to keep your project on track and within budget while maintaining open communication throughout the process.
Why Choose Handyman Services Maintenance & Remodeling?
At Handyman Services Maintenance & Remodeling, we are dedicated to providing high-quality services and exceptional customer satisfaction. Here are some reasons why we are the go-to choice for home maintenance, property maintenance, home renovation, and general contractor services in Stamford, CT:
Experienced Team: Our team of skilled professionals has years of experience in home maintenance, renovations, and contracting, ensuring that your project is in capable hands.
Comprehensive Services: From routine maintenance and repairs to large-scale renovations and property management, we offer a wide range of services to meet your needs.2 -
Black Sheep Construction LLC: The Leading Construction Company in Holly Springs, NC
When it comes to choosing a reliable construction company, Black Sheep Construction LLC stands out as a trusted name in Holly Springs, NC, and the surrounding areas. Whether you’re planning a new build, undertaking a renovation, or require specialized construction services, our team is dedicated to delivering top-notch results with a focus on quality, reliability, and customer satisfaction. With years of experience and a commitment to excellence, Black Sheep Construction LLC is your ideal partner for all your construction needs.
Why Choose Black Sheep Construction LLC as Your Construction Company?
Experience You Can Trust
With years of experience in the construction industry, Black Sheep Construction LLC has built a reputation for being a reliable and skilled construction company. We’ve handled a variety of projects, ranging from residential builds to commercial developments, and have a proven track record of delivering high-quality work on time and within budget. Our team has the expertise to manage all aspects of the construction process, ensuring that your project runs smoothly from start to finish.
Comprehensive Services
As a full-service construction company, we offer a wide range of services to meet all your construction needs. Whether you’re building a custom home, renovating your existing space, or working on a commercial property, our team can handle every aspect of the project, including design, planning, and execution. We provide services that include but are not limited to:
New Construction
If you're dreaming of a brand-new home or commercial property, Black Sheep Construction LLC is here to make that dream a reality. From site preparation to the final coat of paint, we manage every detail of the construction process. Our team works closely with you to ensure that your vision is brought to life, and we make sure all safety and building codes are strictly followed.
Home Renovations and Remodeling
At Black Sheep Construction LLC, we understand that your home is a reflection of your style and needs. Whether you're renovating your kitchen, updating your bathroom, or adding a new room, our expert team ensures that your remodeling project is completed with precision and care. We focus on bringing your vision to life while improving the functionality and value of your home.
Commercial Construction
We also specialize in commercial construction services, helping businesses create spaces that are both functional and attractive. Whether you're opening a new retail location, building office spaces, or constructing a restaurant, we work with you every step of the way to ensure that your commercial property meets all your business requirements and design preferences.
Custom Projects and Additions
If you're looking for a custom-built feature or an addition to your property, Black Sheep Construction LLC can help. We design and build custom decks, patios, outdoor living spaces, home additions, and more. Our team will ensure that your project integrates seamlessly with your existing structure while adding unique elements that enhance both the function and appeal of your space.
Roofing and Exterior Services
As part of our comprehensive construction services, we also provide roofing, siding, and other exterior services. We help protect your investment with high-quality roofing materials and professional installation to ensure your property is safe, secure, and energy-efficient.
What Sets Us Apart from Other Construction Companies?
Quality Workmanship
At Black Sheep Construction LLC, we take pride in the quality of our work. Every project, no matter how large or small, is completed with the highest standards of craftsmanship. We only use premium materials and work with skilled professionals to ensure that every detail is perfect. When you choose us as your construction company, you can trust that we will deliver results that exceed your expectations.
Personalized Service
Unlike other large construction companies, Black Sheep Construction LLC offers a personalized approach to every project. We take the time to understand your specific needs, goals, and preferences, tailoring our services to meet your individual requirements. We work closely with you to ensure that your project reflects your vision and is completed to your satisfaction.
Transparent Communication
We believe that clear and open communication is essential to the success of any construction project. Our team will keep you informed every step of the way, from initial consultation to project completion. We provide detailed timelines, transparent pricing, and regular progress updates so you always know where your project stands.
1 -
L&L Green Landscaping, LLC – Your Trusted Partner for Lawn Care and Landscape Maintenance in Winston-Salem, NC
At L&L Green Landscaping, LLC, we take pride in transforming outdoor spaces into beautiful, healthy environments you can enjoy year-round. Located in Winston-Salem, NC, we specialize in comprehensive lawn care services, expert landscape maintenance, and precise hedge trimming tailored to meet the unique needs of each property.
Our Lawn Care Services
A lush, green lawn is the cornerstone of any stunning landscape. Our lawn care services are designed to keep your grass healthy, vibrant, and weed-free. Whether you need regular mowing, fertilization, aeration, or pest control, our experienced team uses the latest techniques and environmentally friendly products to ensure your lawn stays in top shape throughout every season.
Comprehensive Landscape Maintenance
Beyond the lawn, we provide thorough landscape maintenance that enhances the overall beauty of your property. From mulching and planting to irrigation management and seasonal clean-ups, our team handles all aspects of keeping your landscape thriving. We work closely with you to develop a maintenance plan that fits your schedule and budget, ensuring your outdoor space always looks its best.
Professional Hedge Trimming
Well-maintained hedges add structure and elegance to your landscape. Our skilled professionals deliver expert hedge trimming services that shape and sculpt your shrubs with precision and care. Regular trimming not only improves aesthetics but also promotes healthy growth and prevents overgrowth, keeping your property neat and inviting.
Why Choose L&L Green Landscaping, LLC?
Experienced Professionals: Our team is highly trained and dedicated to delivering quality workmanship on every project.
Customer-Focused Service: We listen to your needs and tailor our services to exceed your expectations.
Affordable Pricing: Enjoy competitive rates without compromising on quality.
Eco-Friendly Practices: We prioritize sustainable methods to protect your lawn and the environment.
Locally Owned: Proudly serving Winston-Salem, NC, with a deep understanding of the local climate and landscape challenges.
Contact Us
Ready to enhance your outdoor space with expert lawn care, landscape maintenance, and hedge trimming? Reach out to L&L Green Landscaping, LLC today!
Address: Winston-Salem, NC 27106
Phone: 336-403-5748
Let us help you create the lawn and landscape you’ve always wanted. Call now for a free consultation!2 -
Best Crypto Recovery Specialists: How to Recover Stolen Cryptocurrency – Visit CryptoChain Global Track
Professional cryptocurrency recovery services have become essential in today's digital asset landscape. CryptoChain Global Track stands as a leading solution for victims of crypto theft, offering expert recovery services through certified blockchain forensic specialists with a demonstrated track record of successful fund retrieval.
CryptoChain Global Track's recovery methodology begins with comprehensive blockchain forensic analysis. Their team of licensed investigators examines transaction histories across multiple wallets and exchanges, utilizing advanced tracking technology to follow the digital trail of stolen Bitcoin, Ethereum, and other major cryptocurrencies. This technical approach identifies critical recovery points that untrained individuals typically miss, combining forensic tracing with legal strategies when recoverable funds are located on regulated platforms.
The company's transparent operations include a performance-based fee structure, ensuring clients only pay upon successful recovery. Their specialists maintain strict confidentiality protocols while providing regular case updates, keeping clients informed throughout the investigation process. The team prioritizes rapid response to new cases, understanding that timely intervention significantly increases recovery success rates before scammers can obscure the funds' trail through mixing services or cross-chain transfers.
CryptoChain Global Track's experts specialize in complex recovery scenarios, including investment frauds, exchange hacks, phishing attacks, and DeFi exploits. Their deep understanding of blockchain transaction patterns and scam behaviors enables them to develop effective counter-strategies for fund retrieval. The company's professional certifications and ethical standards provide assurance in an industry where questionable operators frequently emerge.
For those seeking professional cryptocurrency recovery assistance, CryptoChain Global Track offers complimentary initial consultations. Their experts provide realistic assessments of recovery potential and explain the investigative process in clear, understandable terms.
With CryptoChain Global Track, victims of cryptocurrency theft gain access to premier recovery services that combine technical expertise with professional investigative methods. Their certified team delivers legitimate solutions for reclaiming stolen digital assets in today's complex crypto environment.5 -
North Canton Prowash: Expert Exterior House Washing in Akron and Pressure Washing for Commercial Properties
At North Canton Prowash, we understand how important it is to maintain the cleanliness and appearance of your property. Whether you're in need of exterior house washing in Akron or pressure washing for commercial properties, our professional team is here to provide high-quality, affordable solutions that restore and protect your property’s exterior. Serving Akron, Canton, and surrounding areas, we are committed to delivering outstanding cleaning services for residential and commercial clients alike.
Why Choose North Canton Prowash?
When searching for exterior house washing in Akron or pressure washing for commercial properties, you want a service provider you can trust to get the job done right. At North Canton Prowash, we offer:
Experienced Technicians: Our team is trained and skilled in the latest pressure washing techniques, ensuring that we achieve superior results every time.
State-of-the-Art Equipment: We use advanced pressure washing and soft washing equipment that is designed to clean effectively while protecting the surfaces being cleaned.
Eco-Friendly Solutions: Our cleaning products are safe for your property and the environment, offering a gentle yet effective approach to cleaning.
Affordable and Transparent Pricing: We offer competitive rates, ensuring that our high-quality services are accessible and budget-friendly.
Our Specialized Services
Exterior House Washing Akron
Over time, your home’s exterior can accumulate dirt, mold, mildew, and algae, leading to an unsightly appearance. If you’re looking for exterior house washing in Akron, North Canton Prowash is the expert you can rely on. We use soft washing techniques to gently yet effectively clean your home’s exterior surfaces without causing damage. From siding and gutters to windows and decks, we ensure a spotless, fresh appearance.
Benefits of exterior house washing:
Removes dirt, stains, and organic growth such as mold and mildew.
Increases your home’s curb appeal and overall value.
Protects the surfaces of your home from long-term damage caused by contaminants.
Pressure Washing for Commercial Properties
For businesses, a clean exterior is essential to making a positive first impression and ensuring that your property remains safe and professional. North Canton Prowash offers expert pressure washing for commercial properties to remove dirt, grime, grease, and other buildup from a variety of surfaces, including storefronts, parking lots, sidewalks, and more. Whether you manage a retail store, office building, or industrial complex, our pressure washing services are designed to keep your property looking its best.
Advantages of pressure washing for commercial properties:
Enhances the visual appeal of your business, attracting more customers and clients.
Removes harmful contaminants that can degrade the surfaces and structure of your property.
Promotes a clean, professional image that reflects well on your business.
Why Regular Exterior House Washing and Pressure Washing for Commercial Properties Matter
Regular exterior house washing and pressure washing for commercial properties are crucial for maintaining the appearance and structural integrity of your property. By regularly removing dirt, grime, mold, and mildew, you prevent damage, enhance curb appeal, and protect your investment. A clean home or business sends a strong message to visitors, customers, and potential buyers, making it a vital part of property maintenance.
Contact North Canton Prowash Today!
For expert exterior house washing in Akron and reliable pressure washing for commercial properties, trust North Canton Prowash to provide the best cleaning solutions in the area. Our professional team is committed to delivering high-quality results that meet your needs and exceed your expectations.
Call us today at +1 (330) 957-2711 to schedule your free estimate. Let North Canton Prowash help you enhance the look and longevity of your property with our professional cleaning services!
1
