The life of a technologist

In a high performing team

Our goal

  • We want you to be successful in your career!
  • Help you to master technical concepts
  • Practice skills needed to be an awesome team mate

Software is eating the world

High performing dev teams

  • Made up of high performing team members
  • Focus on collaboration
  • Create real value by finishing things
    • 99% finished => sunk cost
    • 100% finished with bugs => damage control
  • Use the right tools for the job

Kanban


  • Agile and lean practices
  • Gives you a bit of agency in choosing your next task
  • Gives you a chance to hone prioritisation skills

Git


  • Industry standard version control tool
  • Makes dev collaboration possible
  • Makes it safe to try things
  • Fancy automations

Chat


  • Email is insufficient
  • Public square / asynchronous water-cooler

High performing dev teams

...value deep focused work

  • Thought workers need space to get things done
  • Have large blocks of time for deep work
  • Asynchronous communication

High performing dev teams

...follow remote work best practice

You can get away with communication bad practices if you are working synchronously and in person.

  • Make good use of interactions / rituals
  • Watch your comms, but also focus

High performing dev teams

...Make the most of standups

  • If you need something, say something
  • If you are worried about a team mate, say something
  • The scrum master is there to help unblock you
  • Be a good team mate - if you are in a position to help, put up your hand

High performing dev teams

...build and maintain leverage

  • prioritize knowledge spread
  • team mates set each other up for success
  • team mates work carefully so that they don't trip anyone else up
  • every team mate is dedicated to making their peers more successful and knowledgeable

Let's talk about you

Techies learn constantly

  • New tools, techniques, best practices...
  • Don't just learn - learn how to learn
  • Don't wait to be tested - test yourself
  • Don't just solve problems - learn how to approach problems
  • Don't be scared of breaking stuff - experiment, stumble, grow
  • You'll need some grit for this

The zen of coding

  • Be ok with being hella confused
  • Learn to be focused while under pressure
  • If the code doesn't work: accept reality and move forward
  • Accept that frustration is a part of the job
    • confusion => anger
    • changing expectations and needs
    • changing landscape, learning fatigue
  • Foster a growth mindset
  • overcoming hurdles is the best way to learn to overcome bigger hurdles
  • Your ability to withstand frustration is like a muscle you can build
  • Prove to yourself that you can overcome hard things
  • Celebrate the little wins
  • Sometimes you just need to sleep on it - it's ok to walk away from a problem, but come back!

Finding answers

Understanding is the key difference between a bad developer and a good developer — Max Kanat-Alexander, Code Simplicity
  • Google it 😜
  • The official docs are your friend
  • Stackoverflow == ❤️
  • Beware the illusion of competence!
    • Watching videos is a nice intro
    • You don't know it until you can do it
    • Coding is a craft. Mastery comes from practice
  • Learn how to ask good questions
  • Make yourself easy to help and you will get better help

RUBBER DUCKING

Code review

  • Mistakes are a part of the game
  • The earlier you spot a problem, the cheaper it is to fix
  • Many eyes => fewer bugs
  • It builds leverage in a team by empowering people with knowledge - both the reviewer and the reviewed

Learning from code review

Zone of proximal development

Learning from code review

  • Remember that you are talking to a person
  • Ask for clarification if you are stuck
  • Accept that nobody will just give you the answer
  • Don't submit work that you know is wrong or incomplete

How to be a good reviewer

  • Be clear
  • Be complete
  • Be fast
  • Don't spoonfeed anyone
  • Remember that you are talking to a person
  • A good team mate tries to help their team members to grow and learn
  • Learn from different approaches

Clean code

It is more important to reduce the effort of maintenance than it is to reduce the effort of implementation. Max Kanat-Alexander, Code Simplicity
The design of software aims to make developers job as easy as possible so they can focus on what matters. Helping the end user
Simplicity is the ultimate sophistication — Leonardo da Vinci
  • Make life easy for reviewers
  • Good code is consistent
  • Good code makes its intention clear
    • Clear names
    • Simple algorithms
    • Cohesion
  • Build good habits now - don't write bad code with the intention of cleaning it up later
  • Consider the next coder to be your client

</presentation>