IT/Software career thread: Invert binary trees for dollars.

ex-genj

Golden Squire
638
115
Jest/Enzyme will do react unit tests pretty well though I severely question the value of automated UI testing at all tbh. That's called a QA department.
 

Deathwing

<Bronze Donator>
16,392
7,392
Humans are expensive. And it's hard to find people that want to do QA, let alone competent people with a good programming background. I manage the QA department and we've had an open position for over a year. Automation is almost a necessity at this point.

Note, what I call QA might be different than what you call QA. We have one guy on our team whom I would say is a bad programmer. He does the bulk of the test result review because that's what he's good at. And even then, I'd like to automate that as much as possible and have him spend his time on other stuff. All the other positions in QA must be good programmers because that's what they're doing most of the time. Not running manual tests.
 
  • 1Like
Reactions: 1 user

ex-genj

Golden Squire
638
115
Fair enough but I'm damn expensive and have been forced to write thousands of lines of front end unit tests for the past 3 weeks for my app that could have easily been replaced by a dude in Bangalore doing simple user acceptance tests vs the spec/requirements. IDK whatever its done and didn't have to think for 3 weeks which is nice :emoji_thumbsup:
 

tyen

EQ in a browser wait time: ____
<Banned>
4,638
5,164
Humans are expensive. And it's hard to find people that want to do QA, let alone competent people with a good programming background. I manage the QA department and we've had an open position for over a year. Automation is almost a necessity at this point.

Note, what I call QA might be different than what you call QA. We have one guy on our team whom I would say is a bad programmer. He does the bulk of the test result review because that's what he's good at. And even then, I'd like to automate that as much as possible and have him spend his time on other stuff. All the other positions in QA must be good programmers because that's what they're doing most of the time. Not running manual tests.

I applied for a QA position (20/hr) in Portland that was going to turn into a QA manager(70k) job after 3 montha that oversaw romanians for Glu, a unity developer that makes celeb games (kardashians,tyra,etc).

This dickface said I was overqualified and could a better job anywhere else. I was like, wow, fuck you bro.
 

Deathwing

<Bronze Donator>
16,392
7,392
I applied for a QA position (20/hr) in Portland that was going to turn into a QA manager(70k) job after 3 montha that oversaw romanians for Glu, a unity developer that makes celeb games (kardashians,tyra,etc).

This dickface said I was overqualified and could a better job anywhere else. I was like, wow, fuck you bro.
This is part of the reason why I sometimes hesitate telling people that I work in software QA. Their impression of software QA is mindless drones with no programming experience.

I suspect it's part of the reason the job opening has been unfilled for so long. We get some *really* stupid people. Just yesterday I had to keep a straight face after a candidate failed the index question. You're given a list of strings, give me an index for each unique word and the corresponding line numbers in which they appear. The point of the isn't correctness(though, being fabulously wrong will hurt), but to see how candidates puzzle through questions and hints. I couldn't get this guy to use a hash-based container. Nested loops and arrays everywhere.

At the end of the interview, he asked if the candidate for the position needed to have good programming skills...
 

chaos

Buzzfeed Editor
17,324
4,839
I know some people who do software QA at one of the agencies. Yeah... not the brightest bulbs. I just assumed that private sector is better, though.
 

Ao-

¯\_(ツ)_/¯
<WoW Guild Officer>
7,879
507
I know some people who do software QA at one of the agencies. Yeah... not the brightest bulbs. I just assumed that private sector is better, though.
It's better, but not by much.
 

a_skeleton_03

<Banned>
29,948
29,762
Failed CCNA with a 798 and needed an 810 to pass. I was the highest score of 12 people in a two week class.

It was the composite test which has like a global pass rate of maybe 30% so I don't feel bad at all.
 

ShakyJake

<Donor>
7,628
19,259
God, this guy at work is driving me crazy. We recently switched up teams so I'm now working with this other developer that hand-wrings over anything that might possibly be a performance issue. I mean, I realize that certainly is important, but it ends up forcing us to write some really convoluted, hard to understand, non-unit testable code under the chance that there may be a performance impact in a what-if scenario.

He's a senior dev so I can't overrule him, nor can I say scream "you're wrong!" because, who knows, maybe he actually isn't crazy. But every fiber of my being tells me something is horribly wrong when we have to toss out good design rules for the sake of performance.
 

ShakyJake

<Donor>
7,628
19,259
Got any examples?
Okay, we are developing a WebAPI so we need to validate that the models coming in are correct.

The problem is that we often need to perform several disconnected SQL queries. Stuff like checking if some entity exists, or is in a valid state, a system configuration setting, etc. etc. So the validation method pulls in whichever services that can perform those checks and makes the appropriate calls. So you may have 5 or so queries to the database to check various criteria. His issue is that these are separate queries and each perform a round-trip to the database and, thus, aren't batched. We're using Microsoft's Entity Framework and this is a known limitation.

So, in order to avoid this we're using a library where you can arrange your queries as future calls and execute them all at once. It's nice and does work, but it forces you to directly access the database context which is not mockable at all. At least, not easily with our current implementation. If we didn't care we could easily mock the services instead and everything is then unit testable.

Hope that makes sense.
 

wilkxus

<Bronze Donator>
518
210
Are you guys coding in pairs or are these things coming up during code review?
Without seeing any of your code I lean towards sympathizing with you, people often overoptimize needlesly in my experience. But in the end it depends on both the language and the application context. Looking at some code examples in that context would help.
 

ShakyJake

<Donor>
7,628
19,259
Are you guys coding in pairs or are these things coming up during code review?

During code review. But I'm essentially following the guidelines offered by Microsoft. This is (was) the typical pattern used:

Contrived example...
Code:
public class MyModel : IValidateableObject
{
     ...
    
     public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        var service1 = validationContext.GetService<IMyService1>();
        var service2 = validationContext.GetService<IMyService2>();
        var service3 = validationContext.GetService<IMyService3>();
        var service4 = validationContext.GetService<IMyService4>();
      
        bool exists = service1.DoesExist(SomeProperty1);
        bool canIDoThis = service2.CheckSomething(SomeProperty2, someCondition);
        bool whatAboutThis = service3.CheckSomething(SomeProperty3, someCondition2);
        bool andThisToo = service4.CheckSomething(SomeProperty4, someCondition3);
      
        if (!exists) {
            yield return new ValidationResult("Can't update!  Doesn't exist!");
        }
      
        if (!canIDoThis) {
            yield return new ValidationResult("Can't update!  You can't do this!");
        }
      
        if (!whatAboutThis) {
            yield return new ValidationResult("Can't update!  You can't do this!");
        }
      
        if (!andThisToo) {
            yield return new ValidationResult("Can't update!  You can't do this!");
        }
    }
}

So as you can see, each of those services is making an independent call to the datastore -- so a complete roundtrip to the database. This is the typical approach demonstrated in MS guidelines / tutorials. However, our application is fairly complicated so we often have to do quite a few validation checks to make sure data isn't being inserted or updated that'll cause some toxic state.

To avoid this, all those service calls have been moved into the actual service itself and wraps all the checks into a single method and THAT spits out the list of errors. Problem is, the service gets injected with the database context which is not mockable. Otherwise, we can mock those IMyService objects and create the conditions that would result in the various validation failures. This may be hard to understand if one isn't familiar with the .NET WebAPI and C#.
 

Deathwing

<Bronze Donator>
16,392
7,392
Conceptually, I would agree with your senior developer. Database access can often be the bottleneck for performance. And it might not seem like a limitation at the moment, wait until you have a customer that wants your tool to analyze 6M+ lines of java code, so now your application is pegging the database like crazy.

I'll admit I don't know much about unit testing(or .NET WebAPI or C#), so I don't know how much of a pain in the ass it is to design unit tests around database batching.
 

ShakyJake

<Donor>
7,628
19,259
Conceptually, I would agree with your senior developer. Database access can often be the bottleneck for performance.

I understand, but I also think we need to be pragmatic. This particular operation is never something that will be rapid-fire. This is literally a user entering some data and hitting submit and, again, it's not a user operation that's even all that frequent. Also, our system is not on the web so it's not like we could potentially have millions of users. Probably a couple dozen at most.
 

Chris

Potato del Grande
18,222
-324
OK new dumbass question. Thanks for the web development help earlier in the week by the way, website is coming along quite nicley.

I'm thinking about buying a domian name but only .info is affordable. I've seen conflicting statements on if .info is a bad choice for search rankings, some say it doesnt matter and some say that .info is assosicated with low quality spam websites and has a search ranking penalty. It's only something like $4 for the .info so no big deal, but I'd rather get this right before I go live so I don't need to change the brand name later on.

The .com is availiable but is a few thousand dollars so I'd have to buy that in the future if the website does really well, which realistically isn't likely for a long time.

I've found it hard to think of a good brand name which has an availiable and affordable .com assosicated with it.
 

ShakyJake

<Donor>
7,628
19,259
OK new dumbass question. Thanks for the web development help earlier in the week by the way, website is coming along quite nicley.

I'm thinking about buying a domian name but only .info is affordable. I've seen conflicting statements on if .info is a bad choice for search rankings, some say it doesnt matter and some say that .info is assosicated with low quality spam websites and has a search ranking penalty. It's only something like $4 for the .info so no big deal, but I'd rather get this right before I go live so I don't need to change the brand name later on.

The .com is availiable but is a few thousand dollars so I'd have to buy that in the future if the website does really well, which realistically isn't likely for a long time.

I've found it hard to think of a good brand name which has an availiable and affordable .com assosicated with it.
Just go with the cheap one for now and buy the more expensive domain later if you feel the need.
 

Rezz

Mr. Poopybutthole
4,486
3,531
Failed CCNA with a 798 and needed an 810 to pass. I was the highest score of 12 people in a two week class.

It was the composite test which has like a global pass rate of maybe 30% so I don't feel bad at all.

Bad two week class!

If I remember right, you aren't new to this stuff (I think we're talking R&S, yeah?) so it's probably just nonsense questions where there's a right answer and there's a Cisco answer. When I took my R&S last year, that's what I missed, I'm fairly sure. Some specifics about what is the "best" of a given set of answers. Really glad I pounded EIGRP/OSPFv3 and extended ACLs into the ground the weekend before taking it, though. Literally had the configuration simulation be ACLs and both of the "here's four questions about some show commands. GO!" deals were routing protocol related. I pulled a 930 on the composite my first try, but I also spent two weeks before running through every packet tracer in the curriculum, and did the full command/non-tab typing method since I assumed Cisco wouldn't let you get away with shorthand or auto-completes.

Every IT related test I've taken (CCNA, AWS Solutions Arch, A+/Net+/Sec+) I've had the guy at the testing site tell me that it's a 90% failure rate for first time test takers. Not sure if that is factual but if you aren't preparing for the "types" of questions asked, I can see that being a stumbling block. I hit up 9tut before it got nuked for some borderline dump experience, and just seeing the types of questions asked helped me mentally prepare for it.
 

Ramar

Lord Nagafen Raider
68
10
Two weeks isn't enough time to thoroughly learn the material for CCNA R&S unless you've done a lot of independent study or already work in a Cisco shop. Years ago when I was still in the Army, I did a six week course that covered the entire NetAcad curriculum, and more than half the class failed ICND1 even though we had excellent instructors. I thought that the composite exam was somewhat easier back then too since ICND1/2 had bullshit simulations like frame-relay that no one cared about anymore anyway.