Salt Lake Software Symposium - June 8 - 9, 2018 - No Fluff Just Stuff

Matt Stine

Salt Lake Software Symposium

Salt Lake City · June 8 - 9, 2018

You are viewing details from a past event
Matt Stine

I Enable Early-Career Enterprise Software Engineers to Continuously Improve

My passion is taking a metaphysical approach to software engineering: what is the nature of the collaborative game that we continuously play, and are there better, more contextually-aware ways to play that game?

By day I lead a team tasked with taking a first-principles-centric approach to intentionally enabling programming language usage at the largest bank in the United States.

By night I write and teach my way through a masterclass in software engineering and architecture targeting early-career software engineers working in large-scale enterprise technology organizations.

What is the primary goal?

To win the game. More seriously: to get 1% better every day at providing business value through software.

Who am I?

I'm a 22-year veteran of the enterprise software industry. I've played almost every role I can imagine:

  • Software Engineer
  • Software Architect
  • Technical Lead
  • Engineering Manager
  • Consultant
  • Product Manager
  • Field CTO
  • Developer Advocate
  • Conference Speaker
  • Author
  • Technical Trainer
  • Technical Marketer
  • Site Reliability Engineer
  • Desktop Support Specialist

I've worked at Fortune 500 companies, a tenacious teal cloud startup, and a not-for-profit children's hospital. I've written a book, and I've hosted a podcast. I've learned a lot along the way, including many things I wish I'd known when I first got started. And so now I want to pass those learnings on to you, especially if you've only just begun your career.

Presentations

Serverless State of the Union: 2018

On the 2017 tour, I introduced the notion of “serverless” and Functions as a Service (FaaS) platforms. We understood the motivation for serverless computing, compared serverless to other cloud-native infrastructure approaches, navigated some architectural tradeoffs, and took a whirlwind tour of the Big 3 FaaS providers.

AWS Lambda Deep Dive

In this presentation, we'll build, test, and deploy an image-processing pipeline using Amazon Web Services such as Lambda, API Gateway, Step Functions, DynamoDB, and Rekognition.

Introduction to Chaos Engineering

Chaos Engineering, pioneered by Netflix, is the discipline of experimenting on a distributed system in order to build confidence in the system's capability to withstand turbulent conditions in production.

DDD and Microservices: Like Peanut Butter and Jelly

As an architectural style, microservices are here to stay. They have crossed the proverbial chasm, and now it’s time to get to work. Microservices provide us with the ability to create truly evolutionary architectures composed of cohesive and autonomous components using well known and characterized distributed systems patterns.
As we create and compose components across the hard boundary of the network, we become deeply interested in establishing the correct boundaries and has resulted in renewed interest in system design and decomposition. Fortunately, the tried and true practices of Domain-Driven Design are available to us.

Being Good at Software: a Tragedy in Three Acts

The late Stephen Covey, world-renowned leadership author and speaker, said many times that “You don’t break principles. You only break yourself against them.” Like any other discipline, software engineering is governed by its own set of unbreakable principles. Those who discover and align their behavior with them often seem to be good at this business we call software, and those who ignore or willfully violate them inevitably fail, sometimes in spectacular ways.

Architectures That Bend But Don't Break

All software architectures have to deal with stress. It’s simply the way the world works! Stressors come from multiple directions, including changes in the marketplace, business models, and customer demand, as well as infrastructure failures, improper or unexpected inputs, and bugs. As software architects, one of our jobs is to create solutions that meet both business and quality requirements while appropriately handling stress.