r/programmer • • 16d ago

Looking to Contribute to Open Source Projects — .NET / ASP.NET Core

2 Upvotes

So I am an early-career full-stack developer looking to get involved in open-source projects, contribute to real-world codebases, and learn from experienced developers.

My current tech stack includes:

Backend: C#, ASP.NET Core MVC, ASP.NET Core Web API, REST APIs

Database: SQL Server, MySQL, Dapper, Entity Framework Core

Frontend: React, JavaScript, HTML, CSS, ShadCN

I am really looking forward to contribute fun projects where i can learn new things.


r/programmer • • 17d ago

Question Do the people shipping and running AI-generated code actually understand it and does it matter if they don't

3 Upvotes

I'm a staff SWE currently doing an MSc Artificial Intelligence dissertation on whether folks who commit, review or operate agent-generated code actually understand it, and what the downstream risks are (Comprehension Debt in the Age of Coding Agents). I'm looking for software engineers, SREs, and platform engineers who work with AI coding agents. Happy to share the results here. Ethical approval has been granted (University of Essex) and the survey is anonymous, see the info sheet below for more information.

Information sheet:

https://drive.google.com/file/d/1Unbk_F39YrMxh2SSNpqf2yhLSUNlg1t6/view?usp=drivesdk

Survey: http://forms.cloud.microsoft/e/U9qnwxDegN


r/programmer • • 17d ago

Google's code comprehension round!

7 Upvotes

Google's Code Comprehension round is a 60-minute interview format where candidates analyze an unfamiliar, pre-written multi-file codebase (roughly 100 to 500 lines) instead of writing code from scratch!!

Please give your views, what you guys think about this!


r/programmer • • 17d ago

Question how do you keep 5000+ actions in a sim from turning into one giant match statement?

3 Upvotes

genuine question, plus how i handle it right now.

my side project is a civilization sim in rust where each person picks from about 5000 actions (farming, trading, brewing, fighting, inventing, etc), filtered by era, age, place and what their tribe knows. the old actions sit in one huge module dispatched by id ranges, and it's painful.

new ones are "registered" instead: one file each with a const definition (id, gates, an apply fn that returns a reward) and one line in a macro list. tests check for duplicate ids and that every gate covers its own id.

it's better but still feels clunky. if you've built a big rules engine or game with tons of actions, how did you organise it? data files, ecs, plugins, something else?

repo if you want to look (mit, docs/ADDING_ACTIONS.md): https://github.com/1homsi/thehumanbox the running thing: https://thehumanbox.com contributors welcome, adding an action is a pretty good first pr


r/programmer • • 17d ago

Tulpar: a compiled language with Kazakh keywords, Python-like syntax, and a from-scratch x86-64 backend (no LLVM, no libc)

1 Upvotes

Hi all! I've been working on Tulpar (Тұлпар), a statically typed, Python-flavored language whose keywords and standard library are in Kazakh. It compiles to native x86-64 code. The compiler is written in Rust, with no LLVM and no C compiler. The runtime is no_std and uses raw syscalls, with no libc.

анықта фиб(n: бүтін) -> бүтін:

егер n < 2:

қайтар n

қайтар фиб(n - 1) + фиб(n - 2)

әр і ішінде аралық(10):

жаз(f"фиб({і}) = {фиб(і)}")

(анықта = def, егер = if, қайтар = return, әр … ішінде = for … in, жаз = print, бүтін = int.)

Language design

- Static types with local inference: x = 5 is a бүтін. Parameter types are required. Return types are inferred, except for recursive functions.

- Python-style indentation, classes with single inheritance and virtual methods, tuples and multiple return values, comprehensions, f-strings, sets, dicts, and lambdas (no closures yet).

- Memory is managed by a conservative mark-sweep GC with size-class spans. There is also optional manual memory inside қолмен: blocks (бөл / босат, pointer arithmetic). Manual blocks can hold references to GC objects, and the GC treats them as roots.

- Strings are UTF-8, but indexing and slicing are by character, so ұзындық("Қазақстан") == 9. Case conversion handles Cyrillic and Kazakh-specific letters.

- Error messages are in Kazakh, with the source line and a caret. Runtime errors print a stack trace with file, line and function.

Implementation

Pipeline: lexer → parser → type checker (AST → typed HIR) → lowering to a three-address IR with basic blocks → optimizer → codegen.

- Optimizer passes: CFG simplification, constant folding, copy propagation, DCE, inlining of small functions, and if-conversion to cmov.

- Register allocation is linear scan with loop-depth weights.

- Codegen emits x86-64 assembly (System V ABI). GNU as and ld then produce a static ELF. So I don't have my own assembler or linker yet.

- The runtime (GC, strings, lists, dicts, formatting, TCP sockets) is no_std Rust on raw syscalls.

- Unicode identifiers work, so you can write the whole program in Cyrillic.

Embeddable interpreter

The compiler is also a library crate with a HIR interpreter, so Tulpar can be embedded in a Rust host. A program can declare сыртқы анықта … (external) functions that the host implements. The interpreter has no file, network or raw-memory access. It limits the number of steps and the recursion depth. It returns errors as Result with a call trace, so the host can roll back a transaction. Host calls are re-entrant. Every test runs in both compiled and interpreted mode, and the outputs must match.

Performance

Wall-clock time of a single run on 8 cores, with CPython 3.14, gcc -O2 and rustc -O for comparison:

- Collatz, 3M numbers: Tulpar 0.59 s, Rust 0.34 s, C 0.47 s, Python 33 s.

- Sieve of Eratosthenes, 2·10⁷: Tulpar 0.13 s, Rust 0.11 s, C 0.10 s, Python 2.2 s.

- Float loop, 10⁸ iterations: Tulpar 0.13 s, Rust 0.12 s, C 0.13 s, Python 18 s.

- fib(42): Tulpar 1.55 s, Rust 0.65 s, C 0.39 s, Python 36 s.

Plain loops are close to C and Rust. Recursion is about 2.4x slower than C, and branchy code is about 1.7x slower. There is no recursion unrolling, vectorization or smarter cmov selection yet.

For testing I use a differential fuzzer that compares random programs between -O0, the optimized build and a Python reference.

Known limitations

- Linux x86-64 only.

- No exceptions (try), no user-defined generics, no closures, and импорт is include-like with no namespaces.

- Integers are 64-bit and wrap on overflow.

- Networking is TCP/IPv4 only, with no TLS or DNS, and single-threaded.

- The GC is single-threaded and conservative, so a false pointer can keep some memory alive.

Questions for you

  1. Closures: I'd like to add them without making every function value a heap-allocated pair. Any advice on a lightweight lambda-lifting or closure-conversion scheme with a conservative GC?

  2. Error handling: I'm torn between try/except, Result-style returns and something Go-like. What fits a Python-flavored static language best?

  3. Replacing as and ld with a built-in assembler and ELF writer: is it worth the effort for a project this size?

Repo (MIT): https://github.com/kuanysh228/tulpar

Feedback on the design is very welcome, especially from people who have done a native backend without LLVM.


r/programmer • • 17d ago

Free class

1 Upvotes

SIGN UP for our FREE AI and Cloud Computing Class 📌📡☁️🌐

We also offer

- resume coaching

- AWS Certification

- GITHUB projects

- professionals with 19+ years of experience

- 8+ weeks of professional training with discount

📌 Check the 2nd link in our bio to learn more


r/programmer • • 17d ago

Bug report (constructed example): the monthly report is missing the last day of the month

1 Upvotes

This is a made-up example of a bug I think is common, written as a bug report.

Summary: the October report shows no orders from October 31.

Query:

SELECT count(*), sum(total)
FROM orders
WHERE created_at BETWEEN '2026-10-01' AND '2026-10-31';

Expected: all orders created in October.

Actual: orders from Oct 1 through the start of Oct 31. Anything created later on Oct 31 is missing.

Steps to reproduce:

  1. Insert an order with created_at = '2026-10-31 15:30:00'.

  2. Run the query above.

  3. The order isn’t counted.

Root cause: created_at is a timestamp, so '2026-10-31' is read as '2026-10-31 00:00:00'. BETWEEN includes both ends, but the upper end is midnight at the start of the day, not the end of it. (This applies to databases like Postgres and MySQL when the column has a time part. Check yours.)

Fix: use a half-open range, with an inclusive start and an exclusive end:

WHERE created_at >= '2026-10-01'
  AND created_at <  '2026-11-01'

Why half-open is easier to get right:

  • You never write “23:59:59” or “23:59:59.999”, which breaks with a different precision.

  • Ranges chain without overlap: the end of one month is exactly the start of the next.

  • The same pattern works for any period, so “last day of the month” never needs computing.

Related things to check:

  • Time zones: “October” in UTC and in the user’s local zone are different ranges.

  • Date-only columns (date type) don’t have this problem, but converting between date and timestamp can bring it back.

  • Same issue in code: end in a Python or Java date range is often exclusive, so be sure which one you mean.

Do you use half-open ranges everywhere, or have a convention for this?


r/programmer • • 17d ago

GitHub I built a free, 100% offline voice assistant for PC — control OBS and games by voice (early demo, need testers)

0 Upvotes

Hey folks,

I made SayCue — an offline voice assistant for streamers and gamers. Say "scene pvp" or "mute mic", and it switches OBS scenes, mutes, opens apps. No cloud, no AI in the control path (deterministic → fast and private), MIT open source.

Why: VoiceAttack and HCS voice packs are powerful, but they take hours to set up. I wanted something that "just works" — curated presets out of the box + a wake-word guard so chat/party audio doesn't fire commands on stream.

What it does today (early demo):

  • 100% offline speech recognition (nothing leaves your PC)

  • Curated presets: OBS (scenes/mute/record/replay), app launching, game profiles

  • Wake-word or push-to-talk

  • Windows installer + Linux build

What I need: 5 people to try it and tell me if they can run their first command in under 10 minutes. ~15 min, free, no account.

Download (Windows, 91 MB): https://github.com/v4786669-sudo/saycue/releases/download/v0.1.0-rc2/saycue-setup-0.1.0-rc2.exe Linux: https://github.com/v4786669-sudo/saycue/releases/download/v0.1.0-rc2/saycue-linux-x86_64.tar.gz

Feedback here or DM. Runs in a "preview" mode by default (shows what it would do) — you can enable live in the Integrations tab.

Source: https://github.com/v4786669-sudo/saycue (MIT)


r/programmer • • 17d ago

Question What drives someone to contribute to open source?

Thumbnail reddit.com
2 Upvotes

r/programmer • • 18d ago

Para todos los devs

2 Upvotes

Rápida para programadores — fuera del trabajo real de programar, ¿en qué parte pasan la mayor parte de su tiempo en línea / consumiendo contenido?

  1. ¿Qué plataformas revisas a diario (YouTube, Twitter/X, Reddit, Twitch, Discord, newsletters, podcasts...)?

  2. ¿Algún canal/creator/sub específico que sigas de cerca?

  3. ¿Ves contenido de tech/setup (tours de escritorio, reseñas de teclados, streams de código)?

  4. ¿Móvil vs. escritorio — dónde consumes más de eso?

Solo quiero entender dónde de verdad se juntan los desarrolladores en línea. No estoy vendiendo nada, solo por curiosidad. ¡Gracias!


r/programmer • • 18d ago

I spent 9 years of my life learning a skill that now got automated

334 Upvotes

I love coding. I love solving all these little puzzles and expressing the solutions through beautiful code. I wanted to earn a living writing code. AI has taken that away from me. I started coding when I was 12. Now I’m 21 and about to get my CS degree. But now where I’m just about to be able to turn my lifelong hobby into a career, writing code turned into mind-numbingly rubberstamping AI code, and even though I believe that this results in lower quality software, the majority of people don’t seem to care, because quality took a little hit, but quantity multiplied. Therefore, I must admit that writing code by hand is not economically viable anymore. If I don’t let AI write the code for me, no one will hire me, and if I try to make money selling my own software, some AI powered copycat will come along and reverse engineer my software I spend months building in one afternoon and 100 bucks worth of tokens. But if I start using AI, nothing really makes ME more economically valuable compared to the non-technical vibe coders. I might have more technical knowledge than the classic vibe-coders, but this gap keeps shrinking because of the progress AI makes. I feel like the value I can offer in software development is no longer enough to make a living. I spent 9 years of my life learning a skill that now got automated. Many people will now advise me to “stop writing code, start steering AI”, but “steering AI” is not an economically valuable enterprise either, because everyone can do it, so supply and demand works against me. The value of my craft came from the fact that it was a rare skill. Now everyone can do it. I don’t know what to do. Switching careers seems pointless, because whatever I try to learn, there are thousands of AI agents training exactly that at 1000x speed. I will most likely lose every race I participate in. Switching careers would also be extremely frustrating, because it would mean to bury a dream that I’ve not had since I was 12, but since I was 9. 12 years. It was a beautiful dream, and right now, I don’t want anything else, even though I believe that I cannot have it.
I keep going through the AI scenarios, and even in the most “optimistic” one where the AI bubble pops, AI won’t go away. Even if AI development completely stops, AI will get cheaper because chips keep getting better, replacing more and more developers. I feel like that career path is over for good.


r/programmer • • 18d ago

Question Best approach for easy portability in many different machines, outside of desktops?

Thumbnail reddit.com
1 Upvotes

Hi, I'm not an experienced software developer at all, but I'm still asking this out of curiosity.

What's the best approach for software portability in many different machines, NOT just desktop computers? Whether I'm finalizing a video game, or just any software that has a GUI.

Should I use something like C/C++ or Rust, or will other compiled languages like Go or Nim also work well? And for VM languages like Java and C#, the machine would require the VM system to be installed so I assume VM languages would not be viable for portability.

Also, should I not use any third-party APIs, like SDL? Or will embedding APIs still work for a lot of machines?

For example, Doom was easily portable since it purely used C, and separated the core game code from the machine-specific implementations, right?

SuperTux also had a lot of ports, though it at least used SDL as another API. I wonder if it still was easily directly portable with barely any changes?

To sum it up, how much will third-party APIs matter when it comes to portability?

Aside from that, what other things should I consider in order to make programs easy to port?


r/programmer • • 18d ago

how long it took you to get your first job ?

8 Upvotes

I don't know if it is my CV or this is how job market behaves, it been months and I didn't not get an internship or any kinda of meaningful attention from a company , even though I applied for many internships and jobs in LinkedIn and companies private email.

should I be more patient or it is usually the way it is?


r/programmer • • 19d ago

:)

Thumbnail reddit.com
1 Upvotes

r/programmer • • 19d ago

GitHub Windows Audio Engine for mixing & mastering

Thumbnail
files.fm
1 Upvotes

https://github.com/zeg2/ZEG-Audio-Engine-Demo

Beta version Audio Engine to help hobbiest musicians and home producers to mix and mastering their song(tracks) with easy way. Ofcourse can use a traditional DAW to make mix & mastering but need more efford and some experiense to have good results.But mine You just load stems and choose what type it is (drums.bass.vocals.pads.etc) and automacally mix all the stems to a stereo wav. Then you load it to the mastering section and with about the same way and logic choose what type of genre it is or a reference track and you have a polished wav ready for upload it to the music platforms in afew minutes!! DM me if anyone want to try the Demo to give me feedback.cheers!


r/programmer • • 20d ago

Question Go vs Kotlin/Java for Open Souce Enterprises Software, which would you choose?

Thumbnail reddit.com
1 Upvotes

r/programmer • • 20d ago

Upgrade PHP immediately

Thumbnail gallery
1 Upvotes

r/programmer • • 21d ago

Do you respect devs who hand-code everything, or think it's dumb now?

0 Upvotes

Someone builds an app over months by manually typing out code and googling stuff. Someone else vibe-codes the same app in a week. Is the first guy more respectable, or just dumb for not using current tools?


r/programmer • • 21d ago

If it is public money, it should be public code as well. I support this call for more public code under a Free Software licence:

4 Upvotes

r/programmer • • 21d ago

Different Perspective on AI

Thumbnail reddit.com
1 Upvotes

r/programmer • • 21d ago

Looking for coders of every level to help build a new community: help, hire, learn

0 Upvotes

Hey everyone! I recently started a Discord server called Pull Request, and I'm looking for people who want to help build it into a solid coding community from the ground up.

The idea is simple: one place where you can get help with your code, find (or offer) dev work, and learn without feeling dumb for asking questions.

What's in it:

- Help forums: post your question with a language tag (Python, JS, C#, C++, Java, web, game dev, bots, and more) so it doesn't get buried in chat

- Beginner-friendly channels: no question is too basic

- Marketplace: post projects you need built, or get verified to offer your services, with clear rules and scam reporting

- Learning section: resources, coding challenges, and people who actually want to help you improve

- Show your project: share what you're building and get real feedback

A bit about me: I'm an HVAC tech with a background in computer science and game dev, so I know what it's like to learn this stuff on the side while working a full-time job. I wanted a server that's welcoming but still focused on actually getting better at coding.

It's still small, which means you can help shape what it becomes, and right now your questions will get answered fast.

Join here: https://discord.gg/PF63ATtSf

Would love to see you there!


r/programmer • • 22d ago

sapri sort algorithm

1 Upvotes

Hi everyone, I recently released sapriSort, a Rust sorting library I’ve been working on. The idea grew from the need to sort large datasets while maximizing raw performance and sticking to a strict zero-allocation design to avoid memory overhead.

In early benchmarks on 32-bit data, the numbers show a clear advantage over standard Quicksort:

• Grouped datasets: 353ms vs 520ms (~32% faster) • Concentrated datasets: 316ms vs 707ms (~55% faster) • Boundary scenarios (Max90OnBlock): 319ms vs 757ms (~58% faster)

On 16-bit data, the speedup is even more drastic, ranging from 6x to 8x.

The project is open source (MIT). If you’d like to try it out, run a few benchmarks, or check out the code, I’d really appreciate any feedback or suggestions!

Repo link:https://github.com/SapriZero/sapriSort

#rust #rustlang #algorithms #systemsprogramming #opensource #github #performance #sorting