Understanding Begins with Expressive Names

In 2018, I joined a large project halfway through its development. The original engineers had moved on leaving behind convoluted and undocumented code. Working with this type of code is challenging because you can’t differentiate the plumbing from the business domain. This makes debugging difficult and changes unpredictable because you don’t know the impact. It’s… Continue reading Understanding Begins with Expressive Names

Codifying the Secret Sauce

Each application has its secret sauce, it’s reason for existing. Codifying the secret sauce is instrumental in writing maintainable and successful applications. Wait. What is codifying? Patience my friend, we’ll get there. First let’s hypothesize: You’ve just been promoted to Lead Software Engineer (Congratulations!). Your CEO’s first task is creating a new product for the… Continue reading Codifying the Secret Sauce

Garbage Collection Types in .Net Core

Memory management in modern languages is often an afterthought. For all intents and purposes, we write software without nary a thought about memory. This serves us well but there are always exceptions… In California, there are extensive financial reporting requirements for Local Education Agencies (LEA), an LEA can be a county, a district, a charter… Continue reading Garbage Collection Types in .Net Core