SOLID PHP - Uncle Bob

Using Laravel to stay SOLID

When I was searching for what general principles that I can follow in my code, I discovered the concept of SOLID design. So why would we want to follow such principles in our development process? The answer is simple, it is always the dream of every developer that we want to write code that is well-structured, flexible, easy to maintain and extendable. So using SOLID’s set of rules would guide us on how to achieve that in Object Oriented Programming.

Handling API Calls Like a Boss in Flutter

Making API calls doesn't have to be hard... but it does have to be done right!

Flutter is an open-source language developed by Google to build cross-platform apps that share a single codebase. As IEL continues to grow, being able to connect our brokers and customers to their data is huge. And when dealing with large amounts of data, accessing it can be a pain to do properly. Although our development of apps using the Flutter framework is ongoing, we believe we have settled on a strong, well built API interface design that is not only clean, but efficient as well.

Cucumber, BDD, and Automated Testing

Part One: Background, Structure, Theory

Behavior Driven Development (BDD) is a software development process, which has its roots in Test Driven Development, and Agile processes in general. When done correctly, BDD is intended to ease collaboration between developers, QA, and less technical business stakeholders. This is achieved by describing software features in terms of their actual behavior, using natural language sentences, rather than technical implementation details, or specifications. Although different than the originally intended use, BDD has become very popular in software test automation practices and has been used to help structure the test automation project for iTMS (our in-house TMS system for loads)

Postgres 12 CTE Enhancements

The Good/Automatic, The Bad/Manual, The Ugly/Refactoring

When we started work on our custom TMS in 2015, we looked around at the landscape for a database that met the following requirements: Fast and easy dev environment setup. This almost instantly ruled out Microsoft SQL Server at the time. There was no good way to programatically (read Docker/Vagrant) stand up a replica/dev database, and their licensing was beyond our budget at the time. Support for Common Table Expressions (CTEs).

Using R for Machine Learning

A walkthrough showing how to use the 'caret' package in R to perform Machine Learning tasks

(as of 08-JAN-2020) Before starting with this blog, I would like to direct you to a post made by one of my peers, Evan Horsley. He does a great job of introducing R and helping people get started with the programming language. You can find it here. This blog post will show you how to install and use the ‘caret’ package in R. It will also cover how to train and build models using Machine Learning!

Getting Started with R and R Studio

A walkthrough of beginning with the R programming language

(as of 16-DEC-2019) R is an open source language and environment for statistical computing and graphics. Here at IEL, we deal with very large sets of data every single day. R is a powerful programming language for handling this data and breaking it down in new ways. Many people prefer Python and its packages like Pandas to deal with these large sets of data. There are a few drawbacks to using Python to handle this data, however, including the lack of a GUI and a worse off ecosystem (fewer packages, smaller community, etc), just to name a few.

Setting Up WSL2

A full guide to Docker in Linux via WSL2

(as of 11-DEC-2019) Here at IEL, we are absolutely loving WSL2. It has really bridged the gap in getting our Windows devs setup with a primarily Linux-based tech stack. There are a lot of different materials out there on setting up WSL2, but most point to content on different sites. This guide aims to be a one-stop shop for getting WSL2 setup on Windows. It’s going to take a little bit of setup to get there though.