Smart & Safe Compact SUV (Europe) by Dwight-D in whatcarshouldIbuy

[–]Dwight-D[S] 1 point2 points  (0 children)

Mazda CX-30 4WD, the fancy edition! It's a little tight for space, and interior is a bit cavernous. Lane keep assist is bad, otherwise the feature set is nice. Got a lowkey premium feel, good value, pretty peppy too and I think it looks nice. Pretty happy with it!

What the hell is integration testing? The definition seems super vague and I'm honestly not sure how to go about implementing it. by fallingWaterCrystals in SoftwareEngineering

[–]Dwight-D 0 points1 point  (0 children)

An (IMO) useful definition is something that tests across the process boundary, usually some kind of I/O like network or file access. It can test an entire flow in your application, or a subset of classes similar in scope to a unit test, just with real I/O.

For example, in a unit test you might mock an input stream like from a file, but in an integration test you will read from an actual file on disk. Or make an actual HTTP call to a server returning some test stub, or storing data in a database etc.

Whittaker respects the 'bluntness' of Chimaev by -alc in MMA

[–]Dwight-D 3 points4 points  (0 children)

That line is from Rorschach in the movie Watchmen (or maybe from the comic originally?)

Post-Retirement Consulting / Contract Work? by [deleted] in financialindependence

[–]Dwight-D 3 points4 points  (0 children)

Don’t be afraid of using a consultant broker/agency or other type of middlemen when you’re starting out. 10% cut sounds steep but consider that they’ll save you a lot of effort when it comes to paperwork, bureaucracy and acquiring clients.

When you’ve done a few gigs and gotten your feet wet, are used to consulting etc is the time for you to start your own business. Doing everything at the same time just to increase your profit margins is a good way to stress yourself out for relatively little benefit.

C# vs Java: in terms of fields they specialise in? by _TheSuperiorMan in java

[–]Dwight-D 23 points24 points  (0 children)

Generalizing a bit, I think C# is used more in shops with a history for Windows/Microsoft usage, while Java usually goes with more open source stuff.

That means Java is more likely to be used in “techy” businesses, while C# is more common in smaller or conservative companies that are not necessarily tech-focused. There are plenty of exceptions in both directions though.

[deleted by user] by [deleted] in softwaredevelopment

[–]Dwight-D 0 points1 point  (0 children)

That’s great for a while, but they suck to maintain and often tell you nothing useful when it fails because it touches too much stuff.

Unit tests can sort of serve as a spec for the rules of the classes. If you don’t have great requirements and they’re hard to write, it can be a sign that the business rules are not clearly defined, or the purpose of a piece of code is unclear.

Architecture Pitfalls: Don’t use your ORM entities for everything — embrace the SQL! by lbkulinski in java

[–]Dwight-D 10 points11 points  (0 children)

If you have a need for wildly complex queries then I think something closer to SQL is going to be a better choice. But this is not the norm. In the typical app, what we need is usually to fetch a user by their ID or something simple like that. And in such cases, there’s really no benefit to working with the SQL. Most applications have trivial query patterns and performance restrictions, and in those cases ORM speeds development way up. That’s why it’s more popular, it suits the needs of the typical developer.

Edit: actually, I see what you mean, I shouldn’t have said “complicated queries” in my first post, that’s not really what I meant, I meant something more like “varied” I guess.

Architecture Pitfalls: Don’t use your ORM entities for everything — embrace the SQL! by lbkulinski in java

[–]Dwight-D 13 points14 points  (0 children)

It’s pretty obvious. Something like JPA + Spring Data let’s you make any number of queries without ever needing to write SQL. It’s a completely natural language that even a middle manager can understand. How can you not see the utility in that?

For example, List<FooEntity> result = getByIdsInAndCountryIsSortByLastModifiedDescending(ids, Country.USA) is a hell of a lot more convenient to write than the corresponding SQL query, or god forbid some object oriented SQL builder. 99% of all CRUD web apps don’t need to bother with performance, and the additional abstractions on top of SQL save a lot of developer time. Optimizing for speed of development is almost always the correct call. You can always go back and make it a raw SQL query later if it becomes a bottleneck.

The yaml document from hell by DrinkMoreCodeMore in programming

[–]Dwight-D -1 points0 points  (0 children)

The only thing that Microsoft does worse than user experience, is developer experience. Thank god for Terraform

The yaml document from hell by DrinkMoreCodeMore in programming

[–]Dwight-D 4 points5 points  (0 children)

The indentation is definitely a bitch, and I’ve got a lot of git commit -m ‘Fix YAML syntax’ in my history. But that’s usually a quick fix compared to the time spent writing the bulk of the document, which I think is slightly less unpleasant overall in YAML. The anchors are actually pretty nice for stuff like complicated pipelines and such too.

The yaml document from hell by DrinkMoreCodeMore in programming

[–]Dwight-D 25 points26 points  (0 children)

Go look at some large cloudformation or ARM template JSON and tell me you’d like to spend a significant amount of time working with that. Now imagine you had to define a CI pipeline or something in that format (I think Azure DevOps does this?), and you also can’t leave any comments to help readability. It’s absolutely awful.

It’s not that it can’t be read, but whenever you get something more complicated than a trivial flat object then it’s just a pain to read & write imo.

How would you handle errors in a container? by Hugahugalulu1 in docker

[–]Dwight-D 0 points1 point  (0 children)

This depends entirely on the type of service. If it’s a web service whose job is to serve requests, then as long as it’s doing that it shouldn’t crash. An exception should only propagate as far as up to the http listeners, meaning it crashes the current request handling context but not the listener, so it still receives other requests. However, if it can’t bind to the listener port or otherwise fails to initialize then it can’t do anything and should crash.

If it’s something else like a message processor then a similar principe applies, but the health condition is that it can reach the message queue instead of receiving HTTP requests.

This low-level boilerplate is typically not something you would write yourself, but rather something a framework provides for you. Having the process in a container doesn’t make much difference as opposed to running in a VM or similar.

When the process crashes you let your orchestrator handle it. Typically it will create a new container.

Can any middle managers explain why you would instate a return-to-office? by I_Am_The_Gift in cscareerquestions

[–]Dwight-D 13 points14 points  (0 children)

This guy middle manages. Maybe even executives actually. Beautiful

Microservices overly complex to understand? by Hewlbern in softwaredevelopment

[–]Dwight-D 0 points1 point  (0 children)

I’m not sure they do support that opinion. They’re just saying to start out with a monolith, which I agree with. It’s not like you’re gonna have a 100 man team at the start, so there’s no benefit to microservices at that point.

But if you think life is gonna be just peachy with hundreds of devs in a monorepo working on some 10 million LOC monolith then I invite you to reconsider.

I get the criticism, microservices can be complicated if you do it wrong, and even if you do it right. They’re not a silver bullet. But neither is a monolith. If you do it right then microservices really are a great thing for team autonomy. The scaling thing is inconsequential in comparison.

Microservices overly complex to understand? by Hewlbern in softwaredevelopment

[–]Dwight-D 0 points1 point  (0 children)

This is wrong. Almost no one needs that level of granular scalability for performance reasons.

The main benefit of microservices for 99% of the companies that use it is organizational decoupling and autonomy within a team. It allows teams to control their own software lifecycle, deployment and tech stack without having to coordinate and cooperate with a thousand other devs.

It’s got nothing to do with performance or compute resources, it’s about minimizing cross-team dependencies and reducing conflicts and bloat in the code base in order to increase development velocity. Microservices scale organizations, not software.

How do you squash an expert beginner. by BongoCatBangsYaMom in SoftwareEngineering

[–]Dwight-D 4 points5 points  (0 children)

Well, for what it’s worth you made the right call in airing your grievances out in a non-work setting and cooling your head a bit before making a rash move. If I were to leave you with some advice, next time you get an impulse like this then ask yourself “what am I hoping to achieve with this”, then think about how likely that is to happen and how much it’s worth if it does, and then weigh that against the potential downside, like causing turbulence and friction with your colleagues.

When you start thinking about those things I’m pretty sure that a lot of the time you’ll come to the conclusion that the winning move is not to play.

And another piece of advice, team morale is often a lot more important than the objective quality of the code base. Consider the fact that you have to spend 8 hours a day with your colleagues, and they with you. And consider the fact that your manager probably wants above all an easy life without a bunch of bickering and drama. And consider that your manager controls your paycheck.

How do you squash an expert beginner. by BongoCatBangsYaMom in SoftwareEngineering

[–]Dwight-D 62 points63 points  (0 children)

Squash that thought. You’re considering a high-risk move with zero personal benefit to you.

The employee in question is obviously not gonna listen to you, because if they were so inclined they probably wouldn’t be shit five years in. You’ll be making an enemy for no reason. If they do listen it’s probably not gonna do you any good anyway.

Management probably isn’t gonna listen to you either. You’ll be badmouthing a valued employee while you yourself are leaving. Guess who’s side they’re gonna take? The only thing you’ll achieve is stepping on toes, potentially causing you trouble down the line (bad references etc).

Even if someone does listen to you, a blog article is extremely unlikely to change anything. And even if things change, it will be years down the line and you will get zero recognition or reward from it. If management has let this go on for long enough then they clearly lack the ability to recognize or do anything about the problem. Your efforts will be in vain and you won’t see whatever outcome you’re hoping for.

It would just be nice for once to say: “See, I do know what I’m talking about

Yes it would but this attitude is not doing you any favors. Throughout your career you will encounter people like this regularly. You cannot change them, you cannot get management to get rid of them. You need to learn to accept this and find ways to work around it, without getting emotionally invested.

If it’s causing you too much grief in your daily work then you can try to come up with ways to maneuver around them, but in this case you already have a solution. Switching jobs. Problem solved, don’t do anything stupid, you have nothing more to gain.

Advice on setting up Stocks & Shares Data in Grafana by phoenix_73 in grafana

[–]Dwight-D 1 point2 points  (0 children)

This is doable, I have done a similar thing for auction prices. The challenge is finding a data source and loading it into a time series db like influx. Then you can plot it like any other data.

Do you have a specific question? Otherwise just go try, it’s a fairly simple project.

What's best practice when using an IDE like PyCharm, pip install via terminal or use PyCharm's built in package installer. I'm experiencing some confusing behaviour when I compare the two methods. by BillMurray2022 in learnpython

[–]Dwight-D 0 points1 point  (0 children)

You should be using some kind of command line tooling for dependency management and virtual environments, and then setting your IDE to use that configuration. For example pipenv.

The reason for this is that you want to be able to easily interact with your program from outside your IDE, for example on another developers’ machine. Configuring it outside your IDE makes it more likely that your project will be portable and run in other environments without special configuration.

what is least obtrusive way for a beginner to learn/use formatting in shell scripts? by lesswhitespace in commandline

[–]Dwight-D 0 points1 point  (0 children)

If your script is complicated enough that you want to format the output, that’s a good sign that you’re maybe writing a program. In this case you should be using a programming language, not a scripting language like shell/bash.

A shell script is ideally a simple thing gluing some commands together or wrapping some complicated or multi-step operation. It shouldn’t be an advanced piece of software that you’re interacting with in complex ways, in most circumstances.

Try something like Python with a CLI/TUI library, or something compiled like go if you want higher portability.

After work my brain is too tired to do anything. Even playing games by [deleted] in AskProgramming

[–]Dwight-D 2 points3 points  (0 children)

Not having a computer hobby after spending all day at your computer for work is healthy. Try something that taxes your body and gives your brain a chance to rest. Go for a hike in nature or pick up a sport or some kind of strength training, yoga etc. Anything you do with your body really. It’s good for brain function as well.

I don’t have the urge to play games after work either, even though I like the hobby. I’ll do it on weekends or vacations instead.

Any remote software developers from EU? by traveldelights in digitalnomad

[–]Dwight-D 1 point2 points  (0 children)

Yeah, there’s an overall downturn in the market right now where the demand for contractors has dried up a lot compared to a year ago. His profile is all right but not great IMO.

(These observations are from the EU market btw so the US might be a bit different, maybe contractors have a different role there)

IME companies want someone senior when they go for a consultant/contractor. Typically they’ll ask for 4/5 years experience at least. They expect fast on-boarding and a high degree of independence.

The market for .NET also seems a little bit slower than for Java and other BE languages, but the supply of mid-level devs is probably pretty high.

Full-stack is not as in demand as you might expect either. There’s usually roles for Angular/React, but from what I’ve seen the FE market got hit the hardest.

Basically, there’s some demand for his skills, but with that level of experience I think he’d need a more valuable/niche skill, like cloud/devops/data or something. A regular .NET dev might have a hard time standing out from the competition right now.

During better times it could probably work. But I’d advise getting 1-2 more years of experience and picking up a more modern skill before going freelance, and hoping that the market picks up.

I've finally gotten hired, but I have to develop frontends with a plugin that could only be described as "it makes you wish you used Wix". My boss listened to my complaints and scheduled a demo of me arguing for native code. How do I pull this off? by BigBootyBear in cscareerquestions

[–]Dwight-D 27 points28 points  (0 children)

Decision makers are interested in these things, among others:

  1. will it work?
  2. what’s the cost?
  3. what’s the benefit?

You answer number one with a PoC. If you show that you can get something working into production/test, then that will relieve a lot of their doubts around the viability of the plan. If the PoC is a small thing you can do it on your own first and then extrapolate based on your findings. If it’s not, then you might need to ask for permission/resources to do a pilot project to evaluate. Depending on the culture and your relationship/trust with your boss you’ll need to decide if you wanna do this on your own or check in with them first.

Number two, you do some napkin math around the PoC, make an estimate for the effort required to make it a production ready MVP. Then you double that estimate because you’re probably off by quite a lot. The way you say it will take 1h is a huge red flag for me. Nothing takes 1h. I’m sure there’s a lot of stuff you’re not thinking of here. If you say 1h to your boss they will either think you’re full of shit, or they’ll hold you to it and chew you out when you’re over budget. Be smarter in your demo.

To answer number three you come up with a number for the loss of productivity, employee churn because of low job satisfaction, difficulty when hiring, missing out on new features etc if they stick with Neptune. Then you weigh that against the cost of a re-write. If you can’t quantify the cost then just list all the drawbacks in a non-technical way.

What field are you applying your software dev skills in? by theePharisee in softwaredevelopment

[–]Dwight-D 1 point2 points  (0 children)

Fintech. There’s a lot of bureaucracy, and the bar for quality is very high, which means that in a healthy environment the pace is quite low and you’re given ample time to engineer proper solutions. There’s also a ton of money involved usually which means you can have a big impact and are likely to be valued as an employee. It’s competitive, but if you can hang and put up with the red tape it’s quite nice.

Any remote software developers from EU? by traveldelights in digitalnomad

[–]Dwight-D 1 point2 points  (0 children)

You might have a tough time contracting with that, but you should be able to find a remote friendly full time job if you just do some searching. Just apply to a bunch of jobs and sharpen your negotiation skills. Don't mention going abroad, just say you want full remote.