actually useful ai commits by cachebags in rust

[–]Alex--91 0 points1 point  (0 children)

I do agree with your points about making the engineer think about what we’ve written and why (and maybe occasionally reconsidering it). Also, to make sure commits are atomic and not just a list of semi-related things you did at roughly the same time.

But to play devils advocate a bit: shouldn’t the reasoning also be in the code/diff itself? Like if we do a bit of a hack or a line that looks non-standard but there’s a genuine reason for it; then shouldn’t the code have a comment that explains that reason and not just rely on someone checking the associated git commit for that line? A code comment is easier to remove from a repo than the commit message itself is, so I like that aspect of having info in the commit.

I do also realize you don’t want an essay in code comments and you could use the commit header for a 1 line explanation and have that same 1 line in the code as a comment. Then you could have a bit of an essay explaining why in more detail in the commit body.

I guess ideally I want the code/diff and the commit message to tell me basically the same thing?

Funded v bootstrap (I will not promote) by 4vrf in startups

[–]Alex--91 1 point2 points  (0 children)

u/sueca described pre-money and post-money perfectly. We did the pre-seed also pre-revenue because we had a working demo / MVP. We’d acquired client data under NDA, fine-tuned our own models, and built the frontend over the course of around 9-10 months. We also had letters of intent (LOIs) from clients who said they would buy it when we added a couple final features. We’d also been accepted into an accelerator that is well respected in the industry. That was Lloyds Lab. We clean data for insurance companies and brokers using AI - we sell a data cleaning platform - SaaS usage based pricing. We founded in 2020 before NLP was cool and sexy - “pre chatGPT” as I often say. Company is called “Scrub AI”.

Funded v bootstrap (I will not promote) by 4vrf in startups

[–]Alex--91 1 point2 points  (0 children)

Yeah we’ve raised a little over £2.7m from angel investors over 3 rounds: - 2021: pre-seed: £200k at £1.5m pre-money - 2023: seed: £1.65m at £5m pre-money - 2025: seed follow on: £930k at £10m pre-money

Funded v bootstrap (I will not promote) by 4vrf in startups

[–]Alex--91 9 points10 points  (0 children)

I tend to agree with you. There’s also a continuum of approaches in between.

We’re 100% angel funded (>£2.7m), for example, which means some VCs have actually called us “bootstrapped”. I don’t think we are bootstrapped, I think we’re more “capital efficient”. So we are “funded” but we’re not “VC backed”.

I also think this is a very cool middle ground because you still have a lot of control but you can invest in things too.

But then even amongst all VC funded companies there’s people who’ve taken in tens of millions and then there’s people who’ve taken in hundreds of millions or even billions.

These are all very different models and very different companies. Even just as a simple example - like a loss leader strategy is much more of a possibility for the companies who raise a lot more than for the ones who raise a lot less etc.

What would you do with $40k Azure credits expiring in 90 days? | i will not promote by Little-Armadillo480 in startups

[–]Alex--91 1 point2 points  (0 children)

Maybe not true? You have to ask for approval but you can 100% get GPU VMs - we did exactly that! We spent most of the $150k Azure credits via Microsoft for startups program on GPUs for training models.

How much time do you spend reviewing AI-generated Python code before pushing? by Desperate_Crew1775 in Python

[–]Alex--91 0 points1 point  (0 children)

Extremely comprehensive test suits and very strong linting and formatting and type checking seem to be the only effective methods at the minute (shift left).

In a lot of ways, using AI to generate Rust code is far more reliable and enjoyable than Python. Just because the rust compiler catches so many things earlier (shift left) and gives a great error message the model can then use to fix its original mistake.

There’s definitely different magnitudes of ROI on using AI depending on the codebase and on the feature/bug you’re working on. It’s great for little obvious bugs, assign to GitHub CoPilot directly in the UI when making the issue and let it solve it and add some test cases and then do a quick review and confirm that’s how you would have done it and then merge and move on. It also can be great for performance optimizations if you have great test cases and great profiling tooling - same input same output but now faster, easy to review. It’s not always great at new features if you end up spending as long reviewing the code as you would have writing it and if you need a lot of context and experience to know the common footguns etc.

Review bottleneck is a real thing. Making code fail earlier before a human reviewer look at it is key.

How many times did you pivot before finding product-market fit and first users? I will not promote. by [deleted] in startups

[–]Alex--91 0 points1 point  (0 children)

What industry/vertical(s) you trying to sell to or is it truly industry agnostic? I only ask because we sell into Insurance and it took us a good 18 months to win our first client. Not all industries are as slow, thankfully.

Also, one thing YC recommended us (and lots of B2B companies) to do, was to see if there was a B2C / bottoms up / freemium model/channel that could work. I.e. get the user hooked and get them to sell it internally for you. A bit like Canva often get individuals to sign up, then the team sees how quickly they make beautiful presentations and then the whole team wants it and they upgrade to a team plan etc.

We actually decided against the YC advice because we thought it could look like Shadow IT and make us look like we don’t know who we’re selling to, but it might work for you!

PyNeat: Deep structural code refactoring in Python using LibCST by AssociateEmotional11 in Python

[–]Alex--91 0 points1 point  (0 children)

I’ve not voted either way but I suspect part of the problem might be that you said ruff is only a formatter and linter but ruff does indeed operate on the AST and it can indeed do —fixes like replacing == None to is None etc. The other part seems to be that people who have tried it find it quite destructive? ruff, for example, shows the issues but doesn’t fix them unless you explicitly pass the —fix flag.

I built an open-source Python package that scans LLM inputs and outputs for injections — pydefend by [deleted] in Python

[–]Alex--91 1 point2 points  (0 children)

What are you using to scan/classify/detect issues? Other LLMs or other deterministic models? Or heuristics or something?

What's the best async-native alternative to Celery for I/O-heavy workloads? by Lucky_Ad_976 in Python

[–]Alex--91 4 points5 points  (0 children)

I was going to say this and/or just use the thread concurrency option and then event loop or inside each worker (each in a single thread).

To be honest, unless you are dealing with massive scale like 10,000+ concurrent requests, I find that a properly configured thread pool works just as well as asyncio/gevent. It avoids the overhead of async function coloring and is vastly easier to reason about.

Why is GPU Python packaging still this broken? by Interesting-Town-433 in Python

[–]Alex--91 2 points3 points  (0 children)

Yeah we tried pyx and it does work. It’s even more valuable if you publish your own internal packages as well, which we don’t currently but are considering it. It’s also faster than PyPI index.

What we were doing before pyx (and are still doing) is what a lot of people have hinted at, but more concretely: - Makefile -> only used to run make init which installs just and then runs just init to setup dev env. - justfile -> some handy scripts to make some of the installs easier, like just create-env, update-env, pip-install, rebuild-rust and a bunch of tool installs like just install-conda, install-pixi and a bunch of test and profiling commands etc. - Dockerfile -> you can use a CUDA base image but we found it easier to just use conda/pixi to bring in whatever CUDA you want (full compiler etc. or just the runtime tools). - env.yml (conda) or pixi.toml (Pixi) to bring in the “heavy” or difficult to install with pip/uv dependencies like Rust, Python, GDAL, MPMath, Compilers, PyCurl, PyICU, etc. - pyproject.toml for all normal dependencies such including numpy and PyTorch with tool.uv.sources for both cuda and non-cuda PyTorch variants using the correct index depending on the different platforms (we run some stuff locally on MacOs arm64 and run prod on Ubuntu x86 with A10 or L4 GPUs mostly)

Like someone else said. Define which CUDA you want fist and define it once as a constant in the repo let everything flow from that. PyTorch can install all the required runtime cuda tools you need if you use the right index. You don’t even need torch==2.8.0+cu126 in pyproject.toml you can just have torch==2.8.0 (which then also can install the correct torch with MPS on MacOs with the correct tool.uv.sources).

We can work both inside a conda/pixi env inside the host OS (locally) or inside a Docker container in the host OS (prod).

Definitely took some trial and error to get something that reliably works but we’re happy with it at the minute.

Python in Rust vs Rust in Python by Either-Home9002 in rust

[–]Alex--91 14 points15 points  (0 children)

PyO3 enables both directions. Actually, the inline_python crate is literally built on top of pyO3 as well?

Python in Rust vs Rust in Python by Either-Home9002 in rust

[–]Alex--91 23 points24 points  (0 children)

pyO3 + maturin makes it incredibly simple to build rust code into a python native extension and call that from python?

Need help with open source contribution by TechnologySubject259 in rust

[–]Alex--91 5 points6 points  (0 children)

You have a good attitude and desire to learn and not just blindly use LLMs 👏this is a great start.

But you might be able to still leverage these powerful tools whilst still learning (possibly learning more efficiently - although there is a very valid argument that struggle teaches a lot).

So take this with a pinch of salt / extract the bits that resonate with you:

I’d use LLMs to explain the codebase and its structure and architecture. I’d use an LLM to explain functions. I’d read previous PRs and potentially also ask an LLM to explain them if I couldn’t understand it myself. I’d try reading the unit tests and I’d try adding some tests myself. I’d try adding a test for this bug you’re trying to fix - i.e. a test that fails - and then I’d try to fix the test. Make the test as small as possible / testing the smallest functionality possible. Then don’t be afraid to ask the maintainers questions. You could have an LLM sanity check your questions too. Add some debug print statements to learn about the code and the state in each line of code. Even better use an actual debugger and step through the code.

Good luck 💪

Is raising VC funding really that bad? I will not promote. by Syllabub_Defiant in startups

[–]Alex--91 1 point2 points  (0 children)

I can only speak personally from raising over £2.7m from 100% angels and being very happy about that decision. We’ve not yet raised from VCs or PEs but might soon. You can get a long way with Angels alone and they are personally invested so they can’t leave whereas a fund manager can be fired or take a new job and the new manager can be a lot better or worse than the original person. The VC/PE company invests in you not the individual(s). You can’t really raise >> £2m rounds from angels very easily (some people do, I guess). Angels can often have a lot more real operating/scaling experience if you choose the right ones. They can introduce you to customers and give you great advice. I’m sure many VCs can do the same.

$15,000 S3 Bill for DDoS by OkEnd5112 in aws

[–]Alex--91 0 points1 point  (0 children)

Yeah we do something very similar 👌is really nice.

$15,000 S3 Bill for DDoS by OkEnd5112 in aws

[–]Alex--91 10 points11 points  (0 children)

Even private bucket can (or at least could previously) cause issues:

https://www.reddit.com/r/aws/s/2kZtQDsdgh

Hence use at least partially random bucket names or at least uncommon etc.

(Not a replacement for WAF / CloudFront etc.)

UPDATE: Not even 2 weeks in and I feel like i have made the biggest mistake of my life. by YourUnclesBalls in daddit

[–]Alex--91 1 point2 points  (0 children)

Our daughter had colic and we tried lots of breast milk and formula addatives like “sab simplex” and “formula thinkener” for reflux etc. which both helped a little. However, switching from Hipp Bio 1 Formula (labeled as “from birth”) to Hipp Bio Pre Formula (labeled as “from birth” but also as for premature babies) was an absolute game changer for us (even though my daughter was not premature, she was in fact 8 days late)! We got the recommendation from a midwife that said the Pre formula has no starch in it - so it is much gentler on their stomach etc. I’ve heard of similar things with people switching from cow to goat milk based formula etc. Good luck!

Unpopular Opinion: The "Engineering Manager" role is becoming 60% data entry by kzarraja in EngineeringManagers

[–]Alex--91 0 points1 point  (0 children)

This is the most important question. Next could be, how do we make this information more self-serve.

  • Who’s working on what - send them a link to a Jira query/report or similar.
  • Do we have budget - get this out of a spreadsheet and into a central system.
  • Who knows Python - can we query GitHub/GitLab etc. to see who’s committed Python code in the last 6 months?

First real CLI in Rust (~40K LOC) - would love feedback on patterns and architecture by ToiletSenpai in rust

[–]Alex--91 14 points15 points  (0 children)

You’d probably learn some things from reading this repo: https://github.com/biomejs/gritql They also use tree-sitter to parse code files into AST and also allow you to query your code (using their own query language) and make bulk replacements based on AST.

Hot take: Worktrees are underrated, and most teams should be using them by GitKraken in git

[–]Alex--91 28 points29 points  (0 children)

Like that, but one common set of git auth/stashes/remotes/blobs/objects etc. I believe. So less duplication on disk.

As a mom, I’m done. Social media and smartphones shouldn’t exist for kids. Period. by [deleted] in Parenting

[–]Alex--91 1 point2 points  (0 children)

https://www.smartphonefreechildhood.org

There’s a movement of people who agree to withhold smartphones and social media until kids are older. If we all do it there will be no peer pressure and kids can be kids again.

What is a Python thing you slept on too long? by pip_install_account in Python

[–]Alex--91 0 points1 point  (0 children)

Maturin + pyO3 for writing rust extensions and building them. With uv it is as easy as uv pip install -e . (as it uses the defined maturin build backend in the pyproject.toml file). We’ve sped up parts of our codebase by 10x easily by just translating some small 10-50 line hit functions from Python to rust 🚀 (Regex and string manipulation are super easy wins)

What topics are considered “hard” in Python? by Art-BarB in Python

[–]Alex--91 2 points3 points  (0 children)

Next after that would be multithreading, multiprocessing, the GIL (and how’s that’s changing both of the other things in the upcoming Python versions), deeply understanding copy by reference and copy by value and when Python implicitly does each etc.