• 0 Posts
  • 27 Comments
Joined 1 year ago
cake
Cake day: August 2nd, 2023

help-circle




    • Your Device’s Internet Protocol address (e.g. IP address), - absolutely necessary for anti-ddos techniques
    • browser type, browser version, - necessary for UX to build a functional website for the browsers that customers actually use
    • the pages of our Service that You visit, the time and date of Your visit, the time spent on those pages, - critical for determining what is popular and what isn’t to improve how the interface is designed and what parts are pulled forward and what parts are hidden in menus
    • unique device identifiers and other diagnostic data. - useful for determining how often you switch devices and the performance and other experience metrics to drive making the app more user friendly

    I work on web software professionally and this is a pretty minimal list that is completely justifiable for maintaining operations. If you can’t answer basic questions like “what are users doing with the app?”, you can’t make intelligent decisions about how to improve it.

    There’s a lot of the same stuff here: https://legal.lemmy.world/privacy-policy/

    I don’t know anything about this app or company so I’m not going to defend them, but there aren’t any real red flags here. If this amount of data collection bothers you, you really should stop using the internet in general.







  • We solve that problem using naming conventions. Branch names must start with the issue key (we use Jira). You don’t do anything in that branch that’s not part of that issue. If you do, you must prefix the commit message with the issue key that it goes with. The commit itself identifies what changed. The Jira issue provides all the backstory and links to any supporting materials (design docs, support tickets, etc). I have to do a lot of git archeology in my role, and this scheme regularly allows me to figure out why a code change was made years ago without ever talking to anyone.



  • As someone in the US, 40 hours per week is the minimum. Recognition for “being a hard worker” has required 60+ hours at some places I’ve worked. This is for a fixed salary and no overtime pay, mind you. Then you’re usually on an on call rotation every few weeks where you may have to work off-hours if something comes up. That’s additional unpaid hours. My current company pays $80,000 USD for new college grad software developers.

    US holidays are 8-10 days, and junior devs usually start with 5-10 days of vacation. Health insurance costs at least several hundred a month (your employer also pays about 3x more than you towards your insurance premium as a benefit).




  • I’ll often cludge something together just to make it work but I don’t feel like I made any progress

    That’s a good first step! I’ve been programming for ~25 years and that’s still usually where I start. Get a little code that compiles and produces some kind of output or tracing. Then compare the output to your requirements and tweak the code to get it closer to the right behavior. Run it and repeat till it’s doing what you want. Do this cycle with small changes, like a handful of lines or a short function, not 20 mins of coding at a time.

    Test-driven development can also help with breaking down tasks. It takes a good amount of practice to learn the right patterns, but it’s an approach that forces you to work with small narrowly scoped tasks. Then you chain those testable tasks together to create more complex behaviors to create robust testable code.

    Experience takes time. Junior developers frequently ask me after I’ve helped them “but how did you just know how to do that? I’ve been trying to solve that for an hour and you did it in 10 seconds!!” The answer is because I’ve solved that exact problem before. More than a few times.




  • My cousin got a job working on FOSS for 5 years out of college. His secret? Work 40+ hours a week literally for free, crash on people’s couches, and get his girlfriend to feed him. He eventually got a real job because that’s obviously totally unsustainable.

    Unless you have a sugar daddy/momma or a trust fund, you need an actual job. Some companies make good use of FOSS and give back to the community. But I’d suggest settling for any job to get an income and experience while you figure out what companies you actually want to work for.


  • I don’t recall which Java environment was used; I’m not a Java developer so some of those technical details went in one ear and right out the other. They did implement snapstart for Java lambdas and that made the warm start time similar to Go. But the runtime performance isn’t even close after they put a bunch of effort into trying to optimize it.

    I truly can’t recommend anything other than Go for lambdas. It’s better by every metric and it’s a lot easier to manage your infrastructure (just a single binary file with no file or environmental dependencies; it doesn’t get any more straightforward than that.) I’d definitely recommend doing a PoC to compare performance for your specific workload in Java vs. Go. As long as you have devs capable of writing Go, it’s a real winner. If you don’t, I’d still go with nodejs lambdas over Java; Java still seems to require a lot of tweaking to get its performance comparable. It’s a 30 year old swiss army knife, and it shows.