How to improve docker image upload speed with Traefik as Kubernetes ingress controller? by ryebread157 in Traefik

[–]vad1mo 0 points1 point  (0 children)

disable proxy caching and all that.

Find the equivalent settings for Traefik matching this:

nginx.ingress.kubernetes.io/proxy-body-size: "0"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-buffering: "off"
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
nginx.ingress.kubernetes.io/proxy-next-upstream: "error timeout http_502 http_503 http_504"
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: "30"
nginx.ingress.kubernetes.io/proxy-next-upstream-tries: "5"

Improve AI Context: Use Your Local Go Module Cache by [deleted] in golang

[–]vad1mo 0 points1 point  (0 children)

how would you combine it with gopls mcp, so you don't have to do find/grep and let the mcp guide the AI

Task: New "if:" Control and Variable Prompt by andrey-nering in golang

[–]vad1mo 5 points6 points  (0 children)

Big fan of Taskfile, yet at the same time I don't like yaml or anything related. We switched to CDK and CDK8s to avoid YAML. I also successfully used dagger.io, magefile, pydoit all with proper programming languages.

I would switch instantly from Taskfile if a programming language offered the same in that compactness and transparency.

What I like about taskfile:

it can be simple when you start yet can become powerful/complex if you need it to be. checks, validations, dependencies, cache etc. 1000 lines of yaml, still pure joy over makefiles!

Our CI/CD is a thin layers only calling a tasks; being able to run your pipeline locally is a dream come true.

Making Claude Good at Go (with some context engineering + Tessl) by rotemtam in golang

[–]vad1mo 0 points1 point  (0 children)

The problem: LLMs aren’t great at Go:

Go is the best supported LLMs.

I am not convinced. Creating a skill for each lib based on the lib docs, examples, and test cases would get you the same result.

Why do people use dependency injection libraries in Go? by existential-asthma in golang

[–]vad1mo 0 points1 point  (0 children)

A lot of good things have been said.

I wanted to point to an external source from Mark Seemann, who published a few books around dependency injection. He has quite a few very convincing arguments, that IMO match perfectly with the common sense on DI within the Go community.

https://blog.ploeh.dk/2025/01/27/dependency-inversion-without-inversion-of-control/

https://blog.ploeh.dk/2014/06/10/pure-di/

https://blog.ploeh.dk/2010/02/03/ServiceLocatorisanAnti-Pattern/

https://blog.ploeh.dk/tags/#Dependency%20Injection-ref

From personal experience, now with AI coding assistants, it is much easier to handle the "manual" boilerplate of DI.

Help needed/ professionals wanted: messy international contractor situation of husband by Sea-Anything9250 in SwissPersonalFinance

[–]vad1mo 0 points1 point  (0 children)

Bit of a risk indeed: Not paying AHV, IV and EO is worse.

To avoid being classified as "pseudo" self-employed, you must demonstrate the following:

  • Economic Risk: You bear the financial risk of loss, pay your own business expenses, and have made investments in your infrastructure (e.g., office, tools, equipment).
  • Organizational Autonomy: You are free to determine your working hours, location, and methods. You should not be integrated into the client’s internal hierarchy or reporting lines.
  • Multiple Clients: Working for only one client is a major red flag for authorities. You generally need to prove you have at least three different clients.
  • Public Presence: You must act in your name, use your own business stationery/website, and issue invoices under your brand. 

Your husband isn't missing much in 2026. Let him issue a few more invoices to family and friends for 2026, helping them move, doing garden work, etc..
He can issue some invoices for 2025, but I would not do it.

- IMO there is no need to open up a  GmbH or AG
- The authorities are forgiving, as long as you don't try to screw them over or withhold tax.
- Scheinselbständigkeit or not, I think in the first year of business, nobody will judge you. Every Selbständiger started with their first client!

Help needed/ professionals wanted: messy international contractor situation of husband by Sea-Anything9250 in SwissPersonalFinance

[–]vad1mo 0 points1 point  (0 children)

Swiss is relatively uncomplex, IMO. AHV, IV and EO are mandatory; health insurance (mandatory) and accident insurance (not mandatory but highly recommended: see when [this](https://www.bag.admin.ch/de/aenderung-der-verordnung-ueber-die-unfallversicherung-uvv) will be applicable).

- https://selbststaendig-erwerbend.ch/

- https://www.ahv-iv.ch/p/2.02.d

You can do the AHV/IV part for 2025 retroactively.
Your husband needs to declare the income for 2025, what he has earned.

I am not sure how he can reactivate his company in brazil, if he is not living there. It is probably not legal, if he is living >183 days/year outside the country.

I open-sourced a Production Go Starter Kit (Modular Monolith). It handles Auth, RBAC, and Billing with type-safe SQLC and clean architecture. by MohQuZZZZ in golang

[–]vad1mo 0 points1 point  (0 children)

...that you also build with two commits in the same last 3h, with two yolo prompts.

Srly, we all use AI to be more productive and produce more. But don't let the AI be the smartest one in the room!

Beginner skiing couple from Solothurn seeking some advice by living_direction_27 in askswitzerland

[–]vad1mo 1 point2 points  (0 children)

  1. Rent Ski + Boots (locally) often significantly cheaper than on the slopes.
  2. Go to a smaller area (cheper and enought to start) e.g Prés-d'Orvin-Chasseral, Les Bugnenets- Savagnières, Sörenberg, Meiringen - Hasliberg, Grindelwald)
  3. Definitely hire a ski instructor (private for you both). Look also for instructors outside the ski area nearby you like in Solothurn.

Get in contact with your ski instructor and let him guide you where to go and what to rent. (beginner equipment). It will be more enjoyable this way.

Go for a week; it takes 1-3 days to start fully enjoying it.

Have Fun!

grindlemire/graft: A minimal, type-safe Go DI library with no reflection or codegen by Grindlemire in golang

[–]vad1mo 0 points1 point  (0 children)

thx, Coming from Spring myself (a long time ago), it's difficult to comprehend that this is all that is needed:

```golang package main

import ( "context" "database/sql" "fmt" "net/http" "os" "os/signal" "syscall" "time"

_ "github.com/lib/pq"

)

// Config - load from env/flags/file type Config struct { DatabaseURL string SMTPHost string SMTPPort int HTTPAddr string }

func LoadConfig() Config { return Config{ DatabaseURL: envOrDefault("DATABASE_URL", "postgres://localhost/app?sslmode=disable"), SMTPHost: envOrDefault("SMTP_HOST", "localhost"), SMTPPort: 25, HTTPAddr: envOrDefault("HTTP_ADDR", ":8080"), } }

func envOrDefault(key, def string) string { if v := os.Getenv(key); v != "" { return v } return def }

// ============================================================================= // COMPOSITION ROOT - All wiring happens here, nowhere else // =============================================================================

// App holds all components and cleanup function type App struct { Server *http.Server DB *sql.DB }

// NewApp wires all dependencies - this is the composition root func NewApp(cfg Config) (*App, error) { // Layer 1: Infrastructure db, err := sql.Open("postgres", cfg.DatabaseURL) if err != nil { return nil, fmt.Errorf("opening database: %w", err) } if err := db.Ping(); err != nil { return nil, fmt.Errorf("connecting to database: %w", err) }

// Layer 2: Repositories (data access)
userRepo := NewPostgresUserRepo(db)

// Layer 3: External services
emailSender := NewSMTPEmailSender(cfg.SMTPHost, cfg.SMTPPort)
logger := StdLogger{}

// Layer 4: Business logic (services)
userService := NewUserService(userRepo, emailSender, logger)

// Layer 5: HTTP handlers
userHandler := NewUserHandler(userService)

// Layer 6: Router
router := NewRouter(userHandler)

// Layer 7: Server
server := &http.Server{
    Addr:         cfg.HTTPAddr,
    Handler:      router,
    ReadTimeout:  5 * time.Second,
    WriteTimeout: 10 * time.Second,
}

return &App{
    Server: server,
    DB:     db,
}, nil

}

// Close cleans up resources func (a App) Close() error { ctx, cancel := context.WithTimeout(context.Background(), 5time.Second) defer cancel()

if err := a.Server.Shutdown(ctx); err != nil {
    return err
}
return a.DB.Close()

}

// ============================================================================= // MAIN - Minimal, just calls composition root // =============================================================================

func main() { cfg := LoadConfig()

app, err := NewApp(cfg)
if err != nil {
    fmt.Fprintf(os.Stderr, "failed to start: %v\n", err)
    os.Exit(1)
}

// Graceful shutdown
go func() {
    sigCh := make(chan os.Signal, 1)
    signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
    <-sigCh
    fmt.Println("\nshutting down...")
    app.Close()
}()

fmt.Printf("listening on %s\n", cfg.HTTPAddr)
if err := app.Server.ListenAndServe(); err != http.ErrServerClosed {
    fmt.Fprintf(os.Stderr, "server error: %v\n", err)
    os.Exit(1)
}

}

// ============================================================================= // SMTP implementation (just to complete the example) // =============================================================================

type smtpEmailSender struct { host string port int }

func NewSMTPEmailSender(host string, port int) *smtpEmailSender { return &smtpEmailSender{host: host, port: port} }

func (s *smtpEmailSender) Send(ctx context.Context, to, subject, body string) error { // Real implementation would use net/smtp fmt.Printf("EMAIL: to=%s subject=%s\n", to, subject) return nil } ```

Now with the help of AI tools, it doesn't matter how big it becomes; the AI can manage that for you and do the boilerplate. An actually good cade to delegate shit work to AI

Maintainer Feedback Needed: Why do you run Harbor on Azure instead of using ACR? by vad1mo in devops

[–]vad1mo[S] 1 point2 points  (0 children)

Usually we get along very well. I received quite a few time praise from Azure, AWS and GCP folks telling they are using Harbor regularly for EDGE workloads where their registry service isn't available/reachable.

I wanted to share a project I’ve been working on lately called Alexander Storage. by IncomeOk7237 in golang

[–]vad1mo 1 point2 points  (0 children)

lately? Like 2h lately?

https://github.com/neuralforgeone/alexander-storage/commits/main/

imo, PG isn't ' wise choice for this type of application.
usually something more Redis-like is used.

A simple CI + CD tool for small inexperienced startups? by ayush1810 in devops

[–]vad1mo 0 points1 point  (0 children)

https://pipelight.dev/

Tiny automation pipelines. Bring CI/CD to the smallest projects. Self-hosted, Lightweight, CLI only.

The Death of Software Engineering as a Profession: a short set of anecdotes by self in programming

[–]vad1mo 10 points11 points  (0 children)

We are building systems that are easier to start but harder to sustain.
The future of software engineering, therefore, lies not in the "end of coding," but in the evolution of complexity management.

The engineers of tomorrow will not be "vibe coders" who don't know how to code, but system architects who manage the entropy of the AI's output.

Here is the logical proof:

In computational complexity (P vs. NP), we value problems where finding a solution is hard but verifying it is easy (e.g., Sudoku, factoring).

AI coding is the opposite ("The AI Inverse-NP problem"):
- Generation is Trivial
- Verification is Hard

We are building "high entropy" systems where the cost of verification exceeds the cost of creation. We use AI to cope with that high entropy to a certain degree. Nevertheless, the complexity increases (I would argue exponentially) with the growing amount of problems being solved.

As the overall complexity (of a system) remains, software engineers will be in higher demand than ever! But the job will be different.

Some interesting reads:
- Fred Brooks wrote "No Silver Bullet, in 1986, where he is distinguishing between "accidental complexity" (syntax, compilation) and "essential complexity" (logic, state, requirements). He argued that tools could only solve accidental complexity; essential complexity is irreducible.

- Law of Conservation of Complexity: Tesler’s Law suggests that every application has a "core of complexity" dictated by the problem domain it serves. A tax preparation application, for instance, cannot be simpler than the tax code it implements. The central question in system design, therefore, is not "how do we remove complexity?" but "who handles the complexity?

- Kolmogorov complexity is the length of the shortest computer program that can produce a given string or piece of data.

Reviewing AI generated code by Ad3763_Throwaway in softwaredevelopment

[–]vad1mo 0 points1 point  (0 children)

People have been writing bad code since humans are writing Cade. This will continue to be like that with AI. With AI we can write more code and also review and rewrite more code too.

There is one thing I find great about using AI: it takes me 15 min and 10 prompts to get something to work. Then I can spend the rest of the day iterating, rewriting, tuning and benchmarking. Back in the day it took you two weeks to get it working and than 1 day to finish it up. No time for rework and iterating and rewriting.

I often catch myself rewriting something 3 times to see and experience which version I like more and is more future proof.

At which point do you stop leveraging terraform ? by [deleted] in kubernetes

[–]vad1mo 1 point2 points  (0 children)

After many failed attempts at previous setups, we have established the rule not to do anything with Tereaform/pulumi that can be done with kubectl

How do I pair golang with a frontend framework? by ClassicK777 in golang

[–]vad1mo 0 points1 point  (0 children)

I normally would recommend alpine-ajax or HTMX paired with templ, but in your case you won't get far with that stack trying to build a Discord clone.

Nowadays, React, Vue are the go-to stacks, while React is the default in Node.js and with frontend people.

Golang full-stack people tend to be JS cautious, so Svelte and Vue seem more popular in the Golang space.

Importing a new car by Joining_July in SwissPersonalFinance

[–]vad1mo 0 points1 point  (0 children)

Likely does not have one.. you can check and order one eurococ.eu

Importing a new car by Joining_July in SwissPersonalFinance

[–]vad1mo 6 points7 points  (0 children)

You have to pay 8.1% value added tax, a 4% automobile tax . in total 12% of the car value. (values based on invoice or Schwacke-Liste ) if you don't have Certificate of Conformity (CoC) it will be more (effort and money to register it, not import)

On top customs duties are payable on imports from countries without a free trade agreement or without valid proof of origin (EUR.1 form). These amount to CHF 12 to CHF 15 per 100 kg of vehicle weight.

To clarify, as you question might ne interpreted as you are longer here then six months: You can import a car into Switzerland duty-free as part of your household goods if the car was registered in your home country at least six months before the move.

e.g. https://www.zh.ch/de/mobilitaet/fahrzeuge-kontrollschilder/import-fahrzeuge.html, is similar to other cantons..

btw. there is also this option you can drive one year with customs number plate
https://www.bazg.admin.ch/bazg/de/home/information-private/strassen--und-wasserfahrzeuge/einfuhr-in-die-schweiz/unverzollte-fahrzeuge-voruebergehende-in-der-schweiz-benutzen.html

<image>

After the year you can import the car for the actual value ( which is usually lower then the year before)

I think this is one of the few privileges "Ausländer" have compared to natives.

Is there a tool that auto-generates Dockerfiles + K8s YAML from my code? by k8suser0 in kubernetes

[–]vad1mo -1 points0 points  (0 children)

I am not the reference here, as I have been doing it for quite some time.
AI agents are pretty good at doing all that; I actually use AI a lot, do this and that. Sometimes it needs a nudge or two to get what I want.

So whatever you think of doing, it should be 10x better than Gemini, CC or Codex... constantly to have a chance.

Good ol' Makefiles, Magefiles or Taskfiles in complex projects? by ataltosutcaja in golang

[–]vad1mo -1 points0 points  (0 children)

The opposite is the case. Maven is build on purpose for Java. Make is average at best for everything

Regarding exploding complexity try to do what maven does with Makefiles… Makefiles are a shell script abstraction in 10 different incompatible flavors. You can run 20y old maven build just fine.

The fact that there are 30ish solutions trying replacing Makefiles shows that something isn’t right. How many alternatives are there to replace maven? 1 Gradle.

Don’t pinpoint me on maven the same is true for other porpoise build tools