Keep up with software engineering best practices and tradeoffs from tryexceptpass.org and around the web.
Episode 14 - Practical Data Structures: Ordered Indexes vs Hash Tables
Hash tables are data structures that map keys into values. Used in Python’s dicts, Go’s maps, Java’s HashMaps, and other places. However in databases, the default structure is almost always an ordered index, typically a B-Tree. Hash tables use a fast and repeatable hash function to assign each key a unique place in memory to store its values (sometimes called buckets). The load factor is the number of entries occupied in the table, divided by the number of unique storage buckets.
Episode 13 - Practicality of the Microservices Obsession
As an expanding industry trend, architecting solutions with microservices is yet another swing of the proverbial hammer that intends to solve every possible software problem.
But just like everything else in the real world, the reality of implementing this type of solution involves costs and trade-offs that you should be aware of. We explore them in this episode.
What are the benefits? Modularity. Scalability. High availability. Deployments with no downtime.
Episode 12 - Unleashing Web Traffic with Content Delivery Networks
Site performance is an important part of improving your search rankings, discoverability, and traffic. Especially when so much of the web is now viewed through mobile devices with limited bandwidth or high latency.
Content Deliver Networks or CDNs, work by caching static assets across servers geographically distributed all over the world. They reduce load times, improve performance, and minimize bandwidth and infrastructure costs.
Let’s dive into the details.
Episode 11 - Studies in Search Engine Optimization: 13 Essential Practices for Developers (Part 2 of 2)
Finishing up on our previous episode on search engine optimization, this time we discuss specific things that you can do as a developer building a website to improve your rankings and discoverability.
Episode 10 - Studies in Search Engine Optimization And Why Developers Should Care (Part 1 of 2)
Most developers are aware of the term “Search Engine Optimization”, and like me, have a vague understanding of what it actually means. For a long time I thought that this was more about the content of a website than how that site was created or built. In other words, I saw it as an issue for the folks over in the marketing or sales organizations, certainly not for us engineers to worry about.
It turns out that the design and architecture of the technologies implementing a website have a large impact in it’s discoverability. I didn’t understand this until about a year or two ago when I needed to perform some optimizations for tryexceptpass.
I met up with Michael Kennedy from the Talk Python To Me podcast, and together we recorded our musings about SEO and present them to you in this two-part series.
Episode 9 - The Fascinating World of Intellectual Property Law and How it Applies to Software
Intellectual Property Law was created to foster innovation and competition.
The concept has actually been around for centuries.
Today, IP Law provides a way to protect coding innovations that may be novel or unique.
It refers to ownership of intangible things, giving people and businesses property rights to the intellectual goods and innovation they create, usually for a limited time.
You can own a specific brand logo, a unique way of solving a software problem or even a composition.
There are four types of intellectual property:
Copyrights - for anything dubbed as “art” like paintings, music, etc.
Patents - for inventions, meant to purposely enable a monopoly on their production.
Trademarks - these are brand-related like logos, catchphrases and others that help identify a company.
Trade Secrets - concepts that give a business some competitive edge over another.