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 - "tests are important"
-
The university system is fucked.
I've been working in this industry for a few years now, but have been self taught for much longer. I'm only just starting college and I'm already angry.
What does a college degree really mean anymore? From some of the posts I've seen on devRant, it certainly doesn't ensure professional conduct, work ethic, or quality (shout out to the brave souls who deal with the lack of these daily). Companies should hire based on talent, not on a degree. Universities should focus more on real world applications or at least offer such programs for students interested in entering the workforce rather than research positions. A sizable chunk of universities' income (in the U.S. at least) comes from research and corporate sponsorships, and educating students is secondary to that. Nowadays education is treated as a business instead of a tool to create value in the world. That's what I signed up for, anyway - gaining the knowledge to create value in the world. And yet I along with many others feel so restricted, so bogged down with requirements, fees, shitty professors, and shitty university resources. There is so much knowledge out there that can be put to instant practical use - I am constantly shocked at the things left out of my college curriculum (lack of automated tests, version control, inadequate or inaccurate coverage of design patterns and philosophies) - things that are ABSOLUTELY essential to be successful in this career path.
It's wonderful that we eventually find the resources we need, or the motivation to develop essential skills, but it's sad that so many students in university lack proper direction through no fault of their own.
Fuck you, universities, for being so inflexible and consistently failing to serve your basic purpose - one of if not the most important purpose on this earth.
Fuck you, corporations, for hiring and paying based on degree. Fuck you, management, for being so ignorant about the industry you work in.
Fuck you, clients, who treat intelligent people like dirt, make unreasonable demands, pull some really shady shit, and perpetuate a damaging stereotype.
And fuck you to the developer who wrote my company's antipattern-filled, stringy-as-all hell codebase without comments. Just. Fuck you.17 -
I'm drunk and I'll probably regret this, but here's a drunken rank of things I've learned as an engineer for the past 10 years.
The best way I've advanced my career is by changing companies.
Technology stacks don't really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it's not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret overit.
There's a reason why people recommend job hunting. If I'm unsatisfied at a job, it's probably time to move on.
I've made some good, lifelong friends at companies I've worked with. I don't need to make that a requirement of every place I work. I've been perfectly happy working at places where I didn't form friendships with my coworkers and I've been unhappy at places where I made some great friends.
I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What's the worse that can happen? He fire me? I'll just pick up a new job in 2 weeks.
If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit.
pour another glass
Qualities of a good manager share a lot of qualities of a good engineer.
When I first started, I was enamored with technology and programming and computer science. I'm over it.
Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there's any recommendations, I'd seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)
Related to above, writing good proposals for changes is a great skill.
Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn't matter... except one. See below.
The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.
If I ever find myself thinking I'm the smartest person in the room, it's time to leave.
I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so little.
We should hire more interns, they're awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.
sip
Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us.
Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs. If you're not sure what you want to do, just do Java. It's a shitty programming language that's good at almost everything.
The greatest programming language ever is lisp. I should learn lisp.
For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.
Tests are important but TDD is a damn cult.
Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you'll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there's a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.
Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they've been a third party recruiter for more than 3 years, they're probably bad. The good ones typically become recruiters are large companies.
Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.
Work from home is the tits. But lack of whiteboarding sucks.37 -
At one of my former jobs, I had a four-day-week. I remember once being called on my free Friday by an agitated colleague of mine arguing that I crashed the entire application on the staging environment and I shall fix it that very day.
I refused. It was my free day after all and I had made plans. Yet I told him: OK, I take a look at it in Sunday and see what all the fuzz is all about. Because I honestly could fathom what big issue I could have caused.
On that Sunday, I realized that the feature I implemented worked as expected. And it took me two minutes to realize the problem: It was a minor thing, as it so often is: If the user was not logged in, instead of a user object, null got passed somewhere and boom -- 500 error screen. Some older feature broke due to some of my changes and I never noticed it as while I was developing I was always in a logged in state and I never bothered to test that feature as I assumed it working. Only my boss was not logged in when testing on the stage environment, and so he ran into it.
So what really pushed my buttons was:
It was not a bug. It was a regression.
Why is that distinction important?
My boss tried to guilt me into admitting that I did not deliver quality software. Yet he was the one explicitly forbidding me to write tests for that software. Well, this is what you get then! You pay in the long run by strange bugs, hotfixes, and annoyed developers. I salute you! :/
Yet I did not fix the bug right away. I could have. It would have just taken me just another two minutes again. Yet for once, instead of doing it quickly, I did it right: I, albeit unfamiliar with writing tests, searched for a way to write a test for that case. It came not easy for me as I was not accustomed to writing tests, and the solution I came up with a functional test not that ideal, as it required certain content to be in the database. But in the end, it worked good enough: I had a failing test. And then I made it pass again. That made the whole ordeal worthwhile to me. (Also the realization that that very Sunday, alone in that office, was one of the most productive since a long while really made me reflect my job choice.)
At the following Monday I just entered the office for the stand-up to declare that I fixed the regression and that I won't take responsibility for that crash on the staging environment. If you don't let me write test, don't expect me to test the entire application again and again. I don't want to ensure that the existing software doesn't break. That's what tests are for. Don't try to blame me for not having tests on critical infrastructure. And that's all I did on Monday. I have a policy to not do long hours, and when I do due to an "emergency", I will get my free time back another day. And so I went home that Monday right after the stand-up.
Do I even need to spell it out that I made a requirement for my next job to have a culture that requires testing? I did, and never looked back and I grew a lot as a developer.
I have familiarized myself with both the wonderful world of unit and acceptance testing. And deploying suddenly becomes cheap and easy. Sure, there sometimes are problems. But almost always they are related to infrastructure and not the underlying code base. (And yeah, sometimes you have randomly failing tests, but that's for another rant.)9 -
rant? rant!
I work for a company that develops a variety of software solutions for companies of varying sizes. The company has three people in charge, and small teams that each worked on a certain project. 9 months ago I joined the company as a junior developer, and coincidentally, we also started working on our biggest project so far - an online platform for buying groceries from a variety of vendors/merchants and having them be delivered to your doorstep on the same day (hadn't been done to this scale in Estonia yet). One of the people from management joined the team working on that. The company that ordered this is coincidentally being run by one of the richest men in Estonia. The platform included both the actual website for customers to use, a logistics system for routing between the merchants, the warehouse, and the customers, as well as a bunch of mobile apps for the couriers, warehouse personnel, etc. It was built on Node.js with Hapi (for the backend stuff), Angular 2 (for all the UIs, including the apps which are run through a WebView wrapper), and PostgreSQL (for the database). The deadline for the MVP we (read: the management) gave them, but we finished it in about 7 months in a team of five.
The hours were insane, from 10 AM to 10 PM if lucky. When we weren't lucky (which was half of the time, if not more), we had to work until anywhere from 12 PM to 3 AM, sometimes even the whole night. The weekends weren't any better, for the majority of the time we had to put in even more extra hours on the weekends. Luckily, we were paid extra for them, but the salary was no way near fair (the majority of the team earned about 1000€/mo after taxes in a country where junior developers usually earn 1500€/month). Also because of the short deadline given to us, we skipped all the important parts like writing tests, doing CI, code reviews, feature branching/PR's, etc. I tried pushing the team and the management to at least write tests and make feature branches/PRs, but the management always told me that there wasn't enough time to coordinate and work on all that, that we'll do that after launching the MVP, etc. We basically just wrote features, tested them by hand, and pushed into the "test" branch which would later get tested and merged into master.
During development, one of the other juniors managed to write the worst kind of Angular code you could imagine - enormous amounts of duplication, no reusable components (every view contained the everything used in the view, so popups and other parts that should logically be reusable were in every view separately), fuck - even the HTML was broken (the most memorable for me were the "table > tr > div > td" ones, but that's barely scratching the surface). He left a few months into the project, and we had to build upon his shit, ever so slightly trying to fix the shit he produced. This could have definitely been avoided if we did code reviews.
A month after launching the MVP for internal testing, the guy working on the logistics system had burned out and left the company (he's earning more than twice the salary he got here, happy for him, he is a great coder and an even better team player). This could have been avoided if this project had been planned better, but I can't really blame them, since it was the first project they had at this scale (even though they had given longer deadlines for projects way smaller than this).
After we finished and launched the MVP, the second guy from management joined, because he saw we needed extra help. Again I tried to push us into investing the time to write tests for the system (because at this point we had created an unstable cluster fuck of a codebase), but again to no avail. The same "no time, just test it manually for now, we'll do that later when we have time" bullshit from management.
Now, a few weeks ago, the third guy from management joined. He saw what a disaster our whole project was. Him joining was simply a blessing from the skies. He started off by writing migrations using sequelize. I talked to him about writing tests and everything, and he actually listened. He told me that I'm gonna be the one writing them, and also talked to the rest of management about it. I was overjoyed. I could actually hear the bitterness in the voices of the rest of management when they told me how to write the tests, what to test, etc. But I didn't give a flying rat's ass, I was hapi.
I was told to start off by writing a smoke test for the whole client flow using Puppeteer. I got even happier, since I was finally able to again learn new things (this stopped at about 4 or 5 months into the project).
I'm using jest as the framework and started writing the tests in TypeScript. Later I found a library called jest-extended, but it didn't have type defs, so I decided to write them and, for the first time in my life, contribute to the open source community.18 -
I've found sites like Udemy/Khanacademy/Codecademy/Brilliant/Edx to be very useful — possibly more useful than expensive education.
But they still need:
1. Better correction/update mechanisms. Human teachers make mistakes and material gets outdated, and while online teachers are rectified faster than classroom teachers, the procedure is still not optimal. Knowledge should be a bit more like a verified wiki.
2. Some have great interactive coding environments, some have great videos, some have awesome texts, some have helpful communities. None has it all. In the end, I don't want to learn a new language by writing code in my browser. It could all be integrated/synced to the point where IDEs have plugins which are synced to online videos, with tests and exercises built in, up to a social network where you could send snippets for review and add reviews to other people's code.
3. Accreditation. Some platforms offer this against payment, but I think those platforms often feel very old school (pun intended), with fixed schedules, marks and enrollments. Self paced is a must.
4. Depth is important. Current online courses are often a bit introductory. We need more advanced courses about algorithms, theoretical computer science, code design, relational algebra, category theory, etc. I get that it's about supply/demand, but we will eventually need to have those topics covered.
I do believe that for CS, full online education will eventually win from the classroom — it's still in its infancy, but has more potential to grow into correct, modern education.10 -
Recently, our team hired an arrogant trainee-junior to the team, who turned out to be mean towards the other developers and in a habit of publicly mocking their opinions and going as far as cursing at them. He steals credit and insults others. He openly admits he's an offensive person and not a team player. When someone from the team speaks, he might break into laughter and say demeaning sentences like "that's so irrelevant oh my god did you really say that? hahaha". Our team consists of polite and introverted engineers who cannot stand up to bullies. Normally this kind of behavior won't be suitable even if you work in a burger shop especially not from a trainee. Let alone trainee, the rude behavior of Linus Torvalds was not tolerated, despite him being in the top position and a recognized star talent in the IT field.
I personally no longer feel comfortable speaking up during teams meetings or in the slack team chat. I'm afraid my opinions will be ridiculed or ashamed - likely will be called "irrelevant". I respond only if I'm directly addressed. We have important features coming up, requested by the customer, but I feel discouraged to publicly ask questions - I sort of feel having to regress into contributing less for the product. I also witness that other younger developers speak less now in meetings and team chat. Feels like everyone is hiding under the bed. Our product team used to have friendly working atmosphere but now the atmosphere is a bit like we're not a team anymore but a knot.
Lesson I learnt from here is: There is a reason why some companies have personality tests and HR interviews. Our proud short boarding process was consisting of a single technical interview. Perhaps at least a team interview should be held before hiring a person to the team, or the new hire should at least be posed a question: are you a team player? Technical skills can be taught more easily than social skills. If some youngster is unable to communicate in a civilized manner for even five minutes, it should raise some red flags. Otherwise you will end up with people who got refused from other companies which knew better.22 -
Casual workday be like:
Project manager: It is important we deliver these features.
Me & Coworker: Sounds reasonable, here is how long we need, roughly.
Mgr: Well, the deadline is already set and the contract is signed and written.
M&C: Ummm...
Mgr: Also, while we are hosting the application, we are not paid for operational cost, so make sure to optimise the crap out of it immediatly. Preferably while developing the features.
(A wild architect appears): Also everything has to be built on cans and kubernuts, with rectangular ui and bootstyling and with these internally developed backend frameworks NOBODY tests. Coroporate policy you know.
(A wilder division CEO appears on meeting): Also we are rolling out code KPI's across the organisation. Everyone is expected to Focus on documentation, test coverage and there is now mandatory SonarQube scanning of repos. ZERO DEFECTS PEOPLE
M&C: ...
(Wildest Salesteam appears): By the way we sold the application to these other customers, they love feature XYZ and must have it.
M&C: It does not have feature XYZ
Mgr: It will have feature XYZ
M&C: Allright so with all the extra funding from the sales, we need to hire atleast one Machine learning guy, an extra frontend specialist a developer and maybe funnel some of the funding into slacking the operational budget in the start.
Animated Suit *Railing a line of coke from his gold plated ihpone 15*: What funding? Get to work. Also your havent been super sharp with your time registration.
2 -
(Best read while listening to AEnima by Tool, loudly)
Dear Current Workplace,
Fuck you, for the reasons enumerated below.
Fuck your enterprise grey blue offices, the stifling warm air of a hundreds of bodies and sub par "development laptops".
Fuck your shitty carbonated water machines which were a cost saving measure over decent drinkable water.
Fuck your fake "flexi time", "you can do home office whenever you want" bullshit. You're still inviting me to mandatory meetings at 09:00 regularly.
Fuck your shitty, in house, third part IT provider sister company. They're the worst of all worlds. If it was in company, we'd get to give out to them, if it was an external company we'd fire them. And yes, when I quit I will quote the dumpster fire that is our corporate VPN as a major factor.
Fuck your cheery, bland, enterprise communication. Words coming under the corporate letterhead seem to lose all association with meaning. Agile, communication, open are things you write and profess to respect, but it seems your totally lack understanding of their meaning.
Fuck your client driven development. Sometime you actually have to fix the foundations before you can actually add new features. And fuck you management who keep on asking "why are there so many bugs and why is it always taking longer to deliver new releases". Because of you, you fucknuts, Because you can't say "NO" to the customer. Because you never listen to your own experienced developers.
Fuck your bullshit "code quality is important to us" line. If it's so important, then let us fix the heap of shit you're selling so that it works like a quasi functional program.
Fuck you development environment which has 250 projects in a single VS solution. Which takes 5mins plus to compile on a quad core i7 with 32 gb of ram.
Fuck this bullshit ball of mud "architecture". I spend most of my time trying to figure out where the logic should go and the rest of the time writing converters between different components. All because 7 years ago some idiot "architect" made a decision that they didn't have to live with.
Actually, fuck that guy in particular. Yeah, that guy who was the responsible architect for the project for 4 years and not once opened the solution to look a the code.
Fuck the manual testing of every business process. Manual setup of the entities takes 10mins plus and then when you run, boom either no message or some bullshit error code.
Fuck the antiquated technology choices which cause loads of bugs and slow down development. Fuck you for forcing me to do manual tests of another developers code at 20:00 on a Friday night because we can't get our act together to do this automatically.
Fuck you for making sure it's very clear I'm never going to be anything but a code monkey in this structure. Managers are brought in from outside.
Fuck you for being surprised that it's hard to hire competent developers in this second rate, overpriced town. It's hard to hire anywhere but this bland shithole would have anyone with half a clue running away at top speed.
Fuck you for valuing long hours and loyalty over actual performance. That one guy who everyone hated and was totally incompetent couldn't even get himself fired. He had to quit.
Fuck you for your mediocrity.
Fuck you for being the only employer for my skill-set in the region; paying just well enough that changing jobs locally doesn't make sense, but badly enough that it's difficult to move.
Fuck you for being the stable "safe" option so that any move is "risky".
Fuck your mediocrity.
Fuck you for being something I think about when I'm not at work. Not only is it shit from 9 to 5 you manage to suck the joy out of everything else in my life as well?
Fuck you for making me feel like a worse developer every day I work here. Fuck you for making every day feel like a personal and professional failure. Fuck you for making me seriously leave a career I love for something, anything else.
Fuck you for making the most I can hope for when I get up in the morning is to just make it until the night.6 -
Happens every day:
"could you please fix those bugs ASAP? Testers are waiting for it"
*resolve the issue and inform the requester*
(two weeks later)
"Thanks, I'll inform the testers they can begin their tests"
Ugh, how ASAP makes everything seem so urgent and important
-
A discussion about writing tests for frontend applications.
Context: my frontend coworkers don't write tests, at all. Yeah, really. Our testing process is very manual. We test manually when developing. We test manually when reviewing code. After merging, the application is deployed to a staging server and the design team does a QA Sprint. Lots of manual testing and some bugs still crawl by.
So I decided to start pushing my coworkers to start writing tests. One of the reasons I constantly hear them say to not write tests in the frontend is: "It's not worth the time, because design keeps changing, which means we have to take time to fix the tests. Time that we usually don't have."
I've been thinking about this a lot and it seems to me that this is more related to bad tests than to tests in general.
Tests should not break with design changes (small changes at least). They should test funcionality, not how things look. A form should not break if the submit button's style changes, so why should its tests fail? I also think that tests help save time, as they prevent some back and forth because of bugs.
Writing good tests is the hard part. Tests that cover what's really important and aren't frail and break with things that shouldn't break them. What (and how) should we test? And what shouldn't be tested?
Writing them fast is another hard thing. Are you doing it right if they take more time to write than the actual code?
What do you think about this? Do you write tests for your frontend applications? What do you test? How much time do you spend writing tests? What are your testing tools/frameworks?6 -
Oh, my boss never fails to amaze me...
Every fucking time he talks about changes to someone outside the team he says something like:
"we always gotta be prepared for breaks because it is always like that, you change something here and when you see you broke something there"
All in a manner that *tries* to bring tensions down.
And every time I explain to him why the fuck automated tests are important and wtf they do he always manage to understand it as a waste of time...
I'm never gonna give up, motherfucker.2 -
Why is source code so crappy? May career is not the longest, buy in my 8 years I talked to so many developers and every one told me how important quality, standards, tests and architecture are - but every codebase I've seen is lacking all of it. Everything is running on constant live support.
I don't get it. It is like I live in a world where everyone does know what has to be done, but no-one does it. I suspect it is because people are lazy, lying and won't say no but that's also not a world I want to live in.24 -
👍 https://github.com/auchenberg/...
"If you want your software to be adopted by Americans, good tests scores from the CI server are very important. Volkswagen uses a defeat device to detect when it's being tested in a CI server and will automatically reduce errors to an acceptable level for the tests to pass. This will allow you to spend less time worrying about testing and more time enjoying the good life as a trustful software developer."rant malice driven development devops task failed successfully volkswagen emissions continuous integration satire gone wrong troll10 -
A beautiful gem ticket from a manager today:
Title: "Check Stripe "Snippet APK" that might help for integration into the app to track pricing easily."
Alright, it's very clear this particular individual has no idea what they are talking about, but, I'll give them the benefit of the doubt and read the ticket description!
Description: "I think stripe offers some sort of snippet that can be implemented into the app similar to FB pixel. (I could be wrong here..) let’s briefly check this, if it’s of value for our A/B-Tests → e.g. if it makes your life easier = good otherwise it’s not important."
...
I might as well replace the management team with GPT-3 at this point.
Or even just a simple Markov chain; that'd probably be more accurate if you want to match the ticket quality more exactly of this ABSOLUTE PILE OF HORSESHIT WASTE OF TIME I GET FED EVERY SINGLE FUCKING DAY.
🤡4 -
My matryoshka keeping me company, because of course when you are alone testing a last hour deployment. shit will happen
5 -
Overengineering. Finding the right point between overdesign and no design at all. That's where fancy languages and unusual patterns being hit by real world problems, and you need to deal with all that utter mess you created being architecture astronaut. Isn't that funny how you realize that another fancy tool is fundamentally incompatible with the task you need to solve, and you realize it after a month of writing workarounds and hacks.
But on the other hand, duct tape slacking becomes a mess even quicker.
Not being able to promote projects. You may code the shit out of side project and still get zero response, absolutely no impact. That's why your side projects often becomes abandoned.
Oversleeping. You thought tomorrow was productive day, but you wake up oversleeped, your head aches, your mind is not clear and you be like "fuck that, I'm staying in bed watching memes all day". But there's job that has to be done, and that bothers you.
Writing tests. Oh, words can't describe how much I hate writing tests, any kind of. I tried testing so many times in high school, at university, even at production, but it seems like my mind is just doesn't accept it. I know that testing is fundamentally important, but my mind collapses every time I try to write a single fucking test, resulting in terrible headache. I don't know why it's like that, but it is, and I better repl the shit out of pure function than write fucking tests. -
I really want to stress that we should add the ticket for adding the missing test cases in *this* sprint and not postpone it any further.
-- "Isn't there something more important to be added instead?"
There. ALWAYS. Is. Something. MORE. Important. The real problem was that we implement the test cases in the past to begin violating our definition of done. We have to fix and one point and we have to own that decision as nobody else will care about passing tests and test coverage. It's our job to care for that.
Yes, we can instead focus on all the other high-priorities task that should have been done yesterday, yet that won't change the fact that large part our codebase will remain an untested messy blackbox just asking for weird bugs and wild goosechases in the future.
Don't hide behind "high priority tasks". A job is done when it is fucking done and tests are part of that. Hurrying from one important task to the next will just mean we'll never do it. There is no better time than right now.
If code coverage got left behind in the past, then we'll have to suck it up in order to fix it as soon as possible, otherwise we'll just suck forever.rant workflow priorities something more important agile own your shit developer sprint planning sprint testing test1 -
Objective-C is an awful programming language that nobody should ever use for anything.
Also you dont know how important unit tests are until you have to deliver an enterprise level application without them.
Biggest one Ive learned recently, managers will promise you the earth to keep you around as long as possible, and they will go back on every promise and call it a "change in priority" -
I have a co-worker who won’t stop “refactoring” our codebase. He will go on a long tangent — under the guise of working on a proper story — and then reveal proudly after a few days that he now introduced a new middle-layer into the code which will help us such and such.
I have never seen any benefit from this. I think sometimes cleaning up variable names is nice, but a lot of the things just add noise and complexity. He’s a junior dev, I’m a senior dev. My progressional opinion is that he is doing a bad job. Management doesn’t know the full extent and the lead programmer scolds him every now and then but in the end let’s the code changes pass code review. “It has already been implemented so what’s the harm”.
Then the rest of us are stuck with horrible merge conflicts. I recently noticed that some new business-important unit tests that I wrote were mysteriously gone. Oops — lost in some misguided refactoring I guess. I’m assuming they were failing after the refactor, so clearly they had to go... Fortunately the underlying logic still works I think.
His main tactic in all of this seems to be to just use argumentative stamina. He will lose discussion after discussion but doesn’t seem to care. He’ll just talk and talk. And the in the end the lead tech gives in. And/or doesn’t have the energy to catch the error introduced.
I swear, the company would be better off without him. Maybe even better if we keep paying him but he just cleans the toilets instead. Sometimes I almost believes he gets up in the morning to come to work and just fuck with people all day.2 -
C# has become shit.
I work since 2013 with C# (and the whole .NET stack) and I was so happy with it.
Compared to Java it was much lean, compared to all shitty new edge framework that looked like a unfinished midschool project, it was solid and mature.
It had his problems,. but compared to everything else that I tried, it was the quickes and most robust solution.
All went in a downhill leading to a rotten shit lake when all this javascript frenzy began to pop up and everyone wanted to get on the trendy bandwagon.
First they introduced MVC, then .NET Core, now .NET 5-6-7-8.
Now I'm literally engulfed with all these tiny bits of terror javascript provoked and they've implemented in all the parts of their framework.
Everything has to be null checked at compilation time, everything pops up errors "this might be nulll heyyyyy it's important put a ! or a ? you silly!!!" everywhere.
There are JS-ish constructs and syntax shit everywhere.
It's unbearable.
I avoid js like a plague whenever I can (and you know it's not a luxury you get often in the current state of a developer life) and they're slowly turning in some shit js hybrid deformed creature
I miss 2013-2018, when it wass all up to me to decide what to do with code and I did some big projects for big companies (200-300k lines of code without unit tests and yes for me it's a lot) without all this hassle.
I literally feel the need c# had to have some compiler rule you can quickly switch called "Senior developer mode" that doesn't trigger alarms and bells for every little stupid thing.
I'm sure you can' turn on/off these craps by some hidden settings somewhere, but heck I feel the need to be an option, so whoever keeps it on should see a big red label on top of the IDE saying "YOU HAVE RETARDED DEV MODE ON"
So they get a reminder that if they use it they are either some fresh junior dev or they are mentally challenged.17 -
Any code should be simple and easy to read / understand.
I just reworked an old stored SQL proc.
Went from 102 lines to ... 10.
More I code, more I realize that maintainability, readability, comments and unit tests are more important than actual code. (And performances ofc. But if 1 line code does it in 1 second and 500 lines code in 0.2 seconds, I’ll take one line solution every time)4 -
To me this is one of the most interesting topics. I always dream about creating the perfect programming class (not aimed at absolute beginners though, in the end there should be some usable software artifact), because I had to teach myself at least half of the skills I need everyday.
The goal of the class, which has at least to be a semester long, is to be able to create industry-ready software projects with a distributed architecture (i.e. client-server).
The important thing is to have a central theme over the whole class. Which means you should go through the software lifecycle at least once.
Let's say the class consists of 10 Units à ~3 hours (with breaks ofc) and takes place once a week, because that is the absolute minimum time to enable the students to do their homework.
1. Project setup, explanation of the whole toolchain. Init repositories, create SSH keys for github/bitbucket, git crash course (provide a cheat sheet).
Create a hello world web app with $framework. Run the web server, let the students poke around with it. Let them push their projects to their repositories.
The remainder of the lesson is for Q&A, technical problems and so on.
Homework: Read the docs of $framework. Do some commits, just alter the HTML & CSS a bit, give them your personal touch.
For the homework, provide a $chat channel/forum/mailing list or whatever for questions where not only the the teacher should help, but also the students help each other.
2. Setup of CI/Build automation. This is one of the hardest parts for the teacher/uni because the university must provide the necessary hardware for it, which costs money. But the students faces when they see that a push to master automatically triggers a build and deploys it to the right place where they can reach it from the web is priceless.
This is one recurring point over the whole course, as there will be more software artifacts beside the web app, which need to be added to the build process. I do not want to go deeper here, whether you use Jenkins, or Travis or whatev and Ansible or Puppet or whatev for automation. You probably have some docker container set up for this, because this is a very tedious task for initial setup, probably way out of proportion. But in the end there needs to be a running web service for every student which they can reach over a personal URL. Depending on the students interest on the topic it may be also better to setup this already before the first class starts and only introduce them to all the concepts in a theory block and do some more coding in the second half.
Homework: Use $framework to extend your web app. Make it a bit more user interactive with buttons, forms or the like. As we still have no backend here, you can output to alert or something.
3. Create a minimal backend with $backendFramework. Only to have something which speaks with the frontend so you can create API calls going back and forth. Also create a DB, relational or not. Discuss DB schema/model and answer student questions.
Homework: Create a form which gets transformed into JSON and sent to the backend, backend stores the user information in the DB and should also provide a query to view the entry.
4. Introduce mobile apps. As it would probably too much to introduce them both to iOS and Android, something like React Native (or whatever the most popular platform-agnostic framework is then) may come in handy. Do the same as with the minimal web app and add the build artifacts to CI. Also talk about getting software to the app/play store (a common question) and signing apps.
Homework: Use the view API call from the backend to show the data on the mobile. Play around with the mobile project to display it in a nice way.
5. Introduction to refactoring (yes, really), if we are really talking about JS here, mention things like typescript, flow, elm, reason and everything with types which compiles to JS. Types make it so much easier to refactor growing codebases and imho everybody should use it.
Flowtype would make it probably easier to get gradually introduced in the already existing codebase (and it plays nice with react native) but I want to be abstract here, so that is just a suggestion (and 100% typed languages such as ELM or Reason have so much nicer errors).
Also discuss other helpful tools like linters, formatters.
Homework: Introduce types to all your API calls and some important functions.
6. Introduction to (unit) tests. Similar as above.
Homework: Write a unit test for your form.
(TBC)4 -
Today I read a great article on mutation tests, how to use and why they are important. It looks like a great thing, but...
I have never wrote any unit test in any of my jobs. Nobody in my workplace does that. And now it seems like 100% test coverage is not enough (I remind you, that I have 0%), they all should mutate to check if the quality of unit tests is high.
It seems that I'm left behind. I played with tests in my free time, but it seems the more you write them, the better you get at it, so I should be writing them in my job, where I code most of my time. Not only that, of course, I would also want to ensure that what I'm working on is bug-free.
Still, it will be impossible to introduce unit tests to my project, because they are novelty to the whole team and our deadlines are tight. The other thing is, we are supposed to write minimum viable product, as it is a demo for a client, and every line of code matters. Some might say that we are delusional that after we finish demo we will make things the right way.
Did any one of you have a situation like this? How did you change your boss and team's mind?8 -
Soooo I am an apprentice who just started his third year. Everybody in my team (3 ppl) left for better jobs.
I am now basically front and backend lead, teaching four new employees our restapi, web and javafx frontend.
At the same time I fix errors happening in production and develop new features.
I guess there are many great rants to come, so stay tuned :D
Going to write about things like tests that got disabled months ago after migrating to gradle, no documentation, finding out how to set up new development workstations with an outdated script missing important steps, management, print debugging in production and much more :)
Oh and it is not that bad, I learned more in the last month than in the two years before. (not saying my team was bad)1 -
This is why we can never have enough software developers
It's true. No matter how many people learn to program, there will never be enough people who know how to program. They don't have to be very good at it either. It is now a required skill.
Minimum wage in first world countries is way above 5$ per hour. A Raspberry PI 3B costs 40$, or at most 1 day of work for the worst paid jobs. And it will run for years, and do routine tasks up to thousands of times faster than any employee. With that, the only excuse that people still do routine tasks, is the inaccessibility of coder time.
Solution: everybody should know how to write code, even at the simplest level.
Blue-collar jobs: they will be obsolete. Many of them already are. The rest are waiting for their turn.
Marketing people - marketing is online. They need to know how to set up proper tracking in JS, how to get atomic data in some form of SQL, how to script some automated adjustments via APIs for ad budgets, etc. Right now they're asking for developers to do that. If they learn to do that, they'll be an independent, valued asset. Employers WILL ask for this as a bonus.
Project Managers - to manage developers, they need to know what they do. They need to know code, they have to know their way around repositories.
QA staff - scripted tests are the best, most efficient tests.
Finance - dropping Excel in favor of R with Markdown, Jupyter Notebooks or whatever, is much more efficient. Customizing / integrating their ERP with external systems is also something they could do if they knew how to code.
Operations / Category Management - most of it would go obsolete with more companies adopting APIs as a way to exchange important information, rather than phone calls and e-mails.
Who would not be replaced or who wouldn't benefit from programming? Innovative artists.
A lot of it might not be now now, but the current generation will see it already in their career.
If we educate people today, without advanced computer skills and some coding, then we are educating future deadbeats.
With all this, all education should include CS. And not just as a mandatory field or something. Make it more accessible, more interesting, more superficial if needed. Go straight to use cases, show its effectiveness in the easiest way possible. Inquisitive minds will fill in the blanks, and everyone else will at least know how to automate a part of their work. -
I need to add new feature into the program which I wrote years ago so I start digging up the source code. The project is written in a language which I no longer code in.
That code is really poorly written with most of them don't have tests. I also find out that previous self is really a genius since he can keep track of huge project with almost no documentation.
To make matter worst, there are unused components (class,feature) in the source code. "Current me" have a policy of "just adding only a feature you need and remove unused feature" but it seem the "previous me" don't agree with the "current me".
The previous me also have the habit of using writing insane logic. I can remember what particular class and methods is doing but I can't figure out the details.
For example one method only have 5 line of code but it is very hard to figure out what those do.
The saving grace is that he know the important for method signature and using immutable data structure everywhere.
I was under the influence of caffeine and have a constant sleep deprivation at the time (only sleeping about 4 hour every day) so I can't blame him too hard.
I can't blame him too hard, right?
Could someone invent a time machine already? Invent time machine not to save the world but to save the developers from himself.4 -
So the saga of broken fucking everything continues at work, and I'm managing it, effectively, and doing it correctly on the first go-round. It's a long process though, because the two retards who preceded me were equally inept for completely different, yet equally disruptive and destructive reasons. The first dude was just plain psychotic, probably still is. I'd post some of his code, but I don't want anyone's face to melt off like those Nazi dudes at the end of Raiders of the Lost Ark. I can handle it because I'm constantly inebriated, which is not as fun as it sounds. If you have to ask yourself if you can handle it, you probably aren't, unless you've had to Uber to/from work due to still being fucking drunk. Anyway, enough about that, and it was only like twice. The rest of the times, I was more blazed than Jerry Garcia at a weed smoking contest. Moving along.
UPS shipping labels broke two weeks ago, I fixed it, but these fucking 10xers jointly decided to not only never implement anything resembling error handling, other than EMPTY GOD DAMN "try/catch"es (empty catch, wow so efficient), and instead of using COMMENTS, which I know are a new thing, they'd wrap blocks of code in something like: if 1 = 0 {} FUCK YOU DICKFACES. As I was saying before I got emotional again, they tied the success to all kinds of unrelated, irrelevant shit. I'm literally needle/haystacking my way through the entire 200GB codebase, ALONE, trying to find all the borked things. Helpfully, my phone is ringing all the time from customer service, complaining about things that are either nothing to do with the site, or due to user stupidity, 75% of the time.
A certain department at my company relies on some pretty specific documents to do their job, and these documents are/were generated from data in the database. So until I can find and fix all of the things, I've diverted my own attention as much as possible to the rapid implementation of a report generation microservice so that no one elses work is further disrupted while I continue my cursed easter egg hunt from fucking hell.
After a little more than two days, I'm about to lauch a standalone MS to handle the reports, and it's unfortunately more complicated than I'd like, because it requires a certain library that isn't available on Winblows, so I've dockerized the application. Anyway, just after lunch, I've finished my final round of tests, and I'm about ready to begin migrating it to the server and setting up (shitty fucking shit) IIS to serve it appropriately. At this point, this particular report has been unavailable by web for about 8 days.
A little after lunch, and with no forewarning of any kind, the manager of managers runs upstairs and screams at me to "work faster" and that "this needs to be back online RIGHT NOW", but I also know that this individual is going to throw a fit if things on this pdf aren't a pixel perfect match. So I just say "that's some amazing advice, I wish I'd had the foresight to just do it better and work faster". Silence for a good five seconds, then I follow up with "please leave and let me get back to my work". At that moment from around the corner, my "supervisor" suddenly, magically even, remembers that he has had the ability to print this crucial, amazingly super fucking important document all along, despite me directly asking him a week ago, and he prints it and takes it where it needs to go. In the time that it takes him to go to that other department and return, I deploy my service.
I spent the rest of the day browsing indeed and linkedin jobs, but damn this market is kinda weird right now, yeah?2 -
React Native testing is hair pulling.
Every test needs to have 100 different mocks in place and there are: 3 different methods to mock a function (mock, mockImplementation, and fn), 3 different types of query methods to get elements (get, find, and query), and 5 different selectors to query on (accessibility label, testId, accessibility hint, accessibility value, etc.)
And after reading all this, being diligent and learning the difference between stupid, synonymously-named functions which have wildly different side effects like "getByA11yHint" and "findByA11yHint" (ugh...), after all that, you write out a test with all the appropriate mocks and you want to do something simple and it beats you up all over again.
Button enabled or button disabled. Simple right? Logically the former is "expect(elem).toBeEnabled()" and the latter is "expect(elem).not.toBeEnabled()", right?
Wrong! You're an imbecile. Your tests will fail and never tell you that ".not.toBeEnabled()" and ".toBeDisabled()" don't do the same thing even though they look and sound exactly the same. Only the latter will work. The former makes all your tests fail. Where is this written in the docs? Nowhere?! Great!
👌😄🔫3 -
Risk is part of my everyday life.
I take the risk everyday when opening IDE and changing line of code that can either break database or crash other systems that are depending on one I am developing. ( not instantly but in some time in the future )
So....
Many years ago I was updating some application server production code while being drunk.
Everything went fine except me waking up in the morning and didn’t remember how I did it.
... what I learned from my developers life except that heavy drinking and updating servers is not the best idea ?
First, don’t give a fuck, do your job and ask questions even if the person in front of you said that understood everything and you think you understood all of shit.
Second, if you think you know what to do think twice.
Third, having any backup, any tests and any documentation is always better then having nothing.
And the most important.
The most risky in every business are people around you, so always have good people around and there would be no risk at all or you won’t even think about it.
✌🏽 ❤️ -
first some background. I'm an intern coming in on the end of my internship (tomorrow's my last day). I've been working on a reasonably important project, more specifically a restful API. We have automation set up so that any commits to master on GitHub are pushed out into a live, accessible version. Some guy (let's call him dumbass) joined our team last week, and has had a few ideas
Dumbass: *opens pull request to my repo*
My boss: *requests changes*
Me: *requests different changes*
(All this before even testing his code, mind you)
Dumbass: *makes requested changes*
Me: *approves changes*
A day passes
My boss: *approves changes*
Me (not even 10 seconds after my boss approved changes): *requests more changes*
(Still haven't tested his code, I just ran A PEP8 compliance test)
Dumbass: *MERGES CHANGES TO MASTER*
Literally EVERYTHING breaks because he was importing a module that's not available
We don't notice until later that day (I'm still working on writing the tests for the automation, for now changes get put on live version even if everything breaks -- tool is still in beta, so everyone working on it (a whole 3 people) knows to TEST THEIR SHIT BEFORE MERGING TO MASTER.)
WHY EVEN BOTHER WITH THE PULL REQUEST IF YOU WERE GOING TO MERGE TO MASTER YOURSELF ANYWAY??!??!??
My frustration cannot be properly conveyed through text, but let's just say this guy's been there a week, I already didn't like him, and then he fucking does this. -
!rant
[Update on previous rant at the bottom]
So I had the technical test last friday. I did not try to implement any automated test as it is not my forte.
I had three hours to showcase my knowledge of data structures and OOP so I did that.
The test was somewhat long actually, so I left out one part that I did not have time to implement: validation of input files.
Today I got feedback, everything went well, they liked my code and I only got two negatives: Error handling and automated tests xD
Now I'm going to the second phase: phone interviews and they are gonna asks the whys of my implementation.
I'll have to explain why I did not implement automated tests and the girl on the phone told me "they didn't like it much that you had no tests because tests are very important for us".
I guess I'll have to come clean and say that I'm not very strong on that but willing to learn, so I didn't want to risk it doing something I'm not really good at.
I hope it ends up well.
prev rant:
https://devrant.com/rants/1607302/...4 -
#Suphle Rant 9: a tsunami on authenticators
I was approaching the finish line, slowly but surely. I had a rare ecstatic day after finding a long forgotten netlify app where I'd linked docs deployment to the repository. I didn't realise it was weighing down on me, the thought of how to do that. I just corrected some deprecated settings and saw the 93% finished work online. Everything suddenly made me happier that day
With half an appendix chapter to go, I decided to review an important class I stole from my old company for clues when I need to illustrate something involved using a semblance of a real world example (in the appendix, not abstract foo-bar passable for the docs)
It turns out, I hadn't implemented a functionality for restricting access to resources to only verified accounts. It just hasn't been required in the scheme of things. No matter, should be a piece of cake. I create a new middleware and it's done before I get to 50 lines. Then I try to update the documentation but to my surprise, user verification status turns out to be a subset of authentication locking. Instead of duplicating bindings for both authentication and verification, dev might as well use one middleware that checks for both and throws exceptions where appropriate.
BUT!
These aspects of the framework aren't middleware, at all. Call it poor design but I didn't envisage a situation where the indicators (authentication, path based authorisation and a 3rd one I don't recall), would perform behaviour deviating from the default. They were directly connected to their handlers and executed after within the final middleware. So there's no way to replace that default authentication scheme with one that additionally checks for verification status.
Whew
You aren't going to believe this. It may seem like I'm not serious and will never finish. I shut my system down for that day, even unsure how those indicators now have to refactored to work as middleware, their binding and detachment, considering route collections are composed down a trie
I'm mysteriously stronger the following day, draw up designs, draft a bunch of notes, roll my sleeves, and the tsunami began. Was surprisingly able to get most of previous middleware tests passing again before bed, with the exception of reshuffled classes. So I guess we can be optimistic that those other indicators won't cause more suffering or take us additional days off course
2 -
And here it comes bois, the famous Monday Morning Mumbling is back, for everyone's pleasure.
Do you remember your uni years, when you had wonderful coding lessons, and you learned sick languages ?
I do aswell, since I'm still in uni.
But why, WHY, IN ALL OF GOD THOUGHTS, DO I STILL HAVE TO TAKE MATHS LESSONS ?
It's my fourth fucking uni year, and I'm still supposed to deal with math lessons which are about what I learned 6 years ago. And guess what ? I still failed the test since I fucking don't understand a single shit in maths.
"Uuuuh if yu wan tu derivate a function u hav to multiply ur derivated function basic expression with the derivate itself lul xDDD so funi"
FUCK OFF DUDES I DON'T GIVE A SINGLE SICK BIRD SHIT ABOUT MATHS. I WASTED THREE YEARS OF MY LIFE LEARNING ABOUT BINARY TREES, MATHEMATICALS WAYS OF SPILLING YOUR CEREAL BOWL WHEN YOU HAVE TO LEAVE IN FIVE MINUTES, NUMERIC WAY OF OPTIMIZE YOUR SINK SPACE WHEN YOU'RE TOO LAZY TO DO THE DISHES, JUST LET ME FUCKING WRITE CODE INSTEAD OF ANNOYING ME WITH UNEXPLAINABLE MATHS SHIT NOW !
I know maths are important, okay ? But I'm so fucking tired of learning this shit again and again and still failing those shitty tests where they only give you maths problems without any other goal than messing with your grades.
Fuck this shit I'm pissed off on so many levels, I wasted tons of money on a private school to enhance my résumé history, and now I'm stuck with some strange "f'(x)" boi that will ruin my year.
RT's appreciated, if you recognised yourself in this story, don't forget to send some biscuits to my postal address.
TL;DR : Why wasting your time on theoritical lessons when you could use your time to learn new dynamic technos, like C++98 ?2 -
Will start work probably next week after lots of searching. Few months without work was good life relatively. Wake up whenever you want to, browse reddit how much you want to, way more time to do things that want. Now in new job especially on trial period I will have to learn lot, also that rush to work if I do not want to end work late makes life worse. Full time jobs suck. Half day work would be better but to get even little shorter work week is a big challange. At least when was fired from previous job. Fuck that.
Also probably will take a non remote position because they claim it is low stress. But I believe their codebase sucks, they do not write tests. But they say they are planning to start writing tests. But still most important thing is low stress, but question is how in reality will there be low stress. Or will they fire me quickly even without causing me stress. It would be ideal to learn at least all the tech they are using, so that I would not lag too much because of this, but I have no idea how to quickly learn, I thinik I would need 2 hours after work for learning, which sucks that I will not be able to enjoy at least after work time.
Plus the fucking traffic jams. Why they can't have remote position. Especially when covid cases are growing. -
I want to ask for your opinion guys, because I don't know if I am right or wrong.
So, some days ago, my brother sent me some code to check out for an automation that he does for testing purposes, since he's a QA (I am a programmer). He should be able to send XML data to a server and depending on the process that he tests, the data is different every time. I saw a strange thing, he hardcodes the XML tags and concatenates them with data which I find stupid. So I proposed him to use a template to generate XML data, because I think it's more flexible and easier, making data and presentation separate. That way if in the future he wants to start using JSON he could do it in no time. I made the code in a separate file which he imports and uses it's functions (they are two so no need for classes) and uses them to load the template and render it as he passes the data as a hash table. He insists that concatenating data and XML tags is easier and simpler and I can't wrap my mind how could that be true. I gave him an example in which the data structure for a process is changed and he have to open the file and change the XML tags or the structure and he still says that's simpler.
What is the right decision in this situation. Keep in mind that I simplified the process a lot and it actually involves sending the data and reporting the results, but they are not important here since I am talking only about generating data. -
MCIA-LEVEL-1 MuleSoft Certified Integration Architect - Level 1 test is one of the MuleSoft affirmation tests, which can upgrade your position and work on your life. However, how do get ready for the MCIA-LEVEL-1 test well and pass it effectively? While scanning on the web asset for MCIA-LEVEL-1 MuleSoft Certified Integration Architect - Level 1 test, DumpsCafe strongly prescribes you pick an online MCIA-LEVEL-1 practice test. MuleSoft Certified Integration Architect - Level 1 MCIA-LEVEL-1 test questions are kept in touch with the best expectations of specialized exactness, given by our guaranteed well-informed authorities and distributed creators for advancement. You will pass MCIA-LEVEL-1 MuleSoft Certified Integration Architect - Level 1 test with online review materials, 100% cashback included.
Get ready to pass the exam with the help of the MuleSoft MCIA-LEVEL-1 exam:
Readiness of accreditation tests could be covered with two asset types. The first is the review guides, reference books, and study discussions that are explained and suitable for developing data starting from the earliest stage. Aside from the video instructional exercises and talks are a decent choice to facilitate the aggravation of through study and are somewhat make the review cycle really fascinating in any case these interest time and fixation from the student.
Brilliant up-and-comers who wish to make a strong establishment out and out assessment themes and associated advancements commonly blend video addresses with a concentrate on advisers for harvest the upsides of each, however, practice tests or practice test motors is one significant review device that goes ordinarily unnoted by most competitors.
Practice tests are planned with our specialists to make test possibilities test their insight on abilities accomplished in the course, just as possibilities become agreeable and acquainted with the genuine test climate. Measurements have shown test uneasiness assumes a lot greater part in an understudy's disappointment in the test than the dread of the obscure.
Confirmation questions master group suggests setting up certain notes on these subjects alongside it remember to rehearse MuleSoft MCIA-LEVEL-1 dumps which had been composed by our master group, each of these can help you loads to clear this test with superb imprints.
DumpsCafe gives you the latest MCIA-LEVEL-1 exam questions:
DumpsCafe has in addition presented two or three supporting devices and learning modes that will help you in having a fitting enthusiasm for the fundamental limits and to additional work with your MCIA-LEVEL-1 dumps status association with getting MuleSoft Architect attestation with a guarantee. A couple of up-and-comers need to further develop abilities to get movements or others need to have a promising beginning in the MuleSoft MCIA-LEVEL-1 dumps announcement world and with this part, they can plan as shown by their singular basics.
DumpsCafe MCIA-LEVEL-1 test dumps are similarly open in the pdf plan so you can use this report in any of your splendid devices whether it is a PDA, tablet, or even a PC. We have made this relationship in the pdf record so it can end up being less difficult for you to utilize and you can start perusing for your MuleSoft Certified Integration Architect - Level 1 test wherever.
MuleSoft MCIA-LEVEL-1 content makes you ready for the real exam:
Rather than following the ages-old idea of MuleSoft Certified Integration Architect - Level 1 test readiness utilizing voluminous books and notes, DumpsCafe has presented a brief, direct, and most important substance that is incredibly useful in passing any accreditation MuleSoft Certified Integration Architect - Level 1 test. For an occurrence, their MCIA-LEVEL-1 refreshed review guide covers the whole prospectus in a particular number of inquiries and replies. The data, given in the review questions, is streamlined to the level of a normal test competitor. Any place, it is fundamental, the appropriate responses have been clarified further with the assistance of reproductions, diagrams, and additional notes.
Conclusion:
Need to pass your MuleSoft MCIA-LEVEL-1 test in the primary attempt? Download the most recent MuleSoft Certified Integration Architect - Level 1 MCIA-LEVEL-1 dumps and invest however much energy as could be expected to rehearse before your MuleSoft Certified Integration Architect - Level 1 exam. Passcert group profoundly proposes everybody purchase MuleSoft Certified Integration Architect - Level 1 MCIA-LEVEL-1 dumps when you will take your test in several weeks. Please keep sufficient opportunities to practice. DumpsCafe guarantees 100% passing your MuleSoft certificate MCIA-LEVEL-1 test effectively.
For more info: www(dot)dumpscafe(dot)com/Braindumps-MCIA-Level-1.html1 -
Math Doctor: The Best Math Tutoring Services Near You in Toronto
Are you in search of the best math tutors near me or reliable math tutoring services near me in Toronto? Look no further! At Math Doctor, we are dedicated to helping students at all levels achieve success in math. Whether you’re struggling with basic math concepts or preparing for advanced courses, our expert tutors are here to guide you every step of the way.
Located at 2300 Yonge St, Toronto, ON M4P 1E4, Canada, Math Doctor offers top-notch math tutoring services for students of all ages. Our team of professional tutors is committed to providing personalized instruction that ensures academic success, boosts confidence, and helps you master the skills you need to excel in math.
Why Choose Math Doctor for Your Math Tutoring Needs?
When it comes to finding the best math tutors near me, it’s essential to choose a tutoring service that is both knowledgeable and supportive. Here’s why Math Doctor stands out:
Highly Experienced Tutors: Our team consists of highly qualified and experienced tutors who specialize in all areas of math—from elementary school math to advanced high school and university-level courses. With their deep understanding of the subject, they’re able to break down complex concepts and present them in ways that are easy to understand.
Personalized Approach: At Math Doctor, we recognize that every student learns differently. That's why we tailor each lesson to meet the individual needs of the student. Whether you’re looking to improve your grades, get ahead of the class, or simply gain a better understanding of the subject, we customize our sessions to focus on your specific goals.
Wide Range of Math Subjects: We offer math tutoring services in a variety of subjects, including:
Basic Arithmetic: Building foundational skills for young learners.
Algebra: Understanding variables, equations, and problem-solving.
Geometry: Mastering shapes, angles, and spatial reasoning.
Calculus and Advanced Math: Preparing for higher-level courses and exams.
Statistics and Probability: Learning how to analyze data and make predictions.
SAT, ACT, and Other Test Prep: Preparing for standardized tests with expert guidance.
Convenient Location and Flexible Hours: We are conveniently located at 2300 Yonge St, Toronto, ON M4P 1E4, Canada, making it easy for students throughout the city to access our tutoring services. We also offer flexible hours, including evenings and weekends, to accommodate busy schedules. Need tutoring from home? We provide online sessions as well for added convenience.
Math Tutoring Services Near Me: The Benefits of Choosing Math Doctor
When searching for math tutoring services near me, it’s important to find a provider that offers more than just basic lessons. Here’s why Math Doctor is the best choice:
In-Depth Assessments: We begin by assessing the student's current level of understanding, identifying strengths and areas that need improvement. This allows us to create a personalized tutoring plan that targets the specific areas that need the most attention.
Proven Results: Our tutoring methods have helped countless students improve their math grades, gain a deeper understanding of math concepts, and feel more confident in their abilities. Whether you're preparing for an exam or trying to catch up on missed lessons, our tutors are committed to helping you succeed.1 -
Understanding Medicare Part B with Variety Benefits Insurance Services
At Variety Benefits Insurance Services, we know that navigating the complexities of Medicare can be overwhelming, especially when it comes to understanding the different parts of the program. One of the key components of Medicare is Medicare Part B. Whether you are just starting with Medicare or reviewing your coverage, we are here to guide you through the ins and outs of Part B and help you choose the best options for your healthcare needs.
Located in Scottsdale, AZ, our experienced team of insurance professionals is here to provide personalized service and expert advice, ensuring you make informed decisions about your healthcare coverage.
What is Medicare Part B?
Medicare Part B is the part of Medicare that covers outpatient care, certain preventive services, and medically necessary services and supplies needed to diagnose or treat health conditions. While Medicare Part A covers inpatient care (such as hospital stays), Part B helps pay for services that you receive outside the hospital setting, including visits to your doctor, medical tests, and preventive care.
Enrolling in Medicare Part B is essential for comprehensive coverage, but it’s important to understand exactly what it includes and how it works with other Medicare options.
Why Do You Need Medicare Part B?
Here are some reasons why Medicare Part B is an important part of your healthcare coverage:
1. Outpatient Care
Medicare Part B covers outpatient care, including routine doctor visits, specialist consultations, lab tests, and diagnostic screenings. Whether you need a physical exam, a check-up with your specialist, or diagnostic tests like bloodwork, Part B helps cover these essential services.
2. Preventive Services
One of the key benefits of Medicare Part B is that it helps cover preventive services, such as cancer screenings, vaccinations, and wellness visits. Preventive care can help detect health issues early and keep your healthcare costs down. Services like flu shots, diabetes screenings, mammograms, and colonoscopies are covered under Part B with no additional out-of-pocket costs if received from a doctor who accepts Medicare.
3. Durable Medical Equipment (DME)
Medicare Part B also helps cover the cost of certain medical equipment that is necessary for your health, such as:
Wheelchairs
Oxygen equipment
Walkers
Hospital beds These items can be crucial in managing chronic conditions and improving your quality of life, and Part B provides coverage to help offset the cost.
4. Mental Health Services
Medicare Part B also covers services related to mental health, such as individual and group therapy sessions. Mental health is an important aspect of overall well-being, and Part B ensures you have access to the care you need to support your mental health.
What Does Medicare Part B Cover?
Medicare Part B covers a wide range of services, including but not limited to:
Doctor’s visits: Whether for routine check-ups or specialized care, Part B covers physician visits.
Emergency room services: Medicare Part B helps cover the costs of emergency services if you need treatment in an emergency room.
Diagnostic tests and lab services: Includes blood tests, X-rays, MRIs, and other diagnostic services that help detect or treat medical conditions.
Outpatient surgeries: If you need surgery that doesn't require an overnight stay, Part B covers the procedure.
Ambulance services: If you need emergency transportation to the hospital, Part B helps cover the cost.
Preventive care: Services such as flu shots, cancer screenings, and other preventive tests that help catch health issues early.
How Does Medicare Part B Work?
To get Medicare Part B, you must sign up during your Initial Enrollment Period (IEP), which typically occurs when you turn 65. Medicare Part B has a monthly premium, which is automatically deducted from your Social Security benefits.
Why Choose Variety Benefits Insurance Services?
Expert Knowledge: We have extensive knowledge of Medicare and Medicare Part B, and we’re here to answer all your questions.
Tailored Plans: We work with you to find the best Medicare Part B options and Medicare Supplement Plans to fit your unique needs.
Local Service: As a local business in Scottsdale, AZ, we offer personalized, face-to-face consultations and guidance for your Medicare decisions.
Ready to Learn More About Medicare Part B?
If you’re ready to get started or have questions about Medicare Part B, Variety Benefits Insurance Services is here to help. We will make sure you fully understand your options and find the right coverage for your healthcare needs.
Contact Us Today
Call +1 (480) 951-5860 or visit us at 28150 N Alma School Pkwy Ste 103-102, Scottsdale, AZ 85262. Let us help you navigate Medicare Part B and find the best options to meet your healthcare goals.
1 -
Kingston Hearing Services: Your Trusted Partner for Hearing Aids, Ear Wax Removal, and Invisible Hearing Aids
At Kingston Hearing Services, we are dedicated to providing expert hearing care that enhances your quality of life. Whether you’re in need of hearing aids, professional ear wax removal, or seeking invisible hearing aids for a discreet solution, our team is here to assist you. Conveniently located at 16 The Triangle, Kingston upon Thames KT1 3RT, we offer personalized care and high-quality services to ensure you hear life’s sounds clearly and comfortably.
Why Choose Kingston Hearing Services?
At Kingston Hearing Services, we understand that hearing health is important for your overall well-being. Our team of audiologists takes the time to evaluate your specific needs and provide solutions that work for you. From comprehensive hearing tests to fitting the perfect hearing aids and providing ear wax removal, we are committed to delivering the best care for your hearing health.
Hearing Aids: Tailored Solutions for Every Need
Whether you're experiencing mild hearing loss or more significant hearing challenges, hearing aids are an effective solution to help you regain a clearer and more vibrant hearing experience. At Kingston Hearing Services, we offer a wide range of hearing aids from trusted brands that cater to various hearing needs.
Our team of audiologists will work closely with you to choose the right hearing aids based on your hearing test results, lifestyle, and preferences. Whether you need a behind-the-ear model, a in-the-ear hearing aid, or invisible hearing aids, we ensure a perfect fit and optimal sound quality. Additionally, we offer continuous support and adjustments to ensure that your hearing aids work efficiently and comfortably.
Ear Wax Removal: Essential for Clear Hearing
Ear wax removal is an essential service for maintaining healthy ears and clear hearing. When ear wax accumulates in the ear canal, it can cause discomfort, muffled hearing, and even temporary hearing loss. At Kingston Hearing Services, we offer safe and effective ear wax removal using advanced techniques such as microsuction to gently and precisely remove the excess wax.
Our audiologists are trained to perform ear wax removal procedures that ensure the health of your ears while improving the performance of your hearing aids. If you're experiencing a blocked feeling in your ears, discomfort, or a decrease in hearing, our ear wax removal service is the solution to restore clarity and comfort.
Invisible Hearing Aids: Discreet and Effective Solutions
For those who prefer a more discreet hearing solution, invisible hearing aids are the perfect option. These tiny hearing aids are designed to fit comfortably inside your ear canal, making them nearly invisible to others. Despite their small size, invisible hearing aids offer excellent sound quality and performance, helping you hear better without drawing attention to your device.
At Kingston Hearing Services, we offer a variety of invisible hearing aids from leading brands. These devices are equipped with advanced features like noise reduction, automatic sound adjustments, and Bluetooth connectivity, ensuring you can hear clearly in any environment. Our expert audiologists will work with you to ensure the best fit and performance for your invisible hearing aids, making sure they are customized to suit your hearing needs.
Comprehensive Hearing Services
In addition to hearing aids, ear wax removal, and invisible hearing aids, Kingston Hearing Services offers a full range of audiological services, including:
Comprehensive hearing assessments to evaluate your hearing and identify any underlying issues
Hearing aid fitting and programming to ensure optimal sound clarity and comfort
Follow-up support to fine-tune and adjust your hearing aids for the best experience
Tinnitus management to help alleviate symptoms of ringing in the ears
General ear health services, including ear wax removal and ear care advice
Our team is here to support you in every step of your hearing journey, ensuring that you always have the right solution for your hearing needs.
Visit Kingston Hearing Services Today
If you’re in need of hearing aids, professional ear wax removal, or want to explore invisible hearing aids, visit Kingston Hearing Services today. Located at 16 The Triangle, Kingston upon Thames KT1 3RT, we are here to provide expert care and personalized solutions to help you achieve better hearing.
Call us at +442078560319 to schedule a consultation with one of our friendly and knowledgeable audiologists. Let us help you experience the world of sound in its fullest with the latest hearing technology and expert care.1 -
ChatGPT said:
The Hearing Services: Expert Audiologist Care and High-Quality Hearing Aids in London
At The Hearing Services, we are dedicated to providing personalized hearing solutions that cater to the unique needs of every patient. Whether you’re dealing with hearing loss or looking for expert advice, we are here to help. Located at 167, 169 Great Portland St, London W1W 5PF, our team of experienced audiologists offers professional care, paired with a wide range of high-quality hearing aids to improve your hearing and enhance your quality of life.
Expert Audiologist Services: Personalized Hearing Care
Our audiologists at The Hearing Services are highly trained professionals with years of experience in diagnosing and treating hearing problems. Whether you're dealing with mild hearing loss or more severe conditions, we take a comprehensive approach to understanding your hearing needs. Our goal is to provide you with a personalized solution that works best for your lifestyle and hearing needs.
We begin by offering a thorough hearing assessment. Using state-of-the-art equipment, our audiologists conduct detailed hearing tests to determine the exact nature of your hearing loss. Based on the results, we will work with you to develop a tailored treatment plan that might include hearing aids, lifestyle modifications, or ongoing monitoring to ensure optimal hearing.
Our audiologists will guide you through the process, from understanding your hearing challenges to selecting the right hearing aid, fitting it properly, and providing post-fitting support. We believe in offering ongoing care to ensure that your hearing aids continue to meet your needs as your hearing changes over time.
High-Quality Hearing Aids: The Latest Technology for Clearer Sound
At The Hearing Services, we offer a wide variety of hearing aids from trusted manufacturers, designed to fit your specific hearing needs. Whether you need a discreet, in-the-ear model or a more powerful behind-the-ear device, we have a range of options to suit your preferences and lifestyle.
Our audiologists will help you choose the perfect hearing aid based on your level of hearing loss, lifestyle, and aesthetic preferences. We offer devices that come with advanced features such as noise reduction, speech clarity, Bluetooth connectivity, and rechargeability. These modern hearing aids are designed to enhance your hearing in both quiet and noisy environments, ensuring that you can hear conversations clearly, enjoy music, and participate in daily activities without missing out on important sounds.
Why Choose The Hearing Services for Audiologist and Hearing Aid Care?
Expert Audiologists: Our team of experienced and compassionate audiologists is dedicated to helping you achieve optimal hearing. We provide professional advice, detailed hearing assessments, and ongoing support to ensure your hearing aids continue to meet your needs.
Comprehensive Hearing Solutions: Whether you need a hearing test, hearing aid fitting, or expert advice, we offer a wide range of services to address all your hearing needs.
Personalized Recommendations: We understand that everyone’s hearing needs are different. Our audiologists take the time to understand your lifestyle, preferences, and hearing challenges to recommend the perfect hearing aid for you.
Latest Technology in Hearing Aids: We work with trusted brands to offer the latest in hearing aid technology, ensuring that you receive high-performance, comfortable, and discreet devices.
Convenient Location: Our clinic, located at 167, 169 Great Portland St, London W1W 5PF, is easily accessible to residents of London, making it convenient for you to access expert hearing care and services.
Ongoing Support: After your hearing aid fitting, we continue to offer support to ensure that your hearing aids are working optimally. Our audiologists are always available for follow-up care and adjustments as needed.
Contact The Hearing Services Today!
If you’re looking for an expert audiologist or need high-quality hearing aids, look no further than The Hearing Services. Our professional team is ready to assist you in improving your hearing and ensuring you enjoy a better quality of life.
To schedule a consultation or get more information about our services, call us today at +44 207 856 0319. You can also visit us at our convenient London location at 167, 169 Great Portland St, London W1W 5PF. Let us help you hear the world around you with clarity and ease.
Your hearing health is our priority—trust The Hearing Services to provide the care you need for better hearing.2 -
DNA-Me Mobile Labs: Professional, Reliable, and Convenient DNA Testing Services in Atlanta
At DNA-Me Mobile Labs, we offer a wide range of DNA testing services, including court admissible DNA tests, certified DNA testing, paternity tests, and immigration DNA testing. Whether you're dealing with legal matters such as child support or need reliable results for immigration purposes, we’re here to help with fast, confidential, and professional services.
Located in Atlanta, GA, we provide mobile DNA testing that comes directly to you, eliminating the need to travel to a clinic. Our commitment to accuracy, confidentiality, and convenience makes us the go-to choice for DNA testing for child support, immigration DNA testing, and more. Let’s dive into how DNA-Me Mobile Labs can help you get the answers you need.
Court Admissible DNA Test
When it comes to legal matters, accuracy and reliability are essential. At DNA-Me Mobile Labs, we specialize in providing court admissible DNA tests that are crucial for legal cases such as child custody, child support, and inheritance disputes. Our team follows a strict chain of custody protocol to ensure the integrity of the samples, making sure that the results are legally valid and can be presented in court.
If you’re involved in a legal dispute and need DNA test results that will be accepted by the court, you can trust us to provide the highest level of professionalism and reliability. We understand the importance of these results and work diligently to ensure they meet all legal requirements.
Certified DNA Lab Near Me
Are you searching for a certified DNA lab near me? At DNA-Me Mobile Labs, we work with accredited laboratories to provide the most accurate and certified DNA testing services available. Whether you're looking for a paternity test, genetic health test, or any other type of DNA testing, we ensure that your results come from certified, reputable labs.
Our mobile DNA testing service means that we come to you, whether you're at home, at work, or at another location that’s convenient for you. We provide professional service and a seamless experience, ensuring that your results are reliable, accurate, and certified.
DNA Testing for Child Support
DNA testing for child support cases is an essential service provided by DNA-Me Mobile Labs. If you need a reliable and accurate paternity test to establish child support obligations, we offer affordable and efficient solutions that meet all legal requirements. Whether you’re a parent seeking clarity or a legal professional involved in a child support case, our team is here to help.
We specialize in court admissible paternity tests, which are necessary for child support hearings. With our mobile service, we’ll come to your location, collect samples, and ensure the process is as smooth and discreet as possible. Your results will be fast, confidential, and accepted in the courtroom.
Immigration DNA Testing in Atlanta
Immigration DNA testing is often required by U.S. immigration services to establish biological relationships for visa, green card, and other immigration petitions. If you need immigration DNA testing in Atlanta, DNA-Me Mobile Labs provides reliable and efficient mobile testing services that comply with USCIS requirements.
Our team understands the complexities of immigration applications and ensures that the DNA testing process is handled with the utmost care and professionalism. Whether you need to prove paternity, sibling relationships, or another familial connection, we are here to help guide you through the process. We bring the lab to you, making the procedure easy and convenient.
Paternity Test Near Me
Looking for a paternity test near me? DNA-Me Mobile Labs offers paternity testing services throughout Atlanta, GA, and the surrounding areas. Whether you need a private paternity test for personal peace of mind or a court-admissible paternity test for legal reasons, our mobile service ensures that you get fast, reliable, and confidential results.
Our mobile lab team will come directly to your location to collect DNA samples, making the process as easy and convenient as possible. We understand how important it is to get answers, which is why we provide quick turnaround times and accurate results.2


