Articles
Notes on building software — APIs, C#, SQL, AWS, and problem solving.
-
Monorepo vs Polyrepo codebases
Discover reasons for and/or against monorepos and polyrepos. Understand that each with each approach there are tradeoffs that you need to consider.
-
Software Engineering Abstraction
What are abstractions? why even care? how to utilise them in software engineering.
-
Why Write Unit Tests
Discover why unit tests are important in the world of software engineering. Various reasons are presented towards adopting unit tests and how to think of them in your code.
-
Why Breakdown Problems?
Learn what makes breakdown of software engineering problems useful and required. It influences how we design, develop and deliver software.
-
Problem Breakdown: Enquiry Support System
Breaking down problems is a great practice to solving problems in general. This article breaks down the expansion of a simple project for use by internal stakeholders exploring what considerations one needs to think about and address.
-
Problem Breakdown: Contact Us page
Breaking down problems is a great practice to solving problems in general. The more we breakdown the more clear we're about the engineering requirements to achieve a solution.
-
Book Recommendation: A Philosophy Of Software Design
A lot goes on when designing good software, things like complexity, interfacability and documentation are all considerations to think about and compromise on when planning and writing software. This articles presents my takeaways of the book that I think are relevant for a lot of engineers.
-
Thoughts for Pull Requests Reviewers
Here is what I think when reviewing code. This covers aspects from how to review, how to comment and how to influence keeping a healthy PR review cycle.
-
Thoughts for Pull Requests Authors
Here's some thoughts on how to structure PRs and how to communicate your intent of code change clearly.
-
Reducing unnecessary React re-renders
Have you wondered how to gain quick wins reducing React re-renders that can make your pages less laggy allowing for more user engagement? this article covers ways to do that.
-
How to Approach Debugging Bugs
Debugging can be cumbersome sometimes, here is a quick list of steps to follow when solving bugs.
-
Dealing with deletes
Do you ever soft delete data? Do you always hard delete it? Why? Explore when and why you might want to hard/soft delete the piece of data in a transactional data store.
-
Creating your own cloud with Retool and AWS S3
Creating your own cloud has never been easier, now you can use S3 and Retool to create one.
-
Open Graph: Preview Web Pages
Did you ever wonder how posting a link on your social media app got a preview card rendered? not to worry, he will discuss how you do just that, it is an easy thing to tackle.
-
Practical Git: Manipulating branches
Do you mess up sometimes? Not to worry, Git got you covered, whether you committed in the wrong branch or need to delete something for the time being from Production.
-
Practical Git: Branches
All Git is made to help you. Getting to know Git is really important, it eliminates nightmares of copying code around while it does it for you so seamlessly.
-
Dotfiles: an overview and application of .bashrc
Programmers deal with complex systems, people start to lose track of which commands they or what environment variables were/are configured. A .bashrc file holds Bash configurations and in this tutorial will see how dotfiles as a concept can be very helpful for customization and configuration.
-
Writing a Denial of Service application: using React
The best way to learn how to defend against an attack is to know how to attack. Here will be writing a DOS attacker on the browser using React. Use it at your own risk.
-
Messages and Events: a look into Event Driven Development
Big distributed systems run on events. YouTube for example, the fact you could stream videos and have some viewers watching seconds behind, others at the start and the rest live with you the streamer is what streams do. Here will be demonstrating the evolution from messaging queues to event streams using Apache Kafka and C#.
-
Topic Books and Reviews Aggregator: using React and ASP.NET Core consuming Google APIs
More often than not consuming public APIs results in plenty of help and time saving. Here I am using the YouTube Data and Google Books APIs to fetch books on a topic I search using the frontend in React along with their book reviews on YouTube. It is a follow up to an article I wrote but here is the human friendly edition.
-
Writing a Minutes to Read Counter: using HTML and Javascript
Ever wondered how `x mins to read work` is done, don't worry. In this article will learn how to code a script that does that in Javascript and discuss some often overlooked things regarding this.
-
4 More C# Features you didn't know about
There are plenty of features pumping out each new version. This article will discover how operator overloading to implicit constructor conversions to discards and top level programs are done.
-
Topic Books and Reviews Aggregator: using C# and Google's Books and YouTube APIs
Riding through API calls to an end product is a really interesting process. In this article will delve into creating a top 10 books aggregator on books along with their YouTube reviews on a given topic all into a JSON file. Will be using Google Books API and YouTube API in C# to accomplish the ride.
-
Current Weather Feeding Messenger: Using AWS Lambda and Node.js
In this article will create your friendly SMS weather messenger. Using AWS EventBridge to invoke AWS Lambda then pushing to AWS SNS all the way to your phone number.
-
REST and GRAPHQL
Rest and GraphQL
-
Implementing a Dictionary API using real-world best practices using C#
Today I am seeking the dictionary to consume an API I came across. Using .NET 5 and C#, will design an abstraction layer on top of consuming the API. Here the code can be followed If you are using other statically typed languages. Will learn how to abstract the response and how to design that abstraction.
-
C# and .NET: 4 features you can find useful
Knowing C# is not just the basic if/else for/while statements but going into what defines C# as a language as well as it's part of .NET. Starting from viewing internal members from elsewhere to some Enum features and ending in null coalescing operators which reduce the amount of code we need.
-
Uploading and Downloading files in HTML on an ASP.Net Server
HTTP is such a powerful protocol that it powers the web, all the sites you know and love. This article will show an overview of uploading and downloading a file and will not delve into details on anything. It is just an illustration of the process.
-
Amazon DynamoDB: A Crash Course
A key-value pair and document store which is very helpful in a lot of NoSQL applications.
-
Infrastructure as Code (IaC): Resource Provisioning with AWS Cloudformation
Such an extremely important topic in today's cloud economy. Infrastructure as Code eliminates a ton of manual labor when it comes to provisioning environments.
-
C# Extension methods
More often that not you end up wanting to extend a code you have no control over, maybe from another library. Extension methods can have that made possible.
-
Writing A Node.js tool to bookkeep my software engineering job applications
Applying for software engineering jobs needs some bookkeeping and that bookkeeping takes time over a lot of repeatable mouse clicking hence I decided to make a tool to spare me some more time utilized better else where.
-
SQL: Indexes
Software is simply the use of the same of the same things over and over again for the better or worse. This article covers some of the powerful constructs that are always of use in SQL.
-
SQL: From stored procedures to triggers
Software is simply the use of the same of the same things over and over again for the better or worse. This article covers some of the powerful constructs that are always of use in SQL.
-
SQL: Loops through Constraints ending up in Views
Software is simply the use of the same of the same things over and over again for the better or worse. This article covers some of the powerful constructs that are always of use in SQL.
-
The template design pattern
Design patterns are not how to implement things for the better. They are a concept of how to structure for the better. This article will cover the template design pattern and implement it using C# along with a real life scenario at the end.
-
SQL: Functions and Conditionals
As SQL is a declarative language when you start learning it, when you advance you notice you need the use of a vocabulary that allows more freedom. The benefits of functions are huge in programming. Along with conditionals, all types of programs can be made.
-
SQL: Primary keys through to foreign ones then joining tables
This lesson will delve into the concept of primary and foreign keys then ending up joining them to utilize the full power of relationships in an RDBMS engine that is utilized by most popular websites.
-
SQL: The absolute basics of the language
It has been alive since the 1970s. It is used all throughout the software spectrum from banks to social media to small blogs. It is a standard that is adopted by relational database management systems (RDBMS).
-
Checking and notifiying subscribers of unused EIPs using Lambda and Node.js
Often when experimenting along with AWS, you spin up EC2 instances that you may use. More often than not restarting those instances results in IP changes, so you attach an Elastic IP address which is an IPv4. Thus is a scarce resource and for this reason, if not used, will result in an hourly charge. I made a small job to notify of unused EIPs daily
-
The process you must follow learning to program
Here is a description of how a beginner programmer must learn how to program.