Raise your hand if your first venture into programming was building a farming simulator complete with livestock, crops, market prices, microloans, interest rates, and even weather at age 12. Anyone’s hand go up? We know for sure that Matt Ruwe’s (Senior Software Engineer and Strategist at Kiewit) did! He may have started back in middle school on an old IBM machine, but he didn’t stop there.
Matt’s clear passion for coding has colored his career and really carried him up the ladder from junior engineer to consultant to senior strategist at Kiewit. On this episode of Next Level, Zach dives into Matt’s story, opinions, and values. Come along with us as we learn how from his experiences and insight.
Key takeaways for quick consumption include…
- Always stay current with evolving technologies and never stop learning.
- Build relationships through user groups, meetups, and conferences to open up new opportunities.
- Be open to change and willing to pivot your career path when necessary.
View This Episode On:
- YouTube: https://youtu.be/Wt_YwMMYCeY
- Apple Podcasts: https://podcasts.apple.com/us/podcast/next-level-a-videocast-for-aspiring-engineers/id1742833688?i=1000659660743
- Spotify: https://open.spotify.com/episode/0fskTjaP8WC25foroUmEwX?si=682e4adba0b84127
- … or wherever you get your podcasts!
About About Guest, Matt Ruwe:
Matt Ruwe is a passionate software architect, developer, mentor, and community leader with over 25 years of professional experience. He excels in leading high-performing software development teams to address complex business challenges and is dedicated to actively contributing to and guiding technology communities. His primary career goal is to create enduring, transformative software systems for organizations.
Matt’s passion for fostering technical communities has been a driving force in my career. Since 2008, he has been the principal leader of the Omaha .NET User’s Group, and under his guidance, the group has grown to include over 1,200 software developers. The Omaha .NET User’s Group is renowned for its longstanding presence and unwavering commitment to the Omaha development community.
About The Next Level Series:
Next Level is a Videocast for Aspiring Engineers with Keyhole Software’s Chief Architect, Zach Gardner. This series dives into the pivotal question every software engineer faces: what direction should my career take?
Like many of us, Zach grappled with this dilemma until he found guidance from incredible mentors. Now, Next Level brings these insights to you. Zach interviews tech leaders, delving into their diverse career paths and success stories. Spoiler: careers in tech rarely follow a straight line! Discover the stories, challenges, and strategies behind these industry giants, all aimed at helping you map out your own journey.
See All EpisodesPartial Episode Transcript
Note: this transcript section was created using generative AI tools like YouTube automated transcripts and ChatGPT. There may be typos, slight content changes, or character limits for brevity!
Zach Gardner: Ladies and gentlemen, welcome to The Future. I’m Zach Gardner, the Chief Architect at Keyhole Software. In talking with many developers across many different industries, there’s been one common theme. Perhaps the only common theme is that none of our career paths have ever been linear. There are so many twists and turns, false starts, industries that we thought were going to go somewhere, technologies that we thought were going to be the next greatest thing—I’m looking at you, blockchain. You know, you just didn’t live up to the hype, unfortunately. But there’s a lot of knowledge buried deep within the dark recesses of our brains for those of us that have been in tech for a long time, knowledge that we need to bring to light. Pieces of advice we wish we could have given to our former selves. Things that, because we are practitioners in a very specific field like healthcare or finance, we know about. We are domain experts in areas we just need the chance to nerd out on every once in a while.
That’s the idea behind this podcast series called Next Level. We’re talking with people from all different walks of life, from all different industries, from all different areas, about what their career journey was like. What are the recommendations they would give to the next generation of software developers trying to figure out if they should stay in the software engineering field, go down the architecture route, or join the dark side and become management. I don’t know the answer, but I know a lot of people willing to come on, who are crazy enough to be interviewed by me, and to give their insights.
Today, with me, is someone who I met through a friend of a friend of a friend of a friend, who’s maybe two and a half hours north of me—Matt Ruwe, the Senior Software Engineering Specialist. How’s it going, Matt?
Matt Ruwe: Good, how are you, Zach?
Zach Gardner: I’m doing well, doing well. And of course, all the views and opinions expressed in this program are the views and opinions of the participants and do not reflect their employers, trade organizations, yacht clubs, grocery stores that they have loyalty cards with—I think that checks Amazon Prime subscriptions. I mean, I can check as many boxes as I possibly can. I think we’re covered, Matt. I think we’re good.
Matt Ruwe: I think we’re good, yeah.
Zach Gardner: So for those in the audience that have not met you before, what’s been your career journey like? Where did you go to school? What was the first thing you remember programming? A lot of people like to talk about that. And how did you go from there to being a Senior Software Engineering Specialist?
Matt Ruwe: Yeah, I got my start early. I grew up on a farm, so it’s kind of an unusual path. I got involved with my dad, who was trading commodities at the time. This was in the late 80s, and he got a computer to help him do some predictive analysis on trading commodities and grain futures. He got this old IBM clone thing that took about 30 seconds for the hard drive to spin up and made a lot of noise. I was just enthralled with this thing from the get-go. It came with two big manuals—one was for MS-DOS, which I read through completely, and the other was for a programming language called GW-BASIC. It’s basically a derivative of BASIC with a lot of go-tos and that sort of stuff, but that was my intro. I read that book front to back probably three times when I was about 12 years old. I’ve tried to think about why I would be motivated as a 12-year-old to do that; I have no idea. It’s a mystery to me even today. I wrote a farming simulator that took everything I knew about farming and put it into a game—you had livestock, crops, banks, loans, interest rates, weather, all that stuff. I just fell in love with it.
After that, I grew up a little bit, went to college, and got a computer science degree. While I was getting my degree, I also had an internship at a software company in Omaha that was really beneficial to me. I got to learn the theory at school and the practice at work simultaneously. If people can do that, it’s a fantastic way to learn. I feel like I got a big advantage just by knowing some people and making good connections. I graduated, stayed at that company for probably another eight years, and built a whole bunch of corporate apps—things that helped the software company do the work they needed to do. We built electronic delivery systems for banking software, among other things. We also built internet applications to help employees do their jobs better, like service requests before big-name service desks were in place.
I did that for about eight years and then moved into consulting, which was probably the best decision I made in my career. I did consulting for about ten years, working at probably six or seven different companies across those years. It was very diverse—diverse companies, industries, people, company cultures, and problems in general. It was a lot of fun, and the people I met during that time were really impactful to me. They helped me open my mind to different ways things are done at different companies. I don’t want to discourage people from being loyal; loyalty is an admirable trait. But if you’re going to live life to the fullest, you should probably do different things. Especially earlier in your career, it’s okay to jump around a little bit. You’ll gain a lot of experience that way.
While consulting, I joined our local .NET Users Group, and eventually, the leader of that group turned over ownership and responsibility to me. That has been a tremendous way to meet people across the city and the region. I think that’s how you and I got introduced to each other. I’ve been doing that for about 15 years now. We’ve had over 200 meetings since I started, and I tell people all the time that I’ve learned something new at every single one of those meetings. Even if it’s just something little, that’s 200 new things—that’s a big deal. They stick with you, and the people you meet and talk to get ingrained into your soul.
I worked across various industries—agribusiness, finance, real estate, e-commerce, genetics, and more that I’m probably not recalling at the moment. After about ten years of consulting, while I did enjoy it a lot and encourage people to do consulting, I got to the point where I wanted some ownership in something. I figured the only way to get true ownership was to work full-time at a company, which is why I took the role I have now at Kiewit as the Software Engineering Strategist. In that role, I’m responsible for working with all the software developers across the company to help them do their jobs better. That involves things like setting down software patterns, software standards, building communities within the organization, ensuring developers have a voice, providing places for them to communicate, building libraries they can share and use, and making themselves more efficient. I do a lot of documentation around software processes to help them know the right thing to do at Kiewit. I often say there are an infinite number of right ways to do something, but you can’t do every right way there is. You have to choose one or two or three, maybe, and go with that because consistency is important. Part of my job is to define the right way for Kiewit and help them move down that path.
I also get on the phone with some of our software development leads, talk with them, understand their problems, and help with challenging issues. It’s really the best of all worlds—I still get to code, work with awesome people, and set strategy for the organization on the software side. It’s pretty enjoyable. That’s the quick rundown on what I’ve done up to this point, which spans a little over 25 years of software development.
Zach Gardner: I mean, I’ve never heard of anyone creating their own farming simulation, man. That’s a new one even for me. That was pretty cool, though. I don’t know if you saw, but DOS 4.0 just got open-sourced by Microsoft over the weekend.
Matt Ruwe: Did not see that. I gotta go look at that.
Zach Gardner: Yeah, I think they released 3.2 before, and this is in the same GitHub repo. There’s another folder for 4.0.
Matt Ruwe: The GW-BASIC compiler was also open-sourced a few years ago, which was fun to see. It’s all written in assembly, so it’s interesting to see and understand a little better.
Zach Gardner: I was going to mention the user group. I think that’s how we met. Going from an FTE to consulting, then back to an FTE now, I’m curious because, for this series, you’re the first former consultant I’ve interviewed. I know my perspective on this, having gone from FTE to consulting. I’m curious about your perspective on some of the unique challenges consultants face. You mentioned ownership as one of them. It is really tough, and something I have to explain to everyone when I do an interview is that being a consultant means you have to at some point abdicate your ownership. All the blood, sweat, and tears you put into these systems, you have to turn over. In some ways, it helps you sleep at night because you know you did your best and set them up for success. But it’s also painful because you don’t get to see it through to fruition. I’m curious if there’s anything else you share with people when you talk about the difference between the two.
Matt Ruwe: One of the things I was advised on when I first started consulting was, and I don’t know if this is 100% true—I’ve struggled with this idea over the years—but if a client, you can tell a client they’re wrong and they’ll still be a client tomorrow, but if you tell your boss they’re wrong, you might have a new boss tomorrow. So, the idea behind that is you get to be a little more honest with your clients. You can have a more upfront conversation with them about what their true needs are and help them achieve them, which is more difficult when you’re a full-time employee. You’re in the same room every day with the same people, and that comes with its challenges. As a consultant, I had the ability to speak a little more freely and have deeper conversations about their problems and how I thought they should solve them.
Ownership, for sure, is another big difference. I got to work on some fantastic systems over the years, but yeah, you turn them over to somebody else and let them run with it. That does make it easier to sleep at night, but you do have to say goodbye to your “babies,” which is tough sometimes.
A challenge that isn’t often talked about is just understanding the company culture. Every company is different, and there are written and unwritten rules. You have to figure those out pretty quickly when you’re a consultant. What are the things you should avoid talking about? What are the things you should avoid doing? Sometimes it takes a little bit of time to figure that out, but once you do, you can be a more effective consultant.
Finally, I think just building relationships is important. As a full-time employee, you get to know the people you’re working with pretty well, but as a consultant, you have to build relationships quickly. People have to trust you right off the bat, so building those relationships fast is a skill that every consultant should have.
Zach Gardner: Yeah, no, that’s all excellent advice. And I think another challenge that doesn’t get enough credit is when you’re a consultant, you might not know what you need to know until you realize you need to know it. So you have to be ready to learn quickly on the job.
Matt Ruwe: Absolutely. You have to be a quick learner and be willing to dive into things headfirst. The ability to learn quickly and adapt to new situations is critical for consultants.
Zach Gardner: Definitely. So, shifting gears a bit, what’s some advice you’d give to the next generation of software developers, whether they’re just starting out or trying to figure out if they want to stay in the field?
Matt Ruwe: I’d say, first and foremost, never stop learning. The technology field is constantly evolving, and you need to stay current. Whether that’s through formal education, online courses, reading books, or just tinkering with new technologies on your own, always be learning.
Secondly, don’t be afraid to ask questions. Nobody knows everything, and it’s okay to admit when you don’t know something. Ask your colleagues, mentors, or even the internet. There’s a wealth of knowledge out there, and people are usually willing to help.
Networking is also crucial. Get involved in user groups, meetups, conferences, and online communities. The connections you make can open up opportunities you might not have otherwise.
And finally, be open to change. Your career path might not be linear, and that’s okay. Be open to new opportunities and willing to pivot when necessary. You might find yourself in a field or role you never expected, but that can be a good thing.
Zach Gardner: All great advice, Matt. Thanks so much for sharing your journey and insights with us today. It’s been a pleasure having you on the show.
Matt Ruwe: Thanks, Zach. It’s been great talking with you.
Subscribe on
Latest Blog Posts
Blog Topics
- .NET
- .NET Core
- Agile
- AI
- Angular
- Apache
- Architecture
- ASP.NET
- Automation
- AWS
- Azure
- BackboneJS
- Blazor
- Blazor Server in .NET 6 Series
- Blockchain
- Business Intelligence (BI)
- C#
- Chat GPT
- CI/CD
- Cloud
- COBOL
- Community
- Company News
- Consulting
- Conversational Apps
- Creating an FHIR API
- CSS & HTML
- Data Management
- Data Science
- Databases
- Design
- Dev Methodologies
- Development Technologies
- DevOps
- Docker
- Educational Event
- Effective Automated Testing With Spring Series
- Flutter
- Gen AI In The Enterprise
- Git
- Go
- Google Cloud Platform
- GraphQL
- Groovy
- Heroku
- HTML5
- Hyperledger
- Infrastructure As Code (IaC)
- Intro to Spring Batch Series
- Java
- JavaScript
- JavaScript Debugging Series
- JHipster Series
- Kansas City
- Keyhole
- Keyhole Creations
- Kubernetes
- Learning Svelte
- Machine Learning
- Microservices
- Mobile
- Modernization
- moderntoolingseries
- MongoDB
- Next Level
- Node.js
- OpenShift
- openshiftseries
- Opinion
- Podcast
- PostgreSQL
- PowerBI
- Programming
- Python
- React
- React Native
- Scaling PHP Apps
- Security
- Service Fabric
- Single-Page Application
- Soft Skills
- solidfoundationsseries
- Spring
- Spring Batch
- Spring Boot
- SQL
- Tableau
- Testing
- Testing React Native Series
- Tutorial
- TypeScript
- UI/UX
- Unity3D Series
- Unity3D Series 2
- Video
- Vue.js
- Xamarin