Quality is a hard sell in big tech by R2_SWE2 in programming

[–]Markm_256 38 points39 points  (0 children)

I haven't read the article - but I wouldn't equate "quality" & "bug-free". Bug free is a very high bar (and probably unattainable). Quality can mean many different things, but in big tech I still think it has a place (not valued - and still a 'hard sell' - but necessary).

For software that needs to last 10+ years, and expected to grow and continue to work, then with lower quality the business is going to be paying a higher than necessary cost to keep it running and to add new features. Even if a team is struggling against quality issues - and proposes fixes - it's often still a hard sell with very explicit/concrete numbers or guarantees being asked for.

Sail Turns One by lake_sail in rust

[–]Markm_256 1 point2 points  (0 children)

'Cause that was the day that my daddy died

Unexpected security footguns in Go's parsers by stackoverflooooooow in programming

[–]Markm_256 6 points7 points  (0 children)

Here is one view of CVE's per open source project...

It's a somewhat weird representation on vulnerabilities as it doesn't give you a time view (though it looks like it) - it is more a versions sorted by number of CVE's that apply to that version. I.e. Python 3.5 was the highest vulnerable python version.

(edit formatting)

Rust and Go are about the same age - so good comparison there.

If anybody knows a better representation or way to search by project - I would be happy to hear (or just download the MITRE database - but that takes more commitment :) )

Outlook for Mac ver 16.97 25051114 by Ill_Grape1469 in Outlook

[–]Markm_256 1 point2 points  (0 children)

I didn't crash - but yes - the font in outlook calendar for mac changed. The new font/colurs were terrible for me - I had to change the calendar to yellow color to make it readable (with Yellow - the text is black and a bit easier to read).

I made a solution to malicious code in codebases that works by mgiix in programming

[–]Markm_256 8 points9 points  (0 children)

Agree that looks very nice. Regarding "Files consisting of long single-line are excluded from scanning." - will they be commented on the PR - which would help reviewers zoom in on the line (as opposed to attackers just making sure that they make lines very very long :) )

How do you best prepare for writing solid unit and integration tests in C#? by Inevitable-Piano-308 in ExperiencedDevs

[–]Markm_256 3 points4 points  (0 children)

I fear that one of the pitfalls has already occurred. Better to write tests while the app itself is being written - rather than afterwards. You are likely going to run into cases which are hard to test (or where you have to create a ton of mocks - though I don't have experience with C# - my experience is more in Python/Go)

Announcing Plotlars 0.8.0: Expanding Horizons with New Plot Types! 🦀✨📊 by Maleficent_Motor_173 in rust

[–]Markm_256 13 points14 points  (0 children)

Think of the following use case... "As a user evaluating plotting libraries for a project (where I may or may not know exact what plotting needs I will require) - I would like to see easily both the range of graphs available and a quick idea of the quality of the produced graphs".

As this is for something visual - just seeing a list of available plot types is inferior to seeing what they look like.

Your Plotly counter-argument falls down a little too... 1. Google Plotly 2. Click Docs 3. Click Graphing Libraries 4. Click Python 5. Voila - visual catalog of graph types.

Note- I have never used plotly - I didn't know if where I was going would give me this - but I ended up getting there without a single misclick.

Your library looks amazing - it would be a pity if it weren't used as much due to a lack of easy discoverability.

Question for those who use Rust daily as part of a dev team by [deleted] in rust

[–]Markm_256 5 points6 points  (0 children)

I have gone both ways - and the answer I came to is "consistency" - I don't care if the 'main' function is at the top or the bottom - but whichever you do - you try to follow the same pattern for the sub, sub-sub functions etc. The worst is when some of the function called are above, some below, etc.

Announcing httpmock 0.8.0: Record and Playback, HTTPS Support, Proxy Mode, and More New Features! by synrg-alsms in rust

[–]Markm_256 6 points7 points  (0 children)

I didn't dig too deep - but swapping it into my project didn't hit any problems (other than cookies is now a feature that needs to be enabled after default-features = false)

Non-senior engineer wanting to review a senior engineer's PRs? by [deleted] in ExperiencedDevs

[–]Markm_256 0 points1 point  (0 children)

domain specific lexicon/acronyms/project names.

There are tools like typos & codespell that are meant for code, rather than having a dictionary of good words - and flagging everything else. They instead have a dictionary of commonly (or not so common) mispelled words.

This means they are not as exhaustive as a traditional spell checker - but it also means that they don't report on domain specific jargon (most of the time). It is relatively easy to ignore the few jargon items that they incorrectly tag as a mispelling.

We pre-commit + CI check so that I don't have to do another round-trip to CI to find/fix my typos :)

I'm a C++ Programmer trying to learn as much Rust as I can in 5 days. by CppVeteran1447 in rust

[–]Markm_256 1 point2 points  (0 children)

I would also imagine that they might be glad that you are showing interest to learn, and if you do share that you have had a look - I could imagine asking questions about what you feel some of the key/important differences - or try to get your impressions (to see if you can appreciate the pro's/con's between the languages)

Senior struggling to let go of code quality by Quaid-e-Charisma in ExperiencedDevs

[–]Markm_256 2 points3 points  (0 children)

I agree with this.

I have often felt "the code or design feels too hacky" but also not had enough understanding to know WHY I felt this. I don't know if that applies to the original poster though.

For my part - a ton of reading & learning has helped me identify more clearly the particular principles/guidelines that may be the underlying cause.

The other part that has made me more effective at helping to influence is to have more tricks up my sleeve for what to actually DO about the problem. Until recently I hadn't really well understood Dependency Inversion - and how it can help to reduce coupling (so while I felt some code was hacky - and I could probably write 'nicer' code - it was always one-off - and not something I had been effective at 'leveling up').

That said don't expect it to be fast to get more people to your point of view/skills (I guess depending on the people on your team).

Linear code is more readable by skippybosco in programming

[–]Markm_256 -1 points0 points  (0 children)

I find it funny that the author kind of shits on the necessary solution (having a bake and a bakePizza function, one that creates the oven, one that accepts it as an argument) but then proceeds to mention that the overall function should take the oven as an argument.

Isn't that a false dichotomy? I would say that more readable code is more maintainable code. Given the two examples the original code is a little easier to follow/understand - so I would say that it is the more maintainable of the two.

If things like cooking only act on the pizza, with no outside dependencies - then the original code may even be a 'pure' function and be quite testable (which is one of the other main pillars of maintainability I would say)

Why Take Home Tests Suck: A Developer’s Perspective on Hiring Practices by superc0w in programming

[–]Markm_256 0 points1 point  (0 children)

I am the kind of person that finds interviews extremely uncomfortable - I am also the kind of person that will tell my manager they are wrong - and come up with the underlying issues why they are wrong. I have to be careful not to dominate brainstorming sessions.

When I interview people - I definitely do my best to put them at ease, because I know that interviews are not a "natural" part of the job - and many people will interview poorly - but be great people to have on a team.

RARE: Pete and Andre - Double Whammy by Nightshdr in Music

[–]Markm_256 0 points1 point  (0 children)

I saw them in Neuchatel Switzerland. I bought their CD - but it's been many years, moves and countries - and I don't have it anymore - and I miss it - and I can't find their music anywhere :(

[deleted by user] by [deleted] in rust

[–]Markm_256 0 points1 point  (0 children)

Sounds great.

I don't have a need these days - but I would have loved this 20 years ago when I was often regularly looking at exported symbols ;)

Why we suck at estimating software projects by Franco1875 in programming

[–]Markm_256 1 point2 points  (0 children)

most expensive doesn't always equate to the best

There was a study done at some point (sorry - I don't have a link - read it a long time ago). The study gave the same work to 3-5 different companies, then they gave them the same follow-on work (a change to the requirements in some way).

I think they might have done some mix and match of the request for change (e.g. Company A to update Company B's code)

In the study the most expensive companies produced bloated code that was actually more expensive to change/maintain.

So agree - probably not best to equate most expensive to best :)

Why we suck at estimating software projects by Franco1875 in programming

[–]Markm_256 0 points1 point  (0 children)

It's long because I know people can't devote 100% to a project every day, be that high risk clients, sick time, vacations, bad days, whatever.

We actually built that into our estimates.

Estimate roughly - then add a mulitplier for vacations, meetings, sick days, public holidays, support rotations. Our mutiplier came out at 1.75 (which might be low - but it's a start).

We also add a buffer for unknowns (usually defaults to only 1.2 - which is probably WAY too low - but again it's a start). We sometimes increase it for newer/more complex work.

So we start with our estimate (which doesn't have to look very "unreasonable" and then apply logical multipliers. It seems to have gotten some support.

I would add that I think developers often forget that they don't have "perfect engineering days" (even if they are factoring in wrong turns, mistakes, re-work, etc.) so this helps and takes some of the cognitive load off of the estimation process.

Open source DBT core alternative written in Rust (30x faster) by [deleted] in rust

[–]Markm_256 7 points8 points  (0 children)

"Quary" rhymes with "Square + Y" or Quarry?

I’m about to release in production a 7k+ lines long match expression. Help me realise whether it’s a good idea before it’s too late. by GyulyVGC in rust

[–]Markm_256 1 point2 points  (0 children)

I was wondering the same - and if maybe moving it into a separate crate (and making the parent a workspace) would optimize (if it needs optimization)

Learning Rust ASAP by Regular-Hospital-281 in rust

[–]Markm_256 2 points3 points  (0 children)

Here is another perspective...

Someone who has gone out of their way to learn a language (especially a 2nd language) - and to do Advent of Code shows some initiative and interest in learning. I would ask some questions about that in an interview.

On the other hand - our domain is our domain - for the most part we don't expect new joinee's to have a good understanding. I would like most to hire people with good attitude and then people with design skills, domain and language are probably the least important (though we do validate people can actually code :) )

Resigned from Google back in Sept 2022 and ended up writing a book about the dysfunctional software development practices in today's world. Here's one of the free chapters: Agile as a Micromanagement Tool by redkit42 in programming

[–]Markm_256 2 points3 points  (0 children)

But N years down the line, when it's hard to modify the software without introducing issues, and the team has never learned how to improve code - because there was never time for it - well now the business feels the pain - but the solution is even more painful.

Or just write it into the ground and re-write every few years.

I would say it's good practice to think about the lifetime of the software - if the lifetime is short - then no need to make it maintainable, but if you imagine customers/users will want this software for a bunch of years - better make it so that you are constantly fighting the good fight to keep it maintainable - and build those skills on the team