The Ship It Podcast

The Ship It Podcast header image 1

Episode 8: Origin Stories - Matt Merrill

Episode 8 is the first in a series we're calling "Origin Stories."  We'll interview a senior developer about how they got into the field of Software Development and the lessons they learned along the way.  We hope you find these stories interesting and that they might offer you guidance if you're figuring out your own place in the world of software development!

Our first Origin Story is with Matt Merrill, Principal Software Engineer at Rocket Insights.  Matt started as a Computer Science major in college but ended up switching to a different major. Theoretical programming just wasn't interesting to him.  But, in his second year out working in the real world, found himself doing some stuff that made him realize that programming business applications was a lot different than the theoretical stuff he knew from school. It  didn't take long for Matt to fall back in love with programming and make it a career. Over the course of his roundabout journey, Matt learned a couple important lessons. Don't let yourself get too comfortable in what you do and, above all, always ask yourself why you're building what you're building.

This is our first quarantine episode recorded remotely at home.  Enjoy and stay healthy out there!

Picks from the End of the Episode:

 

Episode 7: Is clean code worth it?

Rocket developers Brandon AaskovDave Oelfke, Simon Ingeson, and Matt Merrill dive into the topic of clean code. When is it worth it? When is it unnecessary? Will it get you in trouble with your teammates? We also share some practical tips for walking the line between "You ain't gonna need it" and when it's worth it to spend that extra 20 minutes cleaning up code.  This podcast was inspired by the article "Goodbye Clean Code" by Dan Abramov which ignited a lot of talk in the Rocket Insights engineering slack channels!

Detailed Notes:

  • 00:00 - Intros
  • 03:20 - Human readability is the most important thing. Are there any hard and fast rules? Cyclomatic complexity is a fancy word that's discussed
  • 06:00 - It's hard to break out of a bad abstraction. It's hard to predict the future
  • 11:00 - There's nothing more permanent than temporary
  • 12:15 - Spreading out your code over lots of folders is probably not a great idea
  • 14:30 - Flexing your muscles... Unnecessarily?
  • 15:26 - A word from our sponsor
  • 16:30 - Wait for the pain
  • 19:30 - Give yourself flexibility for the future, but don't implement it right away
  • 20:40 - How did we get to this point? A little history. Memory management wasn't always done for us
  • 27:00 - There are no hard and fast rules. Be an adult
  • 29:45 - The golden hour rule. Readme's are important
  • 37:45 - Back to what makes code readable
  • 41:00 - Testability. Using tests to learn about existing codebases
  • 45:00 - File driven development
  • 46:30 - Why refactor?
  • 51:15 - The good samaritan rule
  • 51:50 - Picks:

Episode 6: Should you build a Single Page Application?

In episode 6, Rocket Insights developers Brandon Aaskov, Scott O'Brien, Adam Fraser and Matt Merrill take a deep dive into Single Page Applications (SPA's): How did we end up with SPA's over Server Side Rendered (SSR) apps?  What problems do SPA's solve?  When should and shouldn't SPA's be created? They explore the idea that perhaps developers create SPA's because it's fun, but we forget about user experience.  The phrase "Postmodern Hellscape" is uttered.  They also explore a solution that might provide the best of SPA's and Server Side Rendering (spoiler alert: it's next.js/nuxt.js)!

Detailed Discussion Topics:

  • 0:00:00 - Intros & Background of SPA's - From AJAX to Electron.  Some personal history.
  • 0:05:40 - Flash and Flex were the original SPA's! How did we end up at SPA's from Server Side Rendering?
  • 0:11:15 - What problems do SPA's solve?  UI's are hard to make user-friendly.  CSS and HTML limit us compared to Native apps.
  • 0:20:15 - Are we prioritizing developer experience over user experience?
  • 0:22:00 - When should you use a SPA? Feel is important. Consumer facing vs. non-consumer facing applications.
  • 0:27:30 - When shouldn't you use a SPA?
  • 0:32:00 - Developers are spoiled! Resume Driven Development/Hype Driven Development.
  • 0:43:00 - Why are you building what you're building?
  • 0:48:00 - Routing is important. Should you be doing routing in the client at all?
  • 0:52:00 - Next.js / Nuxt.js - The best of both worlds?
  • 0:58:50 - A lightweight server might be the best answer.
  • 1:00:00 - The difference between replicating your database on the frontend and UI specific state on the client
  • 1:03:00 - Wrappin' it up.
  • 1:04:00 - Picks!

Episode 5: Your friend wants to code.

Happy new year! In Episode 5, host Brandon Aaskov, Rocket Insights founder Jesse Streb and Rocket software developers Dave OelfkeRichard Pressler and Ryan Serewicz discuss how to help people who are interested in software development figure out if it might be a good fit for them. Along the way, they dive into the topic of coding bootcamps as well as discuss their own beginnings with software development.

Detailed notes:

  • 0:00 - Intros. How to explain software development to people who don't know it.
  • 1:50 - Why does your friend want to code? Get on the emotional rollercoaster of coding.
  • 2:45 - Bootcamps - Who do they work for, who don't they work for?
  • 9:00 - Self paced course/book learning as an alternative to bootcamps.
  • 11:40 - What sparked your interest in coding?
    • 13:30 - The TI-83 calculator was an important milestone in programming.
    • 14:34 - I want to build R2D2!
  • 16:00 - Beginning with Devops and Amazon Web Services. Other tools that can help out beginners.
  • 18:45 - The ups and downs of frontend development.
  • 22:45 - What is the theme of success in people who do well in software development?
  • 25:00 - What happened to books!?
  • 26:15 - Middle out learning
  • 27:00 - Pickle a friend.com! Creative use of the <marquee> tag.
  • 28:00 - Picks!

Episode 4: You are not Facebook.

In episode 4, host Brandon Aaskov (Principal Software Developer, Rocket Insights) talks with Rocket Insights developers Matt DiDomenicoMatt Merrill, Dave Oelfke and Ian Pirro about over engineering systems.  We dive into anticipating problems that might not exist, the temptation to impress other engineers and missing the mark with end users.

As always, we end with picks for you to follow up on!

Topics:

  • 0:00 - Intros and YAGNI.
  • 2:00 - Don't optimize ... yet.
  • 3:00 - Being afraid of code judgement.
  • 4:10 - Thoughts on Heroku.
  • 5:20 - Think about the end user instead of impressing other developers.
  • 8:50 - When should you start thinking about scale as a developer?  What's the line between Dev and DevOps in scaling?
  • 11:00 - The trough of disillusionment with new apps and component libraries.
  • 13:00 - Know your customer. If you don't, ask questions.
  • 15:20 - Perfect is the enemy of done.
  • 17:45 - On premature code reuse...
  • 21:10 - Be Lazy! / Number of git repos as a proxy for complexity.
  • 23:15 - Timelines are good and force you to ship and get feedback.
  • 25:00 - Silly things engineers do in the name of good code.
  • 26:50 - Picks:

Episode 3: Redux and State Management

In episode 3, host Brandon Aaskov talks with Rocket Insights Software Developers Dave Oelfke and Ian Pirro about State Management on the UI.  They go deep on Redux, alternatives to Redux, and where these tools should and should not be used.  As always, we end with our picks (totally unrelated to State Management) for you to follow up on!

Topics:

  • 0:00 - Intros and a brief history of Redux.  Opinions abound!
    • Scott O'Brien - The Rocket Insights dev who (used to) troll Dan Abramov (creator of Redux) on Twitter
  • 2:30 - What is Redux?
  • 3:30 - GraphQL and Apollo as an alternative (or compliment) to Redux.
  • 5:00 - When does using Redux make sense?
  • 8:45 - Redux vs. MobX.
  • 14:15 - Angular 1.3 two way binding, oh no!
  • 16:45 - When should you reach for Redux? When are your components too complicated?
  • 17:30 - Should you use React's Context instead?
  • 18:03 - Will React Hooks do away with Redux?
    • Note: This episode was recorded when Hooks weren't yet available for GA release.
  • 25:14 - Back to Apollo - Subscriptions.
  • 26:45 - Hot takes! Don't use Redux. Use Mobx, or Vue and VueX instead.
  • 31:30 - Hot takes! Mutability is ok.
  • 34:45 - I just want to use things that work, not the newest fanciest thing. 
  • 37:15 - Redux on the server!?
  • 39:45 - You can write your app in jQuery and Redux (!?)
  • 40:45 - Picks!

Episode 2: Phone Screens and Interview Homework

In episode 2, host Brandon Aaskov (Principal Software Developer, Rocket Insights) talks with Rocket Insights software developers Brian Manning, Jon Principe  about the challenge of Developer phone screens and how we go about conducting them.  We then move on to discuss whether or not to use homework as part of the interview process.  As usual, we end with picks and then go into an extended discussion of Elixir and Phoenix!

Topics:

    • 0:00 - Intros
    • 1:00 - What we do for phone screens
    • 4:50 - What should you focus on in a phone screen?
    • 8:50 - Should we give out homework?  When?
    • 11:45 - (Justified) Resistance to homework
    • 15:20 - Updating existing codebases instead of new code
    • 18:30 - Picks!
    • 21:00 - The magic of Elixir and the return of Server Side Rendering!?

Episode 1: What it means to be a backend developer.

In our first episode, host Brandon Aaskov (Principal Software Developer, Rocket Insights) and Matt Merrill (Principal Software Developer, Rocket Insights) pontificate on what it means to be a backend developer in 2019.  We delve into what "Full Stack" means, why you need to wait to scale, and a lot about interviewing!  

Topics (including links to picks from the end):

    • 0:00 - Intros
    • 1:30  - What's the line between a front end and backend dev?  Bootstrapping applications is important.  Getting things going from scratch.
    • 5:45 -  Where backend dev blurs into devops.
    • 6:30 -  Hiring: Unicorns are hard to hire.  What questions to ask on a backend interview.
    • 10:15 - Walking into an existing backend codebase is hard
    • 11:45 - Level of developer experience
    • 12:30 - Ruby on Rails and choices already being made for you
    • 15:00 - The demise of the backend developer? (Firebase/Backend As A Service, headless CMS's and DevOps)
    • 20:00 - Start a backend cheaply and scale when you know more
    • 22:30 - The art of a good API
    • 25:00 - Back to backend interviews
    • 26:30 - Soft skills are important
    • 27:30 - Information hoarding and simplification of a backend
    • 28:45 - We're horrible at math
    • 29:15 - Picks:

Welcome to Ship It!

Welcome to Ship It! Hosted by Rocket Insights.