• Thoughts

    Keep documentation nearby

    Documentation that lives outside the code base is hard to keep updated, or even locate. Keep documentation near code, make it part of the PR process. Use readmes with examples right next to the code files, add large block comments in the code, be verbose.

  • Thoughts

    Thinking big is earned

    Bringing ideas to the table requires investment in the work and people around you. Build trust, engage and prove you can deliver—you'll hit fewer road blocks and your career will be much more fulfilling.

  • Thoughts

    Reduce debt at every opportunity

    Don't let technical debt become so burdensome that it hinders work and sanity—follow the Boy Scout rule, "Always leave the campsite cleaner than you found it".

    Features, stories, and tasks always have room to reduce debt and increase readability.

  • Thoughts

    Always be threat modeling

    Data is a liability. You should consistently be questioning which resources need protection, system boundaries, access capabilities from all sides, and what it would take to feasibly cause a breach.

  • Thoughts

    Dependency Injection is always the answer

    There aren't many hills I'd die on, but DI is one I refuse to budge on.

    The minor inconvenience of complexity is far out weighed by a code base's ability to be easily manipulated with minimal side effects.

  • Thoughts

    A job done well means not over-engineered

    Over-engineering is a complexity that burdens code bases, developers and budgets. We need to encourage each other to solve today's problems, not tomorrows.

  • Thoughts

    Could, would, should

    Three powerful words I use consistently in code reviews. No condescending tones, no orders, just simple open ended questions leading the author to reevaluate and stay in control of their code.

  • Thoughts

    Use a dated coding journal

    Every day a number of thoughts weave in and out of our minds. I forgot more than I remember so I take notes: where I left off, TODOs, design decisions, potential issues, follow-ups, action items, thoughts, and so much more.

    Trust the note not the memory.

  • Thoughts

    Nest less

    Nesting reduces readability and increases cognitive load. Reduce, or better yet, never nest. Return early and extract code blocks when feasible.

  • Thoughts

    SOLID, KISS, DRY = suggestions, not rules

    Extensibility, flexibility and maintainability should be balanced with future effort and developer sanity and onboard-ability.

    Often times it is okay to repeat yourself, it is okay to be verbose and straightforward.

  • Thoughts

    Naming is hard

    Naming and organization is one of the hardest parts of engineering. A poorly chosen name will haunt your code base for years, don't under think it.

An error has occurred. This application may no longer respond until reloaded. Reload 🗙