Either by ourselves or for a company, we program so that we can launch products. Learning how to launch an enterprise-grade product from the ground up changes everything.
Join us for a series on how to build enterprisey products!
Hey there!
As we begin our programming journey, it's common to feel overwhelmed by the challenge of understanding how things work. But don't worry, as we progress, our focus shifts towards comprehending how things work together.
When it comes to enterprise development, the stakes are much higher! We need to assemble multiple moving pieces from various sources to create a system that can withstand the demands of an exceptional number of users.
Enterprise development is all about building systems that can bear the weight of a large number of users. What works at 1,000 users may not work at 100,000 users. As the scale changes, we have to think differently about our domain and consider the impact of improper coupling beyond a certain threshold. We must develop features in isolation without inadvertently causing problems for other teams. It is crucial to have a way to release a feature independently of all other features within the application.
We'd love to invite you to join us on a collaborative journey. We'll share with you the principles and techniques we have used to build enterprise applications since before JavaScript was considered a serious language. We believe that an engineer who knows how to develop and release a scalable product into the market will always have opportunities.
Let's do this together!
We will start with a functional, albeit flawed, Angular application. Through a series of iterations, we will refactor the sample application to be more extensible and scalable. We will anchor our discussion around domain-driven design principles and then look at practical ways to orient our application around a business domain. We will learn how to organize our code and files within a monorepo to reduce coupling while promoting meaningful cohesion. By the end of the workshop, we will clearly understand how to shift the business logic into stand-alone libraries so that it can be reused within lightweight frontends that can ultimately be composed into a single, federated frontend.
We will also see how to properly segment your application layers to decouple your front end from your back end while increasing opportunities to write more effective tests.
Organizations run into huge problems when their codebase does not align with their business domain.
Reduce coupling while promoting cohesion with monorepos.
Microfrontends are a game changer for developing and deploying in parallel.
Reactive architecture allows us to move business logic away from the component layer.
State management is one of the most challenging aspects of large scale development.
Standalone components promotes reusability through a lightweight and portable approach.
Unit tests are one of the most reliable markers of overall code quality and sanity.
Automated E2E tests is basically a money printer hiding in plain sight.
The user experience is the ultimate benchmark and this is why performance tuning is so critical.
Being able to quickly and easily deploy your application somehow still feels magical after all this time.