Forwarded from DevLoom
An effective architecture doesn’t just fit your application—it grows with it.
In this talk, we’ll explore how to design an Angular architecture tailored to your app’s current size, with a clear path for scaling as complexity increases. We’ll start small, with a single feature module, and progress step-by-step: splitting into sub-modules, grouping functionality into domains, and evolving toward a modular architecture. At the peak of this evolution, we’ll touch on microfrontends as a strategy for scaling teams and applications effectively.
Using Sheriff, we’ll also show how to enforce architectural rules, ensuring your codebase remains clean, maintainable, and scalable at every stage of growth.
In this talk, we’ll explore how to design an Angular architecture tailored to your app’s current size, with a clear path for scaling as complexity increases. We’ll start small, with a single feature module, and progress step-by-step: splitting into sub-modules, grouping functionality into domains, and evolving toward a modular architecture. At the peak of this evolution, we’ll touch on microfrontends as a strategy for scaling teams and applications effectively.
Using Sheriff, we’ll also show how to enforce architectural rules, ensuring your codebase remains clean, maintainable, and scalable at every stage of growth.
How to speed up your Germany "Einbürgerungstest" like a good )))
v1.0.0
PS: first install "Tampermonkey" Chrome extension and create a new noscript.
v1.0.0
$('head').append('<style type="text/css">.blinker-class{color:white;background-color:#0063a5;animation:1s linear infinite blink;border-radius:50%;margin:auto}@keyframes blink{25%,75%{opacity:.5}50%{opacity:0}}</style>');$(".t3instructiontext .t3borderless").find(".t3data[name='FARBE']").parent().addClass('blinker-class');PS: first install "Tampermonkey" Chrome extension and create a new noscript.
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Oldschool ppl are u here?)
AWS UG Munich - January 2025
AGENDA:
Address: view@gMaps
RSVP?
#meetup #mucMeetup
AGENDA:
18:00 - Doors open, networking, drinks, food
18:30 - Markus Ostertag (AWS Hero): Recent AWS announcements
19:15 - Benjamin Hofmann, Biyan Cicek and Tim Chen (MaibornWolff): Incident Resolution Assistance with AI
20:00 - Ovidiu Hutuleac (Sr. Data Solutions Architect @ AWS): Deep Dive into Amazon Aurora DSQL
20:45 - More drinks, more networking
Address: view@gMaps
MaibornWolff GmbH KARE Kraftwerk
Drygalski-Allee 25, 11th Floor · München
RSVP?
#meetup #mucMeetup
Drygalski-Allee 25 · Drygalski-Allee 25, 81477 München, Germany
Building
#webinar
🚨 Improve Your Angular Architecture for Long-Term Maintainability
Webinar with Manfred Steyer, GDE
https://www.angulararchitects.io/improve-your-angular-architecture-for-long-term-maintainability/?mc_cid=c5c4030e8b&mc_eid=0d74431810
14.01.25, 16:00-17:30, CEST Berlin
🚨 Improve Your Angular Architecture for Long-Term Maintainability
Webinar with Manfred Steyer, GDE
https://www.angulararchitects.io/improve-your-angular-architecture-for-long-term-maintainability/?mc_cid=c5c4030e8b&mc_eid=0d74431810
This media is not supported in your browser
VIEW IN TELEGRAM
While loop without an exit condition in real life 😅
Show this to your juniors if they again asked how work
Show this to your juniors if they again asked how work
while(true) {...} 😊"The 17 Rules of Software Engineering – Every Developer Should Know"
These principles capture the essence of what makes great software engineering practices timeless.
✅ Stop falling in love with your own code.
✅ You will regret complexity when on-call.
✅ Everything is a trade-off. There's no 'best.'
As someone who's spent years in software development, from optimizing Angular applications to architecting large-scale systems, these rules are a reminder of the lessons hard-learned in the trenches:
- Every line of code is a liability: Less is more.
- Document your decisions: The best code can’t fix poor communication.
- Ship early, iterate often: The faster you learn, the better the outcome.
Software engineering is not just about writing code—it's about building resilient systems, fostering collaboration, and thinking long-term. These 17 rules are a checklist every developer, junior or senior, should internalize.
What’s the one rule here that resonates the most with your experience?
These principles capture the essence of what makes great software engineering practices timeless.
✅ Stop falling in love with your own code.
✅ You will regret complexity when on-call.
✅ Everything is a trade-off. There's no 'best.'
As someone who's spent years in software development, from optimizing Angular applications to architecting large-scale systems, these rules are a reminder of the lessons hard-learned in the trenches:
- Every line of code is a liability: Less is more.
- Document your decisions: The best code can’t fix poor communication.
- Ship early, iterate often: The faster you learn, the better the outcome.
Software engineering is not just about writing code—it's about building resilient systems, fostering collaboration, and thinking long-term. These 17 rules are a checklist every developer, junior or senior, should internalize.
What’s the one rule here that resonates the most with your experience?
Don't hire developers just because their GitHub profiles are filled with green dots.
Some of the most talented developers I know aren't even on GitHub or shared private dots.
They focus on building closed-source applications on platforms like GitLab.
Git activity reflects quantity over quality.
Instead, evaluate developers based on the value they contribute to a project, not just how frequently they commit.
#git #github #gitlab #commits
@Memoirs_of_a_ngxSamurai
Some of the most talented developers I know aren't even on GitHub or shared private dots.
They focus on building closed-source applications on platforms like GitLab.
Git activity reflects quantity over quality.
Instead, evaluate developers based on the value they contribute to a project, not just how frequently they commit.
#git #github #gitlab #commits
@Memoirs_of_a_ngxSamurai
#angular
Do you usually add the required attribute to native input elements when using reactive forms?
The Angular official docs recommend doing so for #a11y purposes
https://angular.dev/guide/forms/form-validation#built-in-validator-functions
#forms #rf
Do you usually add the required attribute to native input elements when using reactive forms?
The Angular official docs recommend doing so for #a11y purposes
https://angular.dev/guide/forms/form-validation#built-in-validator-functions
"...the required attribute is still present in the template. Although it's not necessary for validation, it should be retained for accessibility purposes. "
#forms #rf
TS Trick‼️
Have you ever forgotten to handle a new case in a union type?
Enter exhaustive checks - a TS feature that ensures every possibility in a union is accounted for. By leveraging the never type, you force TS to throw a compile-time error whenever you miss a scenario, saving you from sneaky runtime issues and costly debugging✅
What Are Exhaustive Checks?
Exhaustive checks guarantee you cover all possible variants (cases) of a union type. If a new variant is introduced to the type - but isn’t handled in your code - TS raises a type error. This approach prevents silent omissions, enables confident refactoring, and promotes code clarity👏
Why Use the never Type?
1️⃣ Robustness: Catch missing branches at build time, long before they can do damage in production.
2️⃣ Maintainability: When your union type evolves, all reliant code must be updated - no guesswork, no headaches.
3️⃣ Early Warning System: TS will alert you if you haven’t entirely handled a union, so you’ll never deploy half-baked solutions.
Have you ever forgotten to handle a new case in a union type?
Enter exhaustive checks - a TS feature that ensures every possibility in a union is accounted for. By leveraging the never type, you force TS to throw a compile-time error whenever you miss a scenario, saving you from sneaky runtime issues and costly debugging✅
What Are Exhaustive Checks?
Exhaustive checks guarantee you cover all possible variants (cases) of a union type. If a new variant is introduced to the type - but isn’t handled in your code - TS raises a type error. This approach prevents silent omissions, enables confident refactoring, and promotes code clarity👏
Why Use the never Type?
1️⃣ Robustness: Catch missing branches at build time, long before they can do damage in production.
2️⃣ Maintainability: When your union type evolves, all reliant code must be updated - no guesswork, no headaches.
3️⃣ Early Warning System: TS will alert you if you haven’t entirely handled a union, so you’ll never deploy half-baked solutions.
It was released @jscutlery/swc-angular package and its internal Rust plugin to support #Angular v19 and @swc/core v1.10.x.
Try it out to speed up your tests!
👉 https://github.com/jscutlery/devkit
#ng19 #jest #tests #swc
Try it out to speed up your tests!
👉 https://github.com/jscutlery/devkit
#ng19 #jest #tests #swc
📣 Angular in 2025
Minko just shared a blog post about the strategy for Angular in 2025!
https://blog.angular.dev/angular-2025-strategy-9ca333dfc334
Minko just shared a blog post about the strategy for Angular in 2025!
We'll continue bringing innovation to the Web by improving developer experience.
This year expect:
‣ Zoneless in developer preview
‣ Signal forms
‣ RFC for selectorless
‣ Replacement for Karma
‣ Much more!
https://blog.angular.dev/angular-2025-strategy-9ca333dfc334