---
title: Michael Washburn Jr's Blog | Engineering Best Practices
description: Engineering Best Practices |
---

Filter by tag

All Tutorials React Engineering Best Practices JavaScript Python Django Product Ownership Web Apps Redux Research

# Posts about Engineering Best Practices

[![picture showing the number 5](https://michaelwashburnjr.com/hs-fs/hubfs/pexels-miguel-a%CC%81-padrin%CC%83a%CC%81n-1010973.jpg?height=370&name=pexels-miguel-a%CC%81-padrin%CC%83a%CC%81n-1010973.jpg) 

](https://michaelwashburnjr.com/blog/the-5-types-of-tech-debt)

[Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices), [Product Ownership](https://michaelwashburnjr.com/blog/tag/product-ownership)

 May 4, 2021

### [The 5 Types of Tech Debt](https://michaelwashburnjr.com/blog/the-5-types-of-tech-debt)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

In my recent post, [*What is Tech Debt?*](https://michaelwashburnjr.com/blog/what-is-tech-debt) I try to break down what "Tech Debt" means in modern software development. To me, tech debt is simply any work that seeks to benefit the long-term health of your software product but has been deferred until a later date.

[Read More](https://michaelwashburnjr.com/blog/the-5-types-of-tech-debt)

[![Construction workers building a foundation.](https://michaelwashburnjr.com/hs-fs/hubfs/Screen%20Shot%202021-04-19%20at%206.44.14%20PM.png?height=370&name=Screen%20Shot%202021-04-19%20at%206.44.14%20PM.png) 

](https://michaelwashburnjr.com/blog/what-is-tech-debt)

[Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices), [Product Ownership](https://michaelwashburnjr.com/blog/tag/product-ownership)

 April 26, 2021

### [What is Tech Debt?](https://michaelwashburnjr.com/blog/what-is-tech-debt)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

Tech debt is a word that gets thrown around a lot in modern software development. If you're a software engineer, you might have a pretty good idea already about what tech debt really means. If you're not an engineer, you might just think it's a word that we tend to use when we want to be *really *convincing that a set of tasks should get done. 

[Read More](https://michaelwashburnjr.com/blog/what-is-tech-debt)

[![outstretched hand with water in the background, Narrowing Your Focus: The Key to Being a Successful Developer](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/pexels-photo-296282.jpeg?height=370&name=pexels-photo-296282.jpeg) 

](https://michaelwashburnjr.com/blog/narrowing-your-focus-successful-developer)

[Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices)

 November 7, 2017

### [Narrowing Your Focus: The Key to Being a Successful Developer?](https://michaelwashburnjr.com/blog/narrowing-your-focus-successful-developer)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

I’ve recently come to the realization that I can’t work towards all my goals and achieve the progress that I need. When you’re actively trying to make progress on too many goals, it makes it harder to get to your milestones. You’re spread too thin. When you can’t complete milestones, you quickly lose the drive to work on anything. Before long, you’ll give up. **But it doesn’t have to be that way.**

[Read More](https://michaelwashburnjr.com/blog/narrowing-your-focus-successful-developer)

[![Laptop and notebook on a table, Boost Productivity with the Right Dev Environment](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/dev-environment.jpeg?height=370&name=dev-environment.jpeg) 

](https://michaelwashburnjr.com/blog/productive-dev-environment)

[Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices)

 October 17, 2017

### [Boost Productivity with the Right Dev Environment](https://michaelwashburnjr.com/blog/productive-dev-environment)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

 Software Development can be hard on its own, but when your own development environment doesn’t work for you it makes it even harder.

[Read More](https://michaelwashburnjr.com/blog/productive-dev-environment)

[![](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/python.jpg?height=370&name=python.jpg) 

](https://michaelwashburnjr.com/blog/5-tips-for-writing-better-python)

[Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices), [Python](https://michaelwashburnjr.com/blog/tag/python)

 September 26, 2017

### [5 Tips for Writing Better Python](https://michaelwashburnjr.com/blog/5-tips-for-writing-better-python)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

I’ve been writing Python for some time now, and when I reflect on some of the older code I’ve written… I sometimes cringe. For example, when I was just starting out, I wrote this Sudoku game in python (available on GitHub [here](https://github.com/MichaelWashburnJr/PythonSudoku)). I thought that this was one of my better pieces of work at the time. It turns out I can’t even clone and run this because I didn’t add a setup.py or requirements.txt file, a mistake I would never make today!

[Read More](https://michaelwashburnjr.com/blog/5-tips-for-writing-better-python)

[![Why You Shouldn’t Import Functions and Classes Directly in Python](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/capture-2.jpg?height=370&name=capture-2.jpg) 

](https://michaelwashburnjr.com/blog/shouldnt-import-functions-classes-directly-python)

[Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices), [Python](https://michaelwashburnjr.com/blog/tag/python), [Django](https://michaelwashburnjr.com/blog/tag/django)

 September 23, 2017

### [Why You Shouldn’t Import Functions and Classes Directly in Python](https://michaelwashburnjr.com/blog/shouldnt-import-functions-classes-directly-python)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

Today I was doing some programming, trying to finish up an old project that was 80% done, but I never finished. The project is an API for sharing beer ingredient data, being the avid homebrewer that I am. I was in the middle of writing some pretty simple authentication logic, when I found a weird bug in my code. The code, featured below, was pretty straightforward, or so I thought.

[Read More](https://michaelwashburnjr.com/blog/shouldnt-import-functions-classes-directly-python)

[![Man drawing on a white board](https://michaelwashburnjr.com/hs-fs/hubfs/Imported_Blog_Media/startup-photos.jpg?height=370&name=startup-photos.jpg) 

](https://michaelwashburnjr.com/blog/4-reasons-web-app-separated-frontend-backend)

[Web Apps](https://michaelwashburnjr.com/blog/tag/web-apps), [Engineering Best Practices](https://michaelwashburnjr.com/blog/tag/engineering-best-practices)

 August 1, 2017

### [4 Reasons to Separate Your Web App’s UI and API](https://michaelwashburnjr.com/blog/4-reasons-web-app-separated-frontend-backend)

![Picture of https://4674423.fs1.hubspotusercontent-na1.net/hubfs/4674423/AuthorAvatar.jpg](https://michaelwashburnjr.com/hs-fs/hubfs/AuthorAvatar.jpg?width=30&name=AuthorAvatar.jpg) [Michael Washburn Jr

](https://michaelwashburnjr.com/blog/author/michael-washburn-jr)

Unless your web application is 100% client-side code, you should split it into a backend API and a frontend client. Too often people fall into the trap of believing that because they need a “quick” turnaround they shouldn’t spend the time developing a separate API and client-side app, or they believe that their application is small enough that they can get by without doing this.

[Read More](https://michaelwashburnjr.com/blog/4-reasons-web-app-separated-frontend-backend)