Its been awhile since I have journaled my experiences in my profession; 7 years running.
I am rededicating myself to journal atleast once a quarter. I have experienced many different technologies, patterns, processes, logistics over the past 7 years that I will start to document.
I will probably start on my series of posts regarding my companies team reorganization and Gen2 transition experience:
- Conway’s law and how we decided to reorganize teams and management to align with a verticle instead of horizontal structure.
- Importance of architecture and strategy decision records
- Context mapping exercise - company wide (all disciplines) to determine the true boundaries, subdomains, core domains, etc.
- Method to keep the context map current and accessible to all. This includes a single place to document our ubiquitous lanages per context.
- Breaking about a monolith site and database into boundaries, not all at once, little by little
- Importance of a Design System and Component Library
- Compose micro front-ends into a homogenous site with BFFs and web-components
- Break down buildtime dependencies between teams by embracing runtime dependencies
- Implement anti-corruption layers between boundaries (both internal and exterinal)
- Utilize a feature toggle system to perform A/B testing in production
- Embrace events over APIs for cross boundary communication
- No monolith database - embrace the duplicate data across boundaries paradigm - on the bounded context can access directly its database. All other access must be performed through APIs or events.
Some other experiences I want to eventually document by priority:
- Finish my Marten usage experience journal entry
- Importance of a company repo used to start new projects. Documents architecture decisions.
- React and how to manage state without complex libraries like Redux - i.e. react-query
- Zero bug policy
- Breaking work down in to small, managable, incremental parts
- Improving the SDLC process and integrating it into automation.
- Integrating SOC and EDE audit requiremnts into the SDLC process without constricting incremental improvements
- Shifting left with QA engineers, product managers and UX designers.
- Story mapping and coming up with a delivary plan while staying agile - focus on milestones / goals, not individual stories and story points
- GitHub Actions experience - sharing standards functionality with multiple teams and repos
- Production Support and alerting - integrating with PagerDuty and a public status page site
- Load and Stress testing experience - k6, kubernetes, reusing Cypres tests and pseudo services for 3rd party integrations
- CloudEvents, Azure Functions, CosmosDB streams, Azure Event Hub and the Outbox pattern
- Terraform + Azure experience
- Integrating a demo environment
- Integration a failover environment
- Integrating with a 3rd party both at the API level and UI level - the good, the bad the ugly and how to mitigate risk through contractual tests
- Distributed tracing with AppInsights & FullStory experience - how to ingegrate multiple AppInsight instances from micro front-ends
- Home automation experience