< Back to the archive

Like what you see? Subscribe here and get it every week in your inbox!

Issue #302 - December 22, 2024

Here are the top threads of the week, happy reading!

Top comment by simianparrot

Nothing because I’m a senior and LLM’s never provide code that pass my sniff test, and it remains a waste of time.

I have a job at a place I love and get more people in my direct network and extended contacting me about work than ever before in my 20 year career.

And finally I keep myself sharp by always making sure I challenge myself creatively. I’m not afraid to delve into areas to understand them that might look “solved” to others. For example I have a CPU-only custom 2D pixel blitter engine I wrote to make 2D games in styles practically impossible with modern GPU-based texture rendering engines, and I recently did 3D in it from scratch as well.

All the while re-evaluating all my assumptions and that of others.

If there’s ever a day where there’s an AI that can do these things, then I’ll gladly retire. But I think that’s generations away at best.

Honestly this fear that there will soon be no need for human programmers stems from people who either themselves don’t understand how LLM’s work, or from people who do that have a business interest convincing others that it’s more than it is as a technology. I say that with confidence.

Top comment by kmoser

Long time freelancer here (decades). I've gotten 99% of my contracts through word-of-mouth. You will get better long-term results than simply grinding through job boards (which you should still do--you never know). You will want to do two things:

1) Cultivate your existing network. Just the other day I reconnected with a friend I haven't seen in several decades. Guess what? He just so happened to be a software dev, and needed another dev to help him with a project. This is just one of many, many stories I have. Call or email people to see how they're doing. Even better, meet up with them for coffee or a meal. This doesn't have to be mercenary; you're probably already doing those things. But start reaching deeper into your network.

2) Build your your network by meeting others in your field and/or potential customers in person (e.g. at user groups, meetups, tech talks, etc.). Talk about what you do and love to do. Presumably that involves your skills that you want to get work in.

Finally, be consistent and reliable and communicate clearly.

As for selling yourself when you're more of a generalist, I wouldn't worry too much about this yet. The key will be when you're presented with a job opportunity that leans in one direction (e.g. 90% dev, 10% management), and you'll have to decide how far you're willing to bend to fit it. But right now you're just getting the word out.

Top comment by isoprophlex

An anecote that helps you maybe:

I do contracting work, we're building a text-to-sql automated business analyst. It's quite well-rounded: it tries to recover from errors, allows automatic creation of appropriate visualisations, has a generic "faq" component to help the user understand how to use the tool. The tool is available to some 10.000 b2b users.

It's just a bunch of prompts conditionally slapped together in a call graph.

The client needed AGENTIC AI, without specifying exactly what this meant. I spent two weeks pushing back on it, stating that if you replace the hardcoded call graph with something that has """free will""", accuracy and interpretability goes down whilst runtimes go up... but no, we must have agents.

So I did nothing, and called the current setup "constrained agentic ai". The result: High fives all around, everyone is happy

Make of that what you will... ai agents are at least 90% hype.

Top comment by UniverseHacker

The first thing is to be kind, empathetic, and understanding when someone isn't as good at you as something. This happens to everyone, and no matter how smart someone is, there are things they are particularly bad at as well. Keeping in mind the things you struggle with, can help with empathy and humility, and help you figure out what tasks to try to delegate to others.

The smarter someone is, the more they will be used to working alongside people less intelligent, and still work together effectively, and not make others feel bad about it. Particularly smart people can find it shocking when someone else belittles or ridicules another for not understanding something, because they are used to always understanding more than everyone around them their whole lives, but usually keeping it to themselves to not make others angry or feel bad about it. They're not going to be angry or upset when other people struggle or don't understand as well as them, as it is the norm, and something they've almost never not experienced.

Lastly, in a leadership position, look to figure out where peoples strengths do lie, and give them that part of the project. If they have no strengths or abilities consistent with the job at hand, that might not be possible, but seems like a major failure of the hiring process in the first place, and shouldn't be possible- it isn't the fault of the person that was hired inappropriately.

Top comment by spenczar5

Rachel by the Bay (https://rachelbythebay.com/) has long impressed me as someone who clearly is deep in the actual work of systems, day in and day out, and can write well about it.

Julia Evans has a wonderful approach as well, and has amazing talent for teaching: https://jvns.ca/

Kellan Elliott-McCrea (https://laughingmeme.org/) has given the world some of the better advice on the hardest parts of software scaling, which is of course scaling the human organizations. New grads are virtually always underestimating that part of the work; eventually you realize the hard problems are usually social and not technical.

Top comment by skydhash

I'm using fastmail, but mostly for the reputation. I have a cron script that fetches mail every 5 minutes locally with mbsync (I view them with notmuch and emacs). Backup is done alongside my other files.

Top comment by mmh0000

Here's how I do it:

* Buy your own domain, (Through a reputable registrar that has existed for a long time (enom; joker; namecheap; aws).

* Host DNS through a 3rd party (Cloudflare in my case)

* Use Fastmail for email hosting on my custom domain

* Run a nightly cronjob using offlineimap (https://github.com/OfflineIMAP/offlineimap) to sync all hosted email to my local NAS.

This protects me from:

* Fastmail bans me: I'll pay for email hosting elsewhere, update DNS records, and upload all my backed-up email.

* DNS host bans me: I'll move to a different DNS host.

* Registrar bans me: I'm a little fukked; old emails are backed up, but new emails would be tricky. Though, this is much less likely

* House burns down: Buy a new house and NAS and redownload all my email.

* Nuclear war: I'm dead and email doesn't matter anymore.

Top comment by annie_muss

I'm a similar age. I was diagnosed with ADHD a few years ago. Things got a lot better after my diagnosis.

Firstly, work with your health care providers. ADHD medication works well, even though it doesn't really feel like it works. (Even now I feel like my medication doesn't really do anything but if you compare my life before and after it's night and day).

Reading your post, it looks like you're having a rough time. Job hunting isn't easy, especially when you have ADHD. Rejection hurts for even the most well adjusted people. When you're feeling low it's very easy for your thoughts to spiral out of control. Try to notice when and how this is happening. For example:

Me: "I'm 36, I'm too old to ever get hired!" Also me: "Is it true that no one over the age of 36 gets hired for jobs? Do I know anyone in my life who got a job over this age? Oh, my uncle was laid off 5 years ago and he got one."

There are many different cognitive distortions like this. You can google to find examples of them or work with a therapist to help notice them. Try reading "Feeling Good" by David Burns, he has lots of good examples to draw from.

It might seem a bit counterintuitive, but being kind and forgiving of your shortcomings can often make you more effective and productive. Imagine procrastinating for 4 hours in the morning and getting nothing done. It's easy to think "Damn, I'm worthless. I just can't focus. I can't stay on task. I'll never get a job at this rate." Now you feel awful. When you get back from lunch, you're much more likely to procrastinate to distract yourself from these negative thoughts and feelings.

Instead, try accepting and forgiving yourself: "I didn't do anything this morning. It happens sometimes. I'll try to just doing a little this afternoon and see how it goes.". It's true, you might still procrastinate, but you have a better chance of getting to it now that the negative emotions are smaller and more manageable.

I also recommend Taking Charge of Adult ADHD by Russell A. Barkley as a good handbook, especially if you've been diagnosed recently.

Top comment by jitl

The marginal happiness for 1% of security nerds would be vastly outweighed by frustration for 99% of people who don’t care.

I don’t want a bunch of broken fake USB-C cables lying around that work for slow charging only and will totally fail when used with my mouse, keyboard, running an external display, etc. I get these kinds of USB-C cables from time to time in boxes with mediocre gadgets and throw them out! Anker’s whole brand was originally based on testing USB cables to weed out the broken ones after all.

What is the threat model here anyways? My approach to security when charging my devices is:

1. Use my own charger and cable

I am not worried about my power supply brick getting pwned by a rootkit delivered via the airplane’s AC power mains and then that pivoting to my laptop.

So is the threat that my power brick got pwned on its way from the factory to me?

Top comment by JTyQZSnP3cQGa8B

I discovered the world of medical devices by accident and it’s great. When the bosses are nice, it’s pure heaven.

I write code in C# or C++ (but also Python, pipelines, scripts, JS, etc.) and it needs to be somewhat efficient. We all follow the same rules (62304 especially), we must write unit tests, and make sure that my features are properly integrated at all steps of the development up to the release, and even after when you must validate it with the authorities, when you have bugs, etc. If you're in a small company, everyone can be involved in all the processes and it's fun because you go much further than mere development (like preparing reports for various agencies all over the world, or helping PhDs integrate their code in the application).

We have commit hooks to check and format code, pipelines must be green. You cannot cheat because someone will find out. And you can’t pretend that your code worked once on your computer because the test team will refuse your code if it breaks anything. It’s more rigorous at all steps of the development.

Last but not least we have specifications for everything because it’s the law. Overall it’s what software engineering should have been all the time. It feels like working at NASA even if it's only a stupid desktop tool or application.

Of course everything is not perfect, you can stumble on assholes like every other company, but it's not everywhere. I’m happy to go to work every day, I may have saved a life or two with my code, and that's a good feeling.

My experience comes from having worked with the biggest assholes on the planet at different companies. To answer your question, I would say that an interesting job is rigorous, peaceful, and has some kind of meaning.

Edit: as another guy said, I too settled for lesser wage to work for a company that would not destroy my soul and spirit. That's important too.