Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
lifg
Dec 4, 2000
<this tag left blank>
Muldoon

prom candy posted:

Okay I read Designing Data-Intensive Applications, what next?

(I also read Soul of a New Machine after recommendations from this thread, really enjoyed it)

I forget, what kind of books are you looking for?

Adbot
ADBOT LOVES YOU

prom candy
Dec 16, 2005

Only I may dance

lifg posted:

I forget, what kind of books are you looking for?

Anything and everything! After DDIA maybe I could use something else in the system design world but more practical/applied? I'm just a mid-career full stack dev and I don't know what I don't know.

Reality
Sep 26, 2010
I recently got pushed into an architect role over some data warehousing and analytics people, and was told to read

The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition https://a.co/d/6CKhY8L

Building a Scalable Data Warehouse with Data Vault 2.0 https://a.co/d/680D3sM

Definitely a different way to think about data than I have as a normie app dev. I’ve only just started the first.

Cyril Sneer
Aug 8, 2004

Life would be simple in the forest except for Cyril Sneer. And his life would be simple except for The Raccoons.
This is a cross-post from the careers thread, but was thinking I might get some good comments from here from people who work in the field.

I work on a team doing algo development/signal processing/data analytics stuff. Recently a team member has been presenting some ML stuff that has managed to gain some traction with the boss. The thing is, the stuff he's presenting is all stuff I explored 3 or 4 years ago, but basically received a pat on the head and was told that's nice, now get back to work.

To be sure, my frustration is not directed to the colleague per se, but rather at my supervisor for somehow ignoring/overlooking my own (and others) efforts here and only suddenly now realizing the value of it, upon seeing it from someone else.

I would like to bring this up with my supervisor, but without coming across as angry/bitter. I was thinking of sending something along the lines of:

"I feel the need to be direct here and bring up some frustration with our current ML investigations. The image-based peak detection that Chris presented was something that Matt had up and running 4+ years ago. The issues regarding labelling accuracy were well-known already and documented by myself and others who had been exploring this space. In the next steps portion of the meeting a holistic model idea was mentioned - incorporating segment validation followed by feature detection - which is exactly what the ML approach I presented a year+ ago was doing (and was working very well). This is not a criticism of Chris' work, but an expression of frustration that all this prior effort seems to have fallen on deaf ears"

Does something like this seem reasonably well-worded? Any suggestions from others who have been in this position would most appreciated!

(Brief background: been at this company for ~5 years. Working in the space for 10+ and have a relevant MSc degree)

lifg
Dec 4, 2000
<this tag left blank>
Muldoon
When you’re feeling strong emotions like anger and bitterness, a good idea is to open the conversation by just outright acknowledging it. “I’m feeling a bit angry and bitter here, and I’d like to talk about it.”

epswing
Nov 4, 2003

Soiled Meat
Also wait a week.

csammis
Aug 26, 2003

Mental Institution
It’s also possible that four years ago your organization wasn’t equipped to make good on the ML research, at least from your boss’s perspective, but now it is and this new so-and-so just managed to hit the right time.

That’s being pretty charitable but I’m in a decent mood at the moment on account of I decided to take tomorrow off, citing a total and complete lack of any more fucks to give this week.

prom candy
Dec 16, 2005

Only I may dance
I'd start by asking yourself what you're hoping to get out of this

Falcon2001
Oct 10, 2004

Eat your hamburgers, Apollo.
Pillbug

Cyril Sneer posted:

(Words)
Does something like this seem reasonably well-worded? Any suggestions from others who have been in this position would most appreciated!

(Brief background: been at this company for ~5 years. Working in the space for 10+ and have a relevant MSc degree)

I don't think that's totally unreasonable. It all entirely depends on your manager and how they'd take this feedback, but I think it's worth being frank most of the time.

Another thing to consider is: what did your coworker do that you might not have done? It might very well be that your boss literally just blew you off, but it also might be an opportunity to figure out what your coworker did to succeed. Maybe it literally is just nothing, but

StumblyWumbly
Sep 12, 2007

Batmanticore!
Person A is retreading ground and should be referring to earlier work is very valid and helpful.
Person A is presenting stuff I could have told you is not helpful.
Getting a project going is a sales job, a mix of fact and presentation. But also, since chat gpt, ml has had a huge jump in credibility

thotsky
Jun 7, 2005

hot to trot
Seems unlikely they will acknowledge this work if that means acknowledging they dropped the ball earlier. Also, this new guy has already got the recognition, at best you can hope for another pat on the head. I would focus on what you can add to the process. Like, just present your old stuff again if there's stuff there that this guy didn't cover. You can mention it's old news as a dig for your own satisfaction, but presenting it as new might make you seem quick and clued in.

If he's already covered everything I think you're poo poo out of luck.

Vulture Culture
Jul 14, 2003

I was never enjoying it. I only eat it for the nutrients.

Cyril Sneer posted:

fallen on deaf ears
This is actually ableist and you shouldn't use this phrase, especially in a work setting

Cyril Sneer
Aug 8, 2004

Life would be simple in the forest except for Cyril Sneer. And his life would be simple except for The Raccoons.

epswing posted:

Also wait a week.

That's why I'm hanging out in the ol' SomethingAwful forums.

csammis posted:

It’s also possible that four years ago your organization wasn’t equipped to make good on the ML research, at least from your boss’s perspective, but now it is and this new so-and-so just managed to hit the right time.

Oh, its definitely part of that, but that doesn't really change the situation for me.

prom candy posted:

I'd start by asking yourself what you're hoping to get out of this

Acknowledgement that I was right and ownership of the project.

StumblyWumbly posted:

Person A is retreading ground and should be referring to earlier work is very valid and helpful.
Person A is presenting stuff I could have told you is not helpful.
Getting a project going is a sales job, a mix of fact and presentation. But also, since chat gpt, ml has had a huge jump in credibility

Right, part of my post is for advice on how properly formulate statement 1.

We're not using chatgpt and not doing any advanced ML stuff at all really.

thotsky posted:

Seems unlikely they will acknowledge this work if that means acknowledging they dropped the ball earlier.

Its exactly this.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
If you have to tiptoe around your boss, you can turn it into a set of questions to them. Something like "what has changed since the time I presented this that has generated so much interest now? And what could I have done differently to have been included in the re-investigation?" It's absolutely managing upwards and putting your boss' diapers on for them, but this is how I've had to deal with reactive, petty managers before I secured a replacement. Also, secure a replacement.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
What are people's opinions on purely manual code reviews? I generally hate them because the code doesn't come with any information about it possibly working at all. So I'm having to assess code for readability and maintainability against whether or not it even actually runs in the first place. I don't think most people are particularly good at that, and I also think reviews like that ultimately just take much, much longer (4x and higher).

Also, in my head I tend to call them "naked code reviews" because the code is naked, but I dare not say it at work because it sounds like I want everybody to rip off their clothes and stare at code. I guess it would be somebody's idea of a good time, but . . .

Xarn
Jun 26, 2015
From context I assume you mean PR without automatic tests?

Mega Comrade
Apr 22, 2004

Listen buddy, we all got problems!
Its what we do and it's better than nothing and we do catch stuff. Far from ideal though.

Cup Runneth Over
Aug 8, 2009

She said life's
Too short to worry
Life's too long to wait
It's too short
Not to love everybody
Life's too long to hate


Rocko Bonaparte posted:

If you have to tiptoe around your boss, you can turn it into a set of questions to them. Something like "what has changed since the time I presented this that has generated so much interest now? And what could I have done differently to have been included in the re-investigation?" It's absolutely managing upwards and putting your boss' diapers on for them, but this is how I've had to deal with reactive, petty managers before I secured a replacement. Also, secure a replacement.

Asking questions is the way. Never tell anyone anything, people hate that.

Xguard86
Nov 22, 2004

"You don't understand his pain. Everywhere he goes he sees women working, wearing pants, speaking in gatherings, voting. Surely they will burn in the white hot flames of Hell"

Rocko Bonaparte posted:

What are people's opinions on purely manual code reviews? I generally hate them because the code doesn't come with any information about it possibly working at all. So I'm having to assess code for readability and maintainability against whether or not it even actually runs in the first place. I don't think most people are particularly good at that, and I also think reviews like that ultimately just take much, much longer (4x and higher).

Also, in my head I tend to call them "naked code reviews" because the code is naked, but I dare not say it at work because it sounds like I want everybody to rip off their clothes and stare at code. I guess it would be somebody's idea of a good time, but . . .

Please print your top ten most recent commits and bring them to my office.

Falcon2001
Oct 10, 2004

Eat your hamburgers, Apollo.
Pillbug

Rocko Bonaparte posted:

What are people's opinions on purely manual code reviews? I generally hate them because the code doesn't come with any information about it possibly working at all. So I'm having to assess code for readability and maintainability against whether or not it even actually runs in the first place. I don't think most people are particularly good at that, and I also think reviews like that ultimately just take much, much longer (4x and higher).

Also, in my head I tend to call them "naked code reviews" because the code is naked, but I dare not say it at work because it sounds like I want everybody to rip off their clothes and stare at code. I guess it would be somebody's idea of a good time, but . . .

Yeah I'm going to need more context on what this means.

Cup Runneth Over posted:

Asking questions is the way. Never tell anyone anything, people hate that.

How dare you.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Rocko Bonaparte posted:

What are people's opinions on purely manual code reviews? I generally hate them because the code doesn't come with any information about it possibly working at all. So I'm having to assess code for readability and maintainability against whether or not it even actually runs in the first place. I don't think most people are particularly good at that, and I also think reviews like that ultimately just take much, much longer (4x and higher).

Also, in my head I tend to call them "naked code reviews" because the code is naked, but I dare not say it at work because it sounds like I want everybody to rip off their clothes and stare at code. I guess it would be somebody's idea of a good time, but . . .

... do you just not have unit testing as part of your codebase or something?

spiritual bypass
Feb 19, 2008

Grimey Drawer

Rocko Bonaparte posted:

What are people's opinions on purely manual code reviews? I generally hate them because the code doesn't come with any information about it possibly working at all. So I'm having to assess code for readability and maintainability against whether or not it even actually runs in the first place. I don't think most people are particularly good at that, and I also think reviews like that ultimately just take much, much longer (4x and higher).

Also, in my head I tend to call them "naked code reviews" because the code is naked, but I dare not say it at work because it sounds like I want everybody to rip off their clothes and stare at code. I guess it would be somebody's idea of a good time, but . . .

iirc Code Complete says it's quantifiably the most effective way to prevent defects, followed closely by integration tests

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Falcon2001 posted:

Yeah I'm going to need more context on what this means.

We have a repository that does not have a code review policy, or rather a few people can push directly to it to get it to build against the Linux kernel in a hurry. It's out-of-tree module code so it's vulnerable to a new kernel commit just wrecking everything and causing broken output. So we allow hotfixing that code.

Well, somebody changed somebody's file for this in a way that didn't build and now there is a lot of screaming to review all changes. The people involved are on the other side of the world and this will put a 24-hour cycle on it--assuming they don't ask questions.

Some other people then sent me a code review for the repository, which also failed to build, and their fix for that also failed to build (variations in Linux kernel versions). An eyeball inspection would not have sorted that out. I just had the hardware and wherewithal to check out the review and try to compile it myself.

So I have been resisting a mandatory review policy in favor of getting some build gates in place first. Most hotfixes can at least wait for that. Something can at least try to compile it independently. I'd like some automated checks too, but the people who had their file changed really want to scour it without even knowing if the change compiles.

So I am not trying to have no reviews, but I am devaluing them when I can't even tell at a glance if the code builds and has some proof of function. I just see those reviews go for days and days of staring--not even requesting changes. It's just a much harder activity to muster for a reviewer and then they have to be really on their game.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Volmarias posted:

... do you just not have unit testing as part of your codebase or something?

Nope!

I would prefer to retrofit some, but a lot of it is Linux kernel code going back over a decade so I can't even find good ways to cordon it off into units in the first place.

I do not endorse that model.

The real crime there is a lack of effort in any kind of integration or regression testing; there was no effort to test it at all. I'd at least like some integration and regression tests. This has previously required special hardware but we finally have commodity software emulation so I am intending to use that as a test target.

Volguus
Mar 3, 2009
It compiles ... ship it.

Falcon2001
Oct 10, 2004

Eat your hamburgers, Apollo.
Pillbug

Rocko Bonaparte posted:

We have a repository that does not have a code review policy, or rather a few people can push directly to it to get it to build against the Linux kernel in a hurry. It's out-of-tree module code so it's vulnerable to a new kernel commit just wrecking everything and causing broken output. So we allow hotfixing that code.

Well, somebody changed somebody's file for this in a way that didn't build and now there is a lot of screaming to review all changes. The people involved are on the other side of the world and this will put a 24-hour cycle on it--assuming they don't ask questions.

Some other people then sent me a code review for the repository, which also failed to build, and their fix for that also failed to build (variations in Linux kernel versions). An eyeball inspection would not have sorted that out. I just had the hardware and wherewithal to check out the review and try to compile it myself.

So I have been resisting a mandatory review policy in favor of getting some build gates in place first. Most hotfixes can at least wait for that. Something can at least try to compile it independently. I'd like some automated checks too, but the people who had their file changed really want to scour it without even knowing if the change compiles.

So I am not trying to have no reviews, but I am devaluing them when I can't even tell at a glance if the code builds and has some proof of function. I just see those reviews go for days and days of staring--not even requesting changes. It's just a much harder activity to muster for a reviewer and then they have to be really on their game.

I think you're absolutely correct. Even without unit tests a super basic "does it build on the target hardware at all" test should be mandatory.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Volguus posted:

It compiles ... ship it.

It doesn't compile, though :(

Ship it anyway I guess

Jolly Guy
Sep 24, 2011

Volmarias posted:

It doesn't compile, though :(

Ship it anyway I guess

Just call it a beta version :)

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
Starting with a basic "does it compile" gate should be straightforward and not politically controversial.

Is there a reason (like requiring a special licensed compiler or something) why you can't just have a build server attempting to build every single change before it gets merged? Does it have to be compiled on the target hardware because cross-compiles don't work?

Falcon2001
Oct 10, 2004

Eat your hamburgers, Apollo.
Pillbug
The amount of times I would have shipped a CR containing a breaking minor build issue due to some weird pattern is way too high to ever accept avoiding it, IMO

Bongo Bill
Jan 17, 2012

If you don't have continuous integration, you're not taking things seriously.

Jamus
Feb 10, 2007
Where I work right now we have a bit of an issue with too many integration tests. It’s got to the point where each commit requires hundreds of days of EC2 time. It’s enormously impressive that the tests aren’t unworkably brittle, and they’re highly varied (we banned matrix style tests ages ago) but it still seems a little expensive to me!

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
Do you have any test coverage information?

Jamus
Feb 10, 2007

Rocko Bonaparte posted:

Do you have any test coverage information?

We do, but as far as I know, it's not a number that anybody looks at. If there are correctness issues coming out of the codebase, it's viewed as a management problem. And if the blame lands there, it's very hard to make the argument to deprecate a test just because it already has 100% LoC coverage.

Falcon2001
Oct 10, 2004

Eat your hamburgers, Apollo.
Pillbug

Jamus posted:

Where I work right now we have a bit of an issue with too many integration tests. It’s got to the point where each commit requires hundreds of days of EC2 time. It’s enormously impressive that the tests aren’t unworkably brittle, and they’re highly varied (we banned matrix style tests ages ago) but it still seems a little expensive to me!

How much realtime is this? It sound like either you're testing way too much and need to rethink your strategy, because I can only assume this has a lot of weird knock-on effects when it comes to releasing code.

Edit: to expand on this, the rule of business changes is 'turn an issue into a measurable cost of some kind'. If every time you push a new build you have to wait 24 hours to see if it completes, that means that you're highly incentivized away from short, regular releases and into massive huge ones, and the development cycle also becomes increasingly frustrating. We have a legacy web application where I work (big scale FAANG company) that still operates somewhat like this, but it has a modern version that's way nicer to use on a bunch of levels, so at least if you're stuck in this mode its something you're supposed to be moving away from. I also don't think the integration tests are nearly that complex, like holy cow.

Falcon2001 fucked around with this message at 19:37 on Sep 17, 2023

AskYourself
May 23, 2005
Donut is for Homer as Asking yourself is to ...

Jamus posted:

Where I work right now we have a bit of an issue with too many integration tests. It’s got to the point where each commit requires hundreds of days of EC2 time. It’s enormously impressive that the tests aren’t unworkably brittle, and they’re highly varied (we banned matrix style tests ages ago) but it still seems a little expensive to me!

WTF is your testing strategy to have hundreds of days of automated test running time ? Do you test for every values of integer for every functions or something ? Are you sending robots to another planet ? How did you even get pass an hour of run time without agreeing it has to be optimized ?

Genuine curiosity here

smackfu
Jun 7, 2004

Yeah I can’t make any sense of that. It would take a massively parallel test that you run thousands of copies of, or each test taking an hour each, or both.

Jamus
Feb 10, 2007

Falcon2001 posted:

How much realtime is this?

Maybe about 12 hours, and we try to make sure there's at least 1 full run of the suite per day. It's very parallel. I am finding out about all kinds of AWS rate limits I wasn’t aware of previously here. On some of the older instance classes in peak times AWS just doesn’t have enough of the instance in the region. It’s bonkers!!

The stuff you wrote about the types of problems this causes is absolutely true. Seeing each test in terms of the "value" it contributes per cost to run is where we're heading now.

I don't want to make it too easy to guess where I work, but we have one major product where correctness problems directly cause significant sales losses. However, it is also the kind of domain where correctness issues can be statistical due to unexpected CPU branch predictor results or similar factors. Additionally, we have the kind of engineering culture where sometimes even fairly senior engineering leadership will drop in and read your unit tests.

I think perhaps where we diverge from the testing issues of a standard SaaS are “integration” could be also considered “hardware-in-loop” testing maybe. We’re right on that line where we can’t afford to abstract away the actual hardware we run on.

I kinda love it here, a company of software engineers with good opinions™ about testing, many of whom are in management, and the problems we’re facing because of it are at least new and interesting.

Edit: we absolutely have the “a release is a big deal” problems

Jamus fucked around with this message at 22:16 on Sep 17, 2023

Falcon2001
Oct 10, 2004

Eat your hamburgers, Apollo.
Pillbug

Jamus posted:

Maybe about 12 hours, and we try to make sure there's at least 1 full run of the suite per day. It's very parallel.

The stuff you wrote about the types of problems this causes is absolutely true. Seeing each test in terms of the "value" it contributes per cost to run is where we're heading now.

I don't want to make it too easy to guess where I work, but we have one major product where correctness problems directly cause significant sales losses. However, it is also the kind of domain where correctness issues can be statistical due to unexpected CPU branch predictor results or similar factors. Additionally, we have the kind of engineering culture where sometimes even fairly senior engineering leadership will drop in and read your unit tests.

I kinda love it here, a company of software engineers with good opinions™ about testing, many of whom are in management, and the problems we’re facing because of it are at least new and interesting.

FWIW I also agree and don't think this is the worst problem to have: you definitely have a problem, but I don't think it's nearly as bad as many other tech companies. Having a culture that's overly safe is far from the worst place to be; it limits your ability to push changes quickly and I'm sure it's frustrating, but it also helps you be more confident that changes will do what you expect, and you'll almost certainly spend less time scrambling to fix an error that wasn't caught (ask me how I know). It is also hilariously high in cost, but that's not necessarily your problem. Some industries are just significantly more risk averse for good reason; my uncle worked at a big payroll company and their less of risk aversion was incredibly high because well, loving up someone's paycheck is a big loving deal.

I think your approach is pretty reasonable; I'd try and get a review of the testing and see if there's at least redundancies/etc that could be identified and eliminated as well.

Adbot
ADBOT LOVES YOU

redleader
Aug 18, 2005

Engage according to operational parameters

Jamus posted:

it is also the kind of domain where correctness issues can be statistical due to unexpected CPU branch predictor results or similar factors.

:psyduck:

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply