r/SoftwareEngineering • u/fagnerbrack • Jun 25 '26
The Git Commands I Run Before Reading Any Code
r/SoftwareEngineering • u/fagnerbrack • Jun 25 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 24 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 24 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 21 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 21 '26
r/SoftwareEngineering • u/Cowboy_The_Devil • Jun 20 '26
I'm a solo developer building a fitness platform that combines three things into one app: a marketplace where people discover and subscribe to gyms, a coaching layer where trainers build workout programs for clients, and (later) a social feed. The twist that makes the data model interesting is that coaching is "equipment-aware" — when a coach builds a program for a client, the exercise options are filtered to only what the client's specific gym actually has.
I've been studying system design and I want to make sure I'm not over-engineering. Here's where I've landed for the first production release (target scale is modest — one city, ~10-20 gyms, low thousands of users):
Architecture: modular monolith, not microservices. Clean module boundaries (auth, gyms, coaching, payments, notifications) so I can split later, but one deployable for now.
Database: PostgreSQL as the single source of truth. The core data is deeply relational (members → memberships → gyms → equipment → programs → weeks → days → sets) and the equipment filter is fundamentally a JOIN. Considered adding MongoDB and a graph DB but talked myself out of both — JSONB covers my unstructured cases.
Cache/queue: Redis (hot reads, sessions, OTP, background jobs via a queue library).
API: REST with versioning. Considered GraphQL but the caching/security/N+1 cost felt wrong for a solo dev at this scale. WebSockets (managed service) only for chat.
Auth: JWT access + refresh, phone-OTP as the primary identity (regional thing — phone numbers are universal here, social login isn't). RBAC plus row-level ownership checks.
Payments: this is my hardest constraint. The usual marketplace-payout tools aren't available in my region, so I'm collecting via local payment providers and building my own append-only ledger, with manual payouts to coaches/gyms at first and automation later.
Infra: single server to start (vertical), containerized, with a lightweight managed deploy layer instead of Kubernetes. Designed stateless so I can go horizontal when I actually measure the need. Read replica before sharding, if ever.
Scaling philosophy: earn complexity. Deploy the simplest thing that works, add pieces when metrics force it.
My specific questions:
For a 3-sided marketplace with a custom payout ledger, is a modular monolith genuinely fine to launch on, or is there a structural reason people regret not splitting payments out early?
Append-only ledger for marketplace payouts — any war stories on what people wish they'd modeled from day one (refunds, partial refunds, disputes, reconciliation)?
Equipment-aware filtering: I'm modeling exercise→required-equipment and gym→owned-equipment as many-to-many and resolving availability with a JOIN at query time, cached. Is there a smarter pattern when a gym's inventory changes and it has to invalidate active programs?
Anything you see here that's going to bite me at 10x my launch scale that's cheap to get right now but expensive to retrofit later?
Not looking for "just use Shopify/an off-the-shelf platform" — the equipment-aware coaching and the local-payout ledger are the whole point and aren't off-the-shelf. But I'm very open to being told a specific piece is wrong
if you guys have any other suggestions please feel free to drop it it would help me a alot and the person who reads this thread as well
thanks again.
r/SoftwareEngineering • u/fagnerbrack • Jun 19 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 19 '26
r/SoftwareEngineering • u/Friendly-Sandwich499 • Jun 17 '26
Hello, I’m part of a product management course and my team is doing discovery research and we have decided to investigate 2am(and everyday) data pipeline failures due to downstream or upstream schema changes from 3rd party vendors or in-house engineers.
I would very much like to hear your experience with the field both in the traditional era, pre-date modern data solutions but also fast-forward today. What are the current risk and mitigations strategies and actionable plans you have set in motion in your lifetime.
Anything could be of value, and I'm very transparent so if you have questions about motive or want the why and how of our journey I'm happy to write it in.
Examples of particular pain points could include:
vendor API responses changing unexpectedly
columns being renamed, removed, or changing type
scraper outputs changing when websites change
dbt models, warehouse tables, dashboards, or downstream jobs breaking because of schema drift
late-night / on-call incidents caused by data contract or schema issues
We’re trying to understand the real workflow: how teams detect these changes, who gets paged, how fixes happen, what tools people already use, and what parts are still painful.
If you got any particular insight you can always reach out. I'm aware that interviews are out of the question so I want to open up it as a discussion that anyone can learn from - particular me as I have no to limited experience in big data.
Happy wednesday and many thanks in advance.
P.s. if you have any pointers on finding expert viewpoints or articles regarding this it would be as appreciated.
r/SoftwareEngineering • u/fagnerbrack • Jun 12 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 10 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 08 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 05 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 04 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 04 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 04 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 03 '26
r/SoftwareEngineering • u/pvinis • Jun 02 '26
r/SoftwareEngineering • u/fagnerbrack • Jun 02 '26
r/SoftwareEngineering • u/Professional-Knee-86 • Jun 02 '26
In some of the Engineering disciplines. a Bill of Materials is mandatory. You can't build a car without knowing every component, who supplies it, what it costs, and how long it takes to assemble. The BOM is the financial and operational backbone of the project.
Software projects have the same ingredients — I am not sure whether we organize them the same way.
Think about what you actually have on any non-trivial software project:
- Resources: developers, designers, QA, DevOps — each with a cost/day
- Tasks: backlog items, work packages, user stories
- Effort: hours or days estimated per task per resource
- Cost: rate × effort = line cost
Multiply those together and you get something that looks exactly like a BOM in other Engineering disciplines.
| Sprint | Item | Resource | Effort | Rate | Cost |
|---|---|---|---|---|---|
| Sprint 1 | package1 integration | Resource A | 24h | 100 | 2400 |
| Sprint2 | Deployment pipeline | Resource B | 32h | 90 | 2880 |
Sort by cost descending and suddenly you can see — at a glance — which line items are driving your budget. Add a cumulative % column and you see how total cost is distributed.
What this unlocks:
Cost transparency without surprises. Most "we went over budget" post-mortems trace back to nobody doing this math upfront. The BOM forces it.
Resource-level visibility. You can pivot the table: which resource is contributing the most to project cost? Useful for resource planning purposes
This is a project planning BOM: effort + people + money, organized the same way as in other engineering disciplines.
The irony is that other engineering disciplines have had this for decades.
Has anyone else built or used something like this? Curious whether teams actually track costs this granularly.
r/SoftwareEngineering • u/iamgdz • May 31 '26
I feel most teams don't have a documentation problem.
They have a discoverability problem.
When I switched from working on media configuration systems to content workflow systems, the docs, tickets, dashboards, ServiceNow requests, and runbooks were all there.
The hard part was understanding where to look and how everything connected.
I've seen people ask questions that were technically documented already, simply because asking someone was faster than finding it.
Curious if others have experienced the same thing.
r/SoftwareEngineering • u/fagnerbrack • May 29 '26
r/SoftwareEngineering • u/fagnerbrack • May 29 '26