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

  • 0 Posts
  • 115 Comments
Joined 2 years ago
cake
Cake day: October 14th, 2024

help-circle
  • I thought this was an interesting article. The only thing I would want to point out is that you could probably implement a barebones message queue system in a couple hundred lines of code, but Apache Kafka exists essentially covering way more edge cases and failover scenarios and scalability, and I wouldn’t say it has no clothes.

    I’ve been writing code in a lot of domains for a lot of years and my observation is edge cases and error handling is the biggest difference between any professional package and amateur garbage.

    But I suppose if the goal is clickbait rather than accurate summary, touché — you got me.





  • I’m not trying to defend that guy but I work for who is hiring when I’m out of work. I’ve spent 11 out of the last 40 months unemployed, and as a result I have no retirement savings to speak of — I can’t afford to turn down work. I’ve worked for Ford, Home Depot, Autozone, Uline (honestly felt so relieved to get laid off, that place was fucking scummy), the Army, and a shit ton of places you’ve never heard of. I had to turn down working for an insurance company — and I think they are pretty shitty — because they wanted to pay 1/3 what I’m making today. And I make fucking nothing compared to Silicon Valley.

    engineers work for the company, not for users.

    On the other hand I’ve never made any bones about the fact that I work to develop good products and if someone can make money on that good for them, but I fight for the best design for end users I can. I have mostly developed internal software, though, and no one but me cares about internal users. You can tell because everywhere you go, front line workers are bitching about garbage software.

    I might be wrong about the best solution, but I refuse to be evil. Even at Uline, I worked to make better software for the workers. But what a bunch of assholes.




  • Probably JS as the fact that every computer has by default everything you need to execute JS. But there is a bunch of browser stuff you have to worry about before you can do anything with it. I’m not sure how you learn JS before html.

    With Python you can do simple command line stuff without having to really know anything else. You can learn one concept at a time.

    That being said, people have a lot of familiarity with browsers and it might feel less abstract. JS might a better choice for demystifying coding. Python is probably a better choice for accomplishing anything useful.



  • you’re really nitpicking my English

    Mate, the hardest part of software development is communication and autism is ubiquitous — got a touch myself. So I over explain and I’m very specific. But let me make one thing abundantly clear: I don’t have time to spend this many words trying to be a pedantic asshole. I have much better things to do with my time. If you don’t like my approach, feel free not to engage, but I’m here trying to distill some value for you out of my experience.

    Now, I don’t put too much stock in up and down votes (and to be clear none of your downvotes is from me — I don’t waste time responding to stuff I downvote), but the pattern suggests that what I’ve said resonates with other developers.

    So of course I’m more curious to understand how to solve situations when you do have conflict, if you don’t it’s easy.

    So here’s the disconnect: you’re worrying about shifting burdens like it’s a huge weight, but conflict is exceedingly rare — too rare to worry about. It’s a non-consideration.

    I’m going to leave it there because I think anything else would just be repeating myself.


  • If a story gets created, the code will be merged… when it’s right. If you’re talking OSS, then I am out of my element, but I’ll wager there’s no universal answer because each code owner sets their own standards.

    you have to appoint a person that have the final say on what to merge right?

    If there is work that needs to be done, and you are asked to do it, the code will be merged when it’s right. I don’t decide what to merge, I decide when something is ready to merge.

    The problem of deciding what should be merged or blocked

    If you want to merge something and I read it over and reject the PR because you forgot about concurrency, that doesn’t mean you don’t get to merge, it means that it’s not finished baking. And assuming you give a shit about the code your response should be “oh shit, lemme fix that and resubmit” OR “actually this code will never have concurrent access, and here’s why.”

    You’re making this process sound adversarial when it isn’t. It’s a group effort. Everyone wins or loses together.


  • Everything gets reviewed. If you have a constructive comment you put it in the review.

    I note when I think I have a better way of doing something but the existing way works fine, and I leave that fix up to the submitter. But sometimes I just say no this is wrong. And then whether it gets merged anyway depends on my role. I’m a tech lead now so that’s basically the end although if they want to argue their case I’ll hear them out.

    The devs I work with are all seniors and have all been working in the system longer than me, so I respect them and listen when they disagree. Generally when that happens I’m right in principle and they agree with me, but the code is a fucking mess and we can’t do A right without having to change the rest of the alphabet, and we have bigger fish to fry.

    In other positions I made my comments and whoever was in charge got to decide whether to accept the change or send it back. I try to always make at least one constructive comment even if it’s just like: I really like how you did this.

    I’m not sure what problem you think is being moved to the reviewer. It’s a team and everyone has the same end goal. I appreciate when my code is reviewed because any of us can make a mistake or forget to consider some outside factor. Code review is where assumptions are tested and discussed and hopefully everyone comes away knowing more and agreeing on a path forward.



  • MagicShel@lemmy.ziptoProgramming@programming.devWhat do coders do after AI?
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    2 months ago

    To each their own I suppose. By which I mean maybe the author enjoys different parts of coding than you do. Trying to wrangle AI into writing something decent is generally an exercise in frustration for me. But I enjoy architecting and figuring out how to define units of work that are small and self-contained enough to get AI to understand.

    I’ve been mulling over what kinds of architectural changes might make it easier for AI to be able to contribute. That’s a puzzle I find interesting in the same way I enjoy other programming problems.


  • My experience with this is over a couple of decades old at this point. So I don’t know that any of it is relevant or useful.

    At the time I was certified in Lotus Notes development and administration. It was a bit of a niche, but it was used lots of places. I created a business to do business under.

    There are websites that deal with corp to corp contract work. So you can find work that way. There was also a specialist independent sales person who worked with IBM customers (Lotus Notes was an IBM brand at the time) who offered to be my sales branch. I never made enough money to hire him. Maybe I should’ve, but I was afraid I wouldn’t be able to get leads and it would be a waste of money.

    I worked with small and medium businesses so there was some word of mouth business from managers knowing one another and recommending me. I tried to go to user group events and meet managers and contractors that way. Having a good relationship and recommending each other for various things is another way of getting business. You could also find some c2c opportunities in other places like dice.com.

    Ultimately, I was not cut out for sales or business ownership. I lasted the better part of a year. During that year I got unemployment from being laid off from my last job but I didn’t pay myself a regular wage from my company — maybe that wasn’t strictly legal, I don’t know, but the money wasn’t coming in regularly enough to pay myself any kind of regular wage. Anyway, I got away with it so whatever.

    I had a couple of good months and a lot of shit months. Between unemployment to help smooth the lows and the business I was able to bring in, I was able to pay for a very shitty house for my family and food. We did have to sell a car. I didn’t plan for it, I just got laid off and walked out the door with 2 weeks of severance and a list of customers I’d been working with.

    I took the next job offer that came along. But if you don’t hate the relationship building and sales work and negotiation, and you have some savings set aside to weather lean months, and stick with it for a few years, you could probably do better than I did. Or maybe it’s all different now anyway. Probably a lot more Twitter and self promotion.


  • You can also use the OpenAPI generator to turn a well-formed Swagger document into code. I’ve used it before. I didn’t hate it.

    The generated controllers have a lot of boilerplate (I want to say 5 classes per controller), but it does guarantee the code is in sync with the documentation.

    That being said, fuck manually maintaining swagger documents. It’s the worst of all possible works.


  • I tuned my usage up once I realized it is universal punctuation. I used to be unfamiliar with it and agonize over which punctuation was best for a given sentence. Can’t decide between a comma, semi-colon, comma clause, parenthetical, or what-not — just use an emdash and don’t fucking worry about it.

    I’m pretty sure I haven’t been accused of being an LLM. Despite my lazy command of the emdash and comfortability with multisyllabic and archaic words, I think LLMs come across as insufferable bores and I don’t think I do that — not to that degree, anyway.


  • I’ve been a developer for thirty years. This is mostly nothing new. I’ve been ranting about the next quarter mentality since the early 00’s. Cool shit does get built, but it’s mostly hacky stuff that proves its value and then must be turned into the real product it pretended to be.

    I’m much closer to the deliver management side of things (at least that’s what my timesheets say) and it’s still someone who has only thought about happy path stuff deciding and selling (Tia customer or to upper management) how long a project should take before there are even people to build it.

    I’m ramping up a project now to replace an existing hacky React solution with a BFF/orchestration service with a Salesforce front end. It’s been scooped at 4 months since I was hired on 5 months ago. Wednesday we had a meeting to the effect that it was only scoped as a dumb proxy to rebuild the same janky solution in SF that we have in React. Except in none of the planning meetings did that ever come up. So I’ve been architecting an orchestration layer and the customer is only expecting to pay for dumb proxies. I wonder how this project is going to go…

    That being said, I’m not hating the job. It’s always been this way. I’ve always had to fight with my managers to eek out decent products while working with my team on what can be compromised and removed from MPV in the how the customer will see the value and give it more phases of development to achieve the original vision. I even have a common refrain for my customers: “I want to make you happy. If my company can turn a profit from that, that’s between you and them.”


  • MagicShel@lemmy.ziptoProgramming@programming.devThe Cult of Clean Code
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    2
    ·
    edit-2
    3 months ago

    That’s not my observation. I could flip it around and accuse the author of defending massive if/else chains because my experience is that anything that needs more than a handful of lines of code is either a complex mapper or a nightmare of failed Boolean algebra.

    That doesn’t mean the bad code I’ve seen is OP’s fault. It means there’s a lot of shit programmers and adopting a particular style doesn’t fix it.


  • I think this author has some points, but this is attacking the wrong thing.

    Clean code is not the source of the problems described. If you see similar code and try to extract a common abstraction without further consideration, congrats, you’re thinking like a junior developer, and that’s not Clean Code’s fault, to pull one example.