Cosa dovrebbe sapere un ingegnere software senior?

Non fatevi prendere troppo dai titoli. "Senior Software Engineer" è un titolo che viene applicato a qualcuno con ovunque da tre a 30 anni di esperienza di programmazione. Occasionalmente l'ho visto applicato a persone con una minima esperienza di programmazione, ma sono considerate "persone intelligenti" e hanno il titolo per giustificare il loro grado di paga. Tuttavia, dalle molte aziende in cui sono stato, la gente di solito ha le seguenti aspettative nei confronti degli ingegneri software senior:

  • Hai una conoscenza avanzata di uno dei principali linguaggi di programmazione.
  • Sei in grado di lavorare da solo. La sindrome dell'impostore non è più debilitante.
  • Sai usare Google e StackOverflow per superare la maggior parte degli ostacoli.
  • Sai leggere una specifica API e imparare a usarla in modo efficace. You're not just coding "by example" anymore.
  • You know how to do a merge in source control.
  • You understand the value of tests.
  • You can write a build script.
  • You can code without breaking an architecture.
  • You're not afraid of using other technologies/languages as needed.
  • You can work well as a member of a software engineering team.
  • You know more than just the "waterfall" model of software development.
  • You're familiar with at least the basics of the Internet and the OSI model, object-oriented programming, and SQL.
  • You concur that vi is vastly superior to emacs.