25+ yr Java/JS dev
Linux novice - running Ubuntu (no windows/mac)

  • 0 Posts
  • 52 Comments
Joined 8 months ago
cake
Cake day: October 14th, 2024

help-circle
  • All I can really offer is if there are reviewers who review your kind of thing, watch their reviews of similar products, look for what they highlight as really good or bad, and then do what you can to make sure your stuff gets a good review. Then contact the reviewers and offer them a gratis copy in return for an honest review. If you get a good review, that can generate word of mouth that can get you a little momentum.

    That’s what I’d do if I were starting on your journey. I don’t know whether it’s a good suggestion or not. Maybe others will come along and offer better.


  • There is also just something very alienating when you work in large teams where each dev only contributes a small component, a lack of knowledge about the system is not only a good thing there but an expected paradigm to create reusable code.

    No. That is to say, it might be common, it might be expected, but it is often not good. Every time I join a new team and am exposed to a new code base, I’m astonished by the amount of absolute shit code that results from reusing shit in ways that it was never build with the idea of supporting.

    Why? Because someone was focused on completing a single story as fast as possible and they created a dependency they shouldn’t have. And this grows and festers until you have an unmaintainable nightmare.

    In order to build solid reusable code you must build it with that knowledge and intent. I’ll cut my rant off there, but I recently joined a new team and the wounds are all very fresh.


  • You’re not just making sure you write the letters correctly, you’re also following the syntax rules of the language you’re writing. And while you’re writing, you’re reinforcing those rules in your head.

    I get where you’re coming from, but I’ve worked with a lot of bad developers who never got the hang of this even as mid-level developers. On the other hand, I understand the utility of knowing how to do these things for ourselves. There are a number of “black-box” libraries that were just an absolute mystery to me until I tried implementing them myself and began to see these libraries are usually not complex so much as they are thorough in covering edge cases that 90% of users will never care about.

    It would definitely be a shame if these tools caused new developers to bypass fundamental skill development. My only hesitation is the number of developers who should’ve developed those skills and never did before AI. There’s something wrong either with how developers are learning or who is getting into development.

    I spent a couple weeks trying to use CoPilot and at the end I still had to correct its shitty code, which either hallucinated features I wasn’t implementing, or hallucinated syntax rules I wasn’t using.

    We are using CoPilot. As a code-completion engine it is handy. I’m much more skeptical about the new code it writes. Like you, I have not had good experiences with that.

    Also, I’ve never heard of anyone paying $20 a month for the privilege of not writing in cursive, or being unable to write because they don’t have internet. Something to think about.

    You’re right. Tool access is certainly something to think about. I have more nuanced thoughts, but I don’t want to disagree just to disagree, you know?


  • I agree, but I acknowledge we could be at a “cursive writing” moment where something that was once a critical skill becomes irrelevant. That’s sort of a pending question at this point.

    I mean I’ve spent a lot of time writing regex to automate large sets of changes. Sometimes it can be a bit fiddly to get the regex just so. Like replacing direct field access with getters where you have to find the field access and change .foo to .getFoo() and the capitalization can take a couple of tries to get just right.

    With AI you can literally just say “replace all direct field access (e.g. thing.foo) with getters and setters” and the AI will do it in under a second. It will still be a very useful skill to be able to do things like that with regex because not everything is so easy to communicate to the AI, but it will become less frequently needed and a lot of developers who never learned that skill will get by using AI and just doing the rare things AI can’t do with repetitive keyboarding.


  • I asked a question on there about Apache Poi. Then no one answered it so I found a solution and answered it myself. Must’ve stayed relevant because I fielded a few questions about it for years.

    Then they took my account away, I think maybe because I didn’t confirm my identity after a big breach? Then I looked for my Q/A and it was attributed to someone else. I was hot about it for a minute and then realized I didn’t care and was finally free from being the expert in that one niche thing I’ve never done since.


  • To the first part, I agree. A skilled developer who can quickly separate the wheat from the chaff can get a boost out of AI. I’d put it at around 5-10%, but I’ve had some tiny projects where it was 400% boost. I think it’s a small net gain.

    As for your second point I just have to disagree. There are no numbers but it is clearly selling the idea of the majority of code being AI generated, and that’s bullshit whether it’s an outright lie with numbers, or merely vaguely misleading. It’s like when someone cuts off the bottom of a graph to make relative change look huge. It wants people to glance at it, get the wrong idea, and move off without curiosity.



  • I don’t want to pretend this is some kind of gospel or anything, but the way I see it messaging frameworks are meant to broadcast to listeners — one directional and 1:n. And to use a radio analogy, the radio broadcasts music, but you don’t have to update them that you’ve heard a song. And if you do need to send something back, you pick up the phone and make a (rest) call.

    I think if you need bidirectional communication between systems, they are coupled in a way that just makes sense to use rest calls (even those are almost always going to be one client, one service, not each one calling the other, right?). If you’ve got an architecture idea I’d be happy to entertain it. There are probably whole industries with use cases I’ve never encountered before. But as far as I can tell, using an event framework was never intended for bidirectional communication.

    That being said, I can imagine an application that listens to a sales stream and identifies inventory that needs to be shipped from a warehouse, and then the warehouse broadcasts a stream of shipping data. But even in that case, I feel like the listener that generates loading orders and the broadcaster that updates the states of outbound shipments would be two separate services.


  • Glad I’m not the only one who read the article and thought it sounded like failures of research and planning more than anything.

    1. There are different event system with different guarantees. If the guarantee is “at least one delivery” that means you have to deal with duplicate messages. If it guarantees “At most one delivery” then you have to deal with missing messages.
    2. Don’t use asynchronous events for sequential processes. How did they not foresee this problem before ever writing a line of code?
    3. This is just my strong opinion, but unless you know exactly what the fuck you’re doing I would either emit events or ingest events. Not both.
    4. What is the event driven design trying to solve? If the answer to this doesn’t involve throughput limitations or disparate systems responding separately (completely isolated from one another) to a single event, what the fuck are you even doing?

    And last I’m going to bring up a pet peeve; maybe it’s related or maybe I’m just projecting. Agile doesn’t fucking mean make the story work in a sprint and think about nothing else. I see far too many developers and PMs both with the attitude of just making it work and iterating/improving will happen later. What you end up with is architecture by accident, which is exactly what this sounds like. You’re going to constantly have sprints redoing a bunch of work when your architecture starts to coalesce and nothing fits, or you’re going to have spaghetti with code duplication and awkward coupling everywhere.

    Agile is great, but don’t fuck it up by thinking vibe architecting is a thing. Plan shit, create standards, enforce them. Acceptance criteria isn’t the end all be all of story success.

    I’ve seen some shit.


  • Sure, there’s overlap. Democratic orgs often share staff, money, and office space—it’s a dense web. But none of that makes McGowan responsible for the app’s failure, nor does it suggest any connection between her relationship with Murphy and the breakdown of a software development process. It’s innuendo, not evidence.

    Hostility to Bernie, if true, has no bearing on code quality. Nor does a relationship with the Buttigieg or Biden campaigns.

    And as a developer, I can tell you: it’s much harder to sabotage an app in a specific way than it is to simply build one that works. If there’s a conspiracy here, it’s hiding behind a wall of very ordinary technical incompetence.




  • I read the Washington Post (via Seatle Times) article instead of the free beacon garbage.


    So… a software company with piss-poor development discipline got bought by a bigger company that seemingly knows even less. And they were contracted by the Democratic party to create a vote reporting application, which they largely failed to do.

    I’ve been a software developer for almost thirty years, mostly working for contractors. The only scandal I see here is how god-fucking-awful software project management is, and believe me that isn’t news. This is what you get for hiring a bunch of developers who are either green or don’t give a shit about the quality of the software they write. I could write an epic fucking rant here about that.

    But what I don’t see is a single relevant detail in the actually submitted article.





  • Man, nothing we can do about it but I think IT hiring is so fucked right now. I have worked with so many people and on so much code that has no place in a development shop.

    I always blow hacker rank stuff but honestly that shit isn’t even that important to the job. You need maybe one person on a team who is good with algorithms and can reverse binary trees and bullshit.

    And every time I get a job I’m coding circles around the rest of my team. To the point where the most painfully part is being unable to write it all myself or just sit everyone down and teach them. But I was out of work for 5 months last year and I’m getting near 30 years of experience.

    To be fair, could be selection bias and big fish in a small pond. If I can’t land jobs with great companies I’m not comparing myself to the best of the best.

    Anyway, the system isn’t designed to help folks like us succeed. I’d like to see some kind of IT workers union that functions as peer mentoring, and certification that once someone learns an environment they are effective. Based on what I’ve seen, there is a lot of room for something like that because education and certifications aren’t getting it done.

    OTOH dealing with seniority over aptitude and skill is a big detriment of unions in my observation. I don’t know, I wouldn’t mind seeing someone give it a try.

    As for advice, networking. As far as I can tell, every job mostly comes down to looking a manager in the eyes, shaking his hand, and convincing him you’re someone who can make things happen. And sending out CVs is the most circuitous and fraught route to getting that ten minutes.

    Recruiters get me almost all of my jobs. But I also have a decent network of folks I’ve impressed along the way, it’s just that few of them are in hiring positions. They have recommended me to their managers for positions before.