Architect as a Service
Minneapolis, Minnesota, United States
Nathaniel T. Schutta is a software architect and Java Champion focused on cloud computing, developer happiness and building usable applications. A proponent of polyglot programming, Nate has written multiple books, appeared in countless videos and many podcasts. He’s also a seasoned speaker who regularly presents at worldwide conferences, No Fluff Just Stuff symposia, meetups, universities, and user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota, where he teaches students to embrace (and evaluate) technical change. Driven to rid the world of bad presentations, he coauthored the book Presentation Patterns with Neal Ford and Matthew McCullough, and he also published Thinking Architecturally and Responsible Microservices available from O’Reilly. His latest book, Fundamentals of Software Engineering, is currently available in early release.
Area of Expertise
Rich Hickey once said programmers know the benefits of everything and the trade offs of nothing...an approach that can lead a project down a path of frustrated developers and unhappy customers. As architects though, we must consider the trade offs of every new library, language, pattern or approach and quickly make decisions often with incomplete information. How should we think about the inevitable technology choices we have to make on a project? How do we balance competing agendas? How do we keep our team happy and excited without chasing every new thing that someone finds on the inner webs?
As architects it is our responsibility to effectively guide our teams on the technology journey. In this talk I will outline the importance of trade offs, how we can analyze new technologies and how we can effectively capture the inevitable architectural decisions we will make. I will also explore the value of fitness functions as a way of ensuring the decisions we make are actually reflected in the code base.
Software engineers have a tendency to view projects in purely technical terms fixating on languages, datastores and frameworks. While it is tempting to focus solely on tech, it isn’t enough to get you that next promotion, raise or bonus, you can’t ignore the soft side of software. As you grow in your career, it becomes clear that projects are made up of people with the inevitable personalities, emotions and opinions on full display yet odds are your computer education omitted people skills as part of the curriculum. This talk will help you wield influence in you org be it to convince management to upgrade to the latest version of your tech stack or help you customer understand why you need to pay down some technical debt. We’ll also cover the impact culture has on our work as well as how to manage the many stakeholders in our orbit.
Over the years, Spring has evolved to solve the ever-increasing demands placed on software teams. From circuit breakers to security to queues to Kubernetes, Spring has an answer to that! But breadth can be overwhelming especially when you need to deploy to production yesterday. While knowing maybe half the battle, left unsaid is applying that knowledge to real-world situations; in other words, how do you bridge the gap between knowing Spring can do that to actually using Spring to fix your issue? With a plethora of examples, this talk will walk you through common problems in modern software development. From monitoring to testing to messaging to reactive programming, this talk will give you concrete solutions for your day-to-day needs.
In this session, you will learn about common situations you will encounter as a developer and how Spring can make the right thing to do the easy thing to do. Cutting through the cruft, you will leave armed with practical code examples you can use on your projects. This talk will touch on Spring Boot, Spring Cloud, APIs, microservices, persistence, testing, and much more. By the end of this session, you will be armed with the knowledge you need to confidently reach for the right tool the next time a problem arises!
With globally distributed applications (and teams!) the job of software architect isn’t getting any easier; applications are growing increasingly complex and architects are spread thin. You can’t be involved with every decision, you must empower your teams while ensuring they are making good choices. How do you do that? How can frameworks like Spring not only make your life easier but help your teams deliver robust applications to production? Spring Cloud has a veritable plethora of sub projects from circuit breakers to functions simplifying the task of building cloud native applications while making it easy for developers to adhere to best practices. At the same time it can be overwhelming to get your head wrapped around all the features Spring offers. This workshop will show how Spring allows architects to focus on the critical design decisions they need to make while ensuring developers are empowered to implement critical business use cases. Today’s cloud native applications have similar pitfalls, luckily Spring is here to help you resolve them!
Many software developers long to upgrade their role to software architect. But while the job title suggests a work day focused on technical decision making, the reality is quite different. Nathaniel Schutta leads a workshop exploring the real-world responsibilities of successful architects, in which communication trumps coding and your days are spent juggling multiple priorities.
Through lecture and small group exercises, Nathaniel will help you understand what it means to be a successful architect. Working through various problems, attendees will have opportunities to think through architectural decisions and patterns, discuss the importance of non functional requirements and why architects cannot afford to practice resume driven design.
The famous fallacies of distributed computing are as true today as when they were originally penned in the Paleozoic era of computing known as “the 90s”, but those aren’t the only misconception found in software. There are many biases and delusions common to projects from the Dunning-Kruger effect to green shifting to not invented here. This talk will explore the most common “thinking patterns” prevalent to software development as well as techniques to avoid and contain them.
Becoming a software architect is a longed-for career upgrade for many software developers. While the job title suggests a work day focused on technical decision-making, the reality is quite different. In this workshop, software architect Nathaniel Schutta constructs a real world job description in which communication trumps coding.
Discover the skill sets needed to juggle multiple priorities, meetings, and time demandsLearn why your best team leadership tool is not a hammer, but a shared cup of coffeeHear the best ways to give and take criticismUnderstand the necessity of writing effective email and formal architecture documentsGet tips for delivering confident career-building presentations to any audienceReview essential techniques for stakeholder management and relationship buildingExplore the critical needs for architecture reviews and an effective process for conducting themThrough lecture and small group exercises, Nathaniel will help you understand what it means to be a successful architect. Working through various problems, attendees will have opportunities to think through architectural decisions and patterns, discuss the importance of non functional requirements and why architects cannot afford to practice resume driven design.
Software development has changed dramatically in recent years; no longer can you afford to say, “That’s how we’ve always done it.” Applications are evolving rapidly, which requires you to move fast and fix things. And don’t neglect the cultural shift inherent in any technical change. (Some developers, for instance, reject build-break notifications, going so far as removing themselves from the email list.) If you’re just starting your CI/CD journey, you must ensure everyone understands the benefits, including increased speed-to-market, stable builds, and reduced drama around releases. That way, CI/CD won’t just help you deliver for your customers—it will help you sleep better at night.
Software architecture is having a moment, from best selling books to packed classes, the software industry acknowledges the importance of the parts of software resistant to internet searches. Ample pixels have been spilt talking about patterns, decomposition, styles, diagrams and more and all to good ends! But when it comes time to review an architecture, what should you do? What factors should you consider? How do you provide constructive feedback? But we won’t just talk theory, we’ll work through real world examples, providing you a chance to practice this vital skill.
Architect as a Service
Minneapolis, Minnesota, United States