New Year Reading List

An Introduction to DataFrame

The cool in-memory schema-on-read DataFrame that is widely used in Python and other machine learning platform (Apache Spark, Databricks, etc) is coming to .NET. It does remind me of `DataSet` and `DataReader`.

Memory-wise apps with C# .NET

Very nice post by Ali, compiling from different sources and lay out how to write memory-efficient C# app.

20 Predictions about Software Development trends in 2020

An interesting perspective about what’s coming in 2020. From a quick glance, it looks like reasonable predictions.

Top 7 Modern programming languages to learn now

Rust is on the top, followed by Go. Two modern language which popularity has been gaining a lot of momentum lately. This post explains the basic of modern programming language and benefits of languages like Rust and Go.

Atomic Design Methodology

Online book by Brad Frost to explain the concept of atomic design. It’s a concept that mimic biological molecules and construct UI elements in a modular way for re-usability and maintainability.

More Reading List

100 new requests in Node.js while still serving the first one

This is an interesting look into how Node.js works under the hood when serving multiple requests. It’s different than how Apache, Tomcat or IIS serve the request from users. Pretty interesting.

Promises and async/await relationship

I always wonder how they actually relate to each other. This short post explains it concisely. They are also interchangeable.

Best Practices for REST API Error Handling

I’d categorize this more of “basic” practices. However, just because it’s basic, doesn’t mean you can ignore them. In fact, they are very important in building APIs.

How to handle exceptions in asynchronous code in C#

The main (and probably the only) takeaway from this post is that exception thrown in an `async` method that returns a `Task` object is wrapped in an instance of `AggregateExpcetion` which you would have to access with `tasks.Exception` instance. Check out the code example in the post.

Reduce Change Detection Cycles with Event Coalescing in Angular

Event bubbling in Angular app can be problematic when it triggers change detection. This post shows you how to coalesce them.

Monday Reading List

Blazor Server in .NET Core 3.0 scenarios and performance

Have heard about Blazor? If not, definitely check this post out. For those who already use Blazor, you can skip. Unless you also want to understand the inner working of Blazor.

Everything you need to know about resource tagging in Azure

Azure has feature to tag your resources for some times now. But, how do you use it the right way? This post will explain.

Javascript – Does taking a callback make a function asynchronous?

Interesting question and could be one of those questions as well. The answer is: it depends. Do read more to understand the details.

The Mediator Pattern In .NET Core – Part 1 – What’s A Mediator?

I came across Mediator pattern and has since been intrigue by it. This post will explain what’s it and why do you need it.

How C# 8 Helps Software Quality

The essence of writing codes is not _just_ for computer to interpret and run it. Equally, if not more, importantly is for human to understand and maintain it. C# 8 features will help to do just this by increasing the quality.

A Reading List

Creating PWA Using Angular 7 – Step-by-Step Guide

A rather long and detailed post about Angular and PWA (Progressive Web App), but worth the read, especially if you haven’t heard about PWA. It covers the 101 stuff and goes on to creating PWA using Angular.

How to use Azure Bastion to connect securely to your Azure VMs

Great new offering from Azure. If you always RDP to your VM in Azure, or use a _’jump box’_, you will have a new, better, more secure way to RDP now. I really like the name too!

Lessons from Design School for Software Engineers

They are great lessons software engineers can adopt to become better. Not a technical post, but related to technical. It’s more of philosophical-type post, which is always good to know.

The Battle of C# to JSON Serializers in .NET Core 3

There’s a new kid in town, it’s called `System.Text.Json`. Michael goes over how the comparison between this new .NET Core 3 feature and other JSON libraries, including the infamous Json.NET. And yes, it cover performance test as well.

How to resolve .NET reference and NuGet package version conflicts

Have you ever got one of those annoying, `Could not load file or assembly or one of its dependencies` error when running .NET locally? Not only Michael explains why, but he also tell you how to resolve it. Mystery solved.

Weekend Reading List

10 commands you don’t want to be without in .Net Core

With the rise of .NET Core, it’s inevitable to learn about `dotnet` commands. `dotnet` commands are important just like how one would use `npm` when developing with NodeJS or Angular project. This is 10 most common `dotnet` commands.

QA Testers: Coding Is Your Must-Have Professional Skill

It has become more of a requirement nowadays that a QA tester needs to know how to code. It’s no longer clicking the pages or browsing mobile app. Coding skill is even more important than ever before. However, one thing still holds true: knowing how to think is still the key.

Safe .NET Feature Flags with FeatureToggle

Matt Eland discuss his open source library for feature flagging, called FeatureToggle. If you are looking for a feature flag library and haven’t used one, definitely give this one a look.

Action-Oriented C#

If you, like Matt Eland, have hit plateau on your C# skill because you’re so awesome, it’s time to take it to next level. This is Matt’s approach to incorporate aspect of functional programming to go to next level.

Differences between gRPC and RSocket

This post probably going to take you to lower level where you feel a lil bit uncomfortable. It’s informative read nonetheless. In short, they meant to solve different problem.

Wednesday Reading List

How to identify web app changes to triage and root cause live site issues

I think every developer has spent countless time troubleshooting what goes wrong with their production system. “It was working fine yesterday!”. With Azure App Services, you can now identify changes that happen in your web app. Checkout the Azure Friday video!

Why Continuous Deployment matters to business

Most people would do continuous deployment for the sake of doing it. It’s still good thing to do in my opinion. But why do we actually need continuous deployment have real business case for it. Dan Quine explains in his post. It’s good for developer and business.

Safer Code with C# 8 Non-Null Reference Types

This one is very educational read for those who care about C# 8 feature. However, considered yourself warned, it’s probably going to be a lil bit confusing. The feature is really a compiler-feature rather than language-feature. Plus, it’s not to be confused with the existing nullable value types.

C# — Parallel Programming: Producer/Consumer Pattern

I thought Saurabh did a really good job in this post unpacking parallel programmings with examples that he did in performance tests.

Task Parallel Library: High Performance .Net Code

A brief explanation on parallel processing (TPL, or Task Parallel Library) in .Net. There are `Tasks` and `Parallel` classes. TPL is a big topic and the post only covers the gist of it, it’s not meant to be a comprehensive discussion on TPL.

Sunday Reading List

Quickstart: Deploy Linux containers to Service Fabric

Azure Kubernetes Service is really cool to deploy your container to. However, what most people don’t know is, you can deploy the same container to Service Fabric. The benefit? You don’t have VMs to manage in Service Fabric.

Optimize the performance of Azure Cosmos DB by using partitioning and indexing strategies

If you’re using Azure Cosmos DB, you probably understand how partitioning strategy could directly affect the query performance of your application. This learning module explains in great details how it actually works.

GitLab and The Forrester Wave™: Cloud-Native Continuous Integration Tools, Q3 2019

The Q3 2019 Forrester Wave’s Cloud-native continuous integrations tools report. Hint: Google, Microsoft, AWS CircleCI and GitLab are among the leaders.

Single Page Applications and ASP.NET Core 3.0

If you’re thinking about building a single page application with ASP.NET Core, definitely check this post. There are 3 different options you can go about building SPA using ASP.NET Core and they are discussed in details.

Effective Dictionary Usage(C#): Avoid If Statements

I don’t know how I feel about this post. If you’re going to read it, read it with a grain of salt. I like it because Muhammed presents a different approach to `if` statement, sounds to me like an implementation of strategy pattern. Read at your own risk. 🙂

Sunday Reading List

gRPC + ASP.NET Core as a Migration Path for WCFs in .NET Core

It was fun while it lasts, now with .NET Core development ramping up, WCF and its services library have slowly become technical debt. This articles a guideline to migrate to ASP.NET Web API and gRPC..

System memory health check for ASP.NET Core

If you’re already deploying your application to Azure App Services, you’re familiar with memory health check that comes with it for free. But, let’s say for some reason you need to deploy to other services, like containers or VMs, this article will walk through how to implement memory health check in ASP.NET Core application.

Logging in C# .NET Modern-day Practices: The Complete Guide

A truly complete and comprehensive guide to logging in C# / .NET. Michael walks us through from target types, structured logging, frameworks and best practices around logging. The three frameworks discussed are: Serilog, NLog and log4net. I’m glad I’m not the only one thinking we have too many loggin options in .NET!

Developers: This cute 8-bit RPG game wants to teach you new coding skills

What’s the best way to teach developer your API? Create a game, of course! Twilio does just that. It’s pretty good game too!

What exactly is Kubernetes?

For Container / Kubernetes beginner, this is a really good article to get your started. It covers the basic of Kubernetes, all different parts of Kubernetes, what Kubernetes is NOT and how it actually works.

Reading List

How Microservices Architecture Impacted the Culture of Software Development

Most people do microservice because it’s a new buzzword! But, there’s actually reason behind it and it will improve your team dynamic.

Why I love Trunk Based Development (or pushing straight to master)

Mattia made an argument why it makes sense for the whole team to push straight to `master`. The key is having the right people in the team. He has good points, most I agree, some I disagree with. What’s your take?

Async Await C#

Basic yet comprehensive article on `async` `await` in C#. Worth reading for beginners and expert alike if you want to brush up on `async` `await`.

You don’t need ordered delivery blog posts in general are really good, high quality. This _particular_ post, however, gives a different perspective of how messaging queues are delivered. Often time we think it needs to be ordered. Well, maybe we should think again.

Messaging Practices

I never thought there’s such things as good practices in messaging queue. After reading this, I think it makes sense to have one. When you have to deliver large number of events, good practices make big differences.

My Sunday Reading List

Declarative vs Imperative

This is probably your interview questions, even though not many company I came across has asked these. Declarative programming vs imperative programming, is basically, in its very simple form, like functional programming vs object-oriented programming.

6 Key Concepts in Andrew Ng’s “Machine Learning Yearning”

If you want to learn Machine Learning, Andrew Ng is the man you need to listen to. There’s so much more to cover beyond this article, but it lays out 6 basic concepts in Machine Learning.

Using the Microsoft Graph API with PowerShell

A detail walkthrough on how to query Microsoft Graph API, which is a service to manage all most aspects of Azure AD and Office 365, with Powershell. From setting up secrets, certificate, application permission to access token, all covered here.

Why our team cancelled our move to microservices

Sometime you have to know when to back out as in this story of Steven’s team backing out from implementing microservices. What’s even more awesome is, he documented the lesson-learned from his team on what to consider when implementing microservices.

How you can build a Serverless API using GraphQL .Net Core, C# and VS Code

A step-by-step walkthrough on how to build GraphQL-based API with .Net Core, C# and Azure Functions.