Adventures in Tech

Leveling Up as a Software Engineer

Mercedes Coyle, Data Engineer at ulive
Follow me on twitter: @benzobot

Welcome to programming!

xkcd

Life before Hackbright

  • Tried to learn programming through online community college courses, weekend workshops, and self study
  • Worked in IT (helpdesk, operations)
  • Photographic Industry (I hate shooting weddings!)

Life During Hackbright

When you get stuck:

  • Don't panic: the answer is 42.
  • Get better at asking questions
  • If something looks confusing, it probably is
  • Use your interactive console for debugging!

It's dangerous to go alone! Take this.

keyboard
  • Learn to love pair programming! It's good for you.
  • Make time to study concepts you don't understand
  • Ask your mentors for guidance
  • Don't forget to eat and take breaks!

Projects!!?

  • Think big ideas, write every idea down, and then scale back.
  • Avoid perfectionist paralysis
  • Don't get overwhelmed by big items on your to-do list: break tasks down into bite-sized pieces.

Monitor Lizard

Hackathons

Post Hackbright

Interview Process

I got a job! Can I really do this?

Onboarding and Mentoring

  • A bit like drinking from the firehose
  • You might screw something up, but that's OK.
  • No one treated me like a junior engineer, I had respect from the start.

Responsibilities of an Apprentice

  • Question anything you don't understand
  • Be willing to refactor many times over
  • Speak up when you have ideas, need clarity, or are overwhelmed

Responsibilities of a Mentor

  • Patience and understanding even during repeated questions
  • Give Apprentices responsibilities and ownership of more experienced engineers
  • Teach problem solving, not syntax

Data Engineering

Yak Shaving

Those yaks sure are hairy!

Engineering Workflow

  • Observe, Analyze, Change Parameter, Observe, Analyze...
  • Some days I'll spend more time doing research than coding.
  • I'm responsible for fixing stuff that breaks, just like the rest of my team.
  • Writing code is easy. People Engineering - communicating with stakeholders, nailing down specs, and working on teams is the hard part.

Giving Back to Your Community

  • Mentoring
  • Tech Talks
  • Contributing to Open Source

Personal Projects

I don't always feel like spending the weekend coding, but I do on occasion take time out of my weekend to work on projects. If it makes you happy, make time for coding fun stuff outside of work.