Feb 3 2022

Comparing Framework Trends

From time to time I need to compare one programming language against another, or see the popularity between multiple frameworks. When comparing between programming topics, I use Google Trends and Stack Overflow Insights to see overall trends.

In a related post, I covered the 2021 Developer Trends across multiple sources and surveys.


Dec 29 2021

2021 Developer Trends

It’s that time of year… when Stack Overflow puts out the results of their latest developer survey. Other companies have similar surveys, like JetBrains. Instead of surveying users and developers, GitHub analyzed repositories and commits. If interested to compare notes, check out the top 2021 developer languages, tools, and trends here…


Sep 12 2021

Elon Musk at Starbase

In the following video, Elon Musk talks about his Five Step Process for designing and manufacturing complex systems. In this video, Elon is giving a guided tour at the facilities in Starbase, Texas where SpaceX is building Starship, the largest reusable rocket ship. Elon is applying this Five Step Process to building Starship but he alludes to how they came to be from his lessons ramping up the manufacturing process at Tesla.

You can read Elon’s ideas on design and manufacturing here: Five Step Process


Sep 11 2021

Elon Musk on Design, Development, and Manufacturing

Recently, I went down a SpaceX rabbit hole where Elon Musk shared his thoughts on design, development, and manufacturing. Here are some choice insights from Elon as he talks about the SpaceX Starship, a fully re-useable rocket.

  • If a design is taking too long, the design is wrong and therefore the design needs to be modified to accelerate progress.
  • One of the most fundamental errors we’ve made to advance development is to stick to a design even when it is very complicate and to not strive to delete parts and processes.
  • Everyone is chief engineer, everyone must understand how all the systems work so that you don’t have subsystem optimization.
  • The product errors reflect the organizational errors. Whatever departments you have, that will be where your interfaces will be. Instead of questioning the constraints, one department will design to the constraints that the other department has given them without calling into question and saying those constraints are wrong.
  • You should actual take the approach that the constraints you are given are some degree wrong, the counterpoint would be that they’re perfect.
  • One of the biggest traps for smart engineers is optimizing a thing that shouldn’t exist.
  • We often try to answer the questions we are given, instead of questioning the premise of the question itself.
  • We can produce boosters and ships way easier than we can make the launch site.
  • It’s 10 to 100 times more effort to design the manufacturing system than the engine (a first of its kind).
  • The amount that goes into the design rounds into zero, relative to the amount of effort that goes into the manufacturing system.
  • All designs are wrong, it’s just a matter of how wrong. Everyone is wrong, no matter who you are, everyone is wrong some of the time.

In large part from his experience at Telsa, Elon is now using this Five Step Process at SpaceX.

Five Step Process

  • Make your requirements less dumb, your requirements are definitely dumb. It doesn’t matter who gave them to you. It’s particularly dangerous if a smart person gave you the requirements because you might not question them enough.
  • Try very hard to delete a part or process. If you are not occasionally adding things back in, you are not deleting enough.
  • Simplify or optimize. The reason this is the third step is that it is very common for a smart engineer to optimize a thing that should not exist.
  • Accelerate cycle time, you are moving too slowly but don’t go faster than until you’ve work on the other things first. If you are digging your grave don’t dig faster, stop digging your grave.
  • The final step is automate.

About the above process, Elon states the following.

  • I’ve personally made the mistake of going backwards on all five steps, multiple times.

Apr 18 2021

No Software, No Code

Salesforce started using the “No Software” motto and logo going back to the early 2000’s. Since then, over the last twenty years, we’ve seen technology adoption across every sector and industry but software development for the most part is still very time consuming. Fortunately there are a great number of new platforms that took the “No Software” mindset and turned it into the “No Code” movement, in the process enabling thousands of entrepreneurs that have turned their ideas into applications and startups. Just about every cloud platform has product aimed at the “No Code” space. Amazon Web Services launched AWS Honeycode in 2020, Google Cloud has had multiple products in this space, and Microsoft Office is pushing Power Apps. In addition to the large cloud providers there are a large number of internet startups that have fueled the “No Code” movement, most notably Airtable and Zapier.

The “No Code” movement is not necessarily new, as already mentioned Salesforce had the idea of “No Software” back in the early 2000’s and going back further into the 1990’s there have been platforms and products that provided GUI builders or form designers. The reason that the “No Code” has become a movement now is that internet access is available in most parts of the world, there is a whole generation that grew up as internet natives, software as a service with trial or no cost tiers, and the explosion of data.

So what are you waiting for? I’m sure you have a great idea, or maybe just a specific need for an application that doesn’t yet exist. You can get started with any of the new breed of “No Code” platforms to making that idea into a reality.


Mar 10 2020

Standard Log Format

There isn’t a standard log format that spans all applications. There is a Common Log Format used by web servers, and there are logging frameworks that helps in the mechanics of producing logs. Unfortunately when it comes to composing the actual message that will be written out to log files the developer is left to his own devices.

Here are some best practices that I’ve found useful when adding logs to an application I’ve working on.

  • Each log event should be written to a single line.
  • Each log event should start with an event timestamp, preferably in UTC.
  • Include the log level in the log line.
  • Add a short description about the event that is being logged.
  • Included all pertinent data about the event in name=”value” pairs.
  • Quote all data values.
  • Use and log a transaction id as requests move through your applications.
  • Be consistent about field names used across applications.
  • Add a prefix to the field name to add context, for example for input or output data.
  • Mask out passwords, credit cards, and any other Personal Customer Information (PCI) data.
  • The log file name should include the application identifier and hostname.
  • Log files should be rotated out based on time and/or size.