Upgrade to Pro — share decks privately, control downloads, hide ads and more …


Otavio Santana
May 11, 2023


Otavio Santana

May 11, 2023


  1. Technology as an end Failure? Hyper-Focused Planning And Design Unclear

    Or Undefined Client Expectations Unexpected Complexities Poor Collaboration Between The Product And Engineering Teams
  2. Obstacles To A Successful Software Why? “It is common for

    developers to deliver a product that doesn’t align with the client’s perceptions.” By Forbes Technology Council
  3. New technology as the solution Buzzword to the rescue! The

    solution is _______ to solve those issues. Put your favourite or new tech here. #Kubernetes #Java #Go #Rust #Python #JavaScript #Node JS
  4. Etymology Do we understand engineering? From the Latin ingenium, meaning

    "cleverness" and ingeniare, meaning "to contrive, devise"
  5. The Practical application of science Strategy vs Tactics 10 days

    40,000 soldiers Caesar's Rhine Bridge, by Sir John Soane (1814)
  6. Software Engineer Definitions? “Software engineering is the application of an

    empirical, scientific approach to finding efficient, economical solutions to practical problems in software.”
  7. Code Design Tactics vs Strategic? Get something done Working code

    isn't enough Tactical tornado Strategic Tactical Time Total progress
  8. DDD Strategy vs tactics Ubiquitous Language Bounded Contexts Context Maps

    Entity Value Objects Services Repository Aggregator
  9. Documentation Trade-off Document what makes sense Fair Documentation PPT does

    not compile Over Documentation Blind code is Go horse None Documentation PPT does not compile Over Documentation Blind code is Go horse None Documentation Document what makes sense Fair Documentation
  10. One server in a cluster not being updated. Developers reusing

    a flag that was no longer thought to be in use. Dead code coming back to life. Unusual messages from an application being ignored. How much? Documentation They'd just lost their company $460 million dollars. https://blog.microfocus.com/the-knight-capital-saga-how-to-go-out-of-business-in-45-minutes/
  11. CHANGELOG Changelogs are for humans, not machines. Types of changes

    The latest version comes first. Don’t let your friends dump git logs into changelogs.
  12. Commit Step and track an activity <type>[optional scope]: <description> [optional

    body] [optional footer(s)] I. fix: II. feat: III. build: IV. chore: V. ci: VI. docs: VII. style: VIII. refactor: IX. perf: X. test:
  13. C4-model Architecture’s map Tech-radar Technologies's view ADR Don’t repeat the

    error Communication A clear direction Documentation: Strategy Architectural perspective
  14. C4-model Architecture’s map C1 = Context C2 = Container C3

    = Components C4 = Code C4-model The Architecture overview
  15. Cloud Wasting money “The average enterprise wastes 35% of their

    cloud budget. For every dollar they invest, 35¢ is wasted.” https://info.flexera.com/CM-REPORT-State-of-the-Cloud
  16. *Ops culture Not a rule Put your *Ops new word

    here #MLOps #Devops #DocOps #FinOps #DevSecOps
  17. Cust and risk have a price Use managed service --

    Please It is ok if you're not running Kubernetes Trade-off as service
  18. Cloud: Tactical Health Application The Twelve Factor App I. Codebase

    II. Dependencies III. Config IV. Backing services V. Build, release, run VI. Processes VII. Port binding VIII. Concurrency IX. Disposability X. Dev/prod parity XI. Logs XII. Admin processes
  19. Cloud: Strategy Focus vs Control services "Decreasing control and risk"

    "on premise“ container orchestration Platform-as-a-service Increasing focus on business logic Examples cloud family, openshit, deis, ,heroku Examples kubernates ,docker ,swam ,apache mesos Examples AWS lambda azure functions, CNCF Serverless Whitepaper v1.0
  20. Context The first step Software Engineering Architecture Design Code Design

    Get done Code is not enough for software DDD Entity, Repository Bounded context, Ubiquitous Language Documentation Code, Changelog, README, COMMIT C4-model, Tech-radar, ADR, communication Cloud The Twelve Factor App Delegate what you don't want to focus Test unit test, coverage test, mutation testing Pyramid Test
  21. Simplicity as efficiency Fight against complexity Code complexity Starting to

    code "The simplest code = Ultimate sophistication Engineer" Oop everywhere Design patterns Abstractions interfaces “ I might need this later” this is what the experts do Years of programming
  22. Otavio Santana Software Engineer & Architect @otaviojava Java Champion, Oracle

    ACE JCP-EC-EG-EGL Apache and Eclipse Committer Jakarta EE and MicroProfile Duke Choice Award JCP Award Book and blog writer Who am I?
  23. Thank you! Otávio Santana Software Engineer & Architect @otaviojava https://twitter.com/otaviojava

    https://www.linkedin.com/in/otaviojava/ https://www.youtube.com/@otaviojava