A frugal programmer’s guide to leveraging AWS APIs without breaking your bank account

Image for post
Image for post
Photo by Omid Armin on Unsplash

AWS cloud has become pretty much a norm, with over one million businesses around the world building applications on it. In your career, at some point, you have or will have to deploy something within this ecosystem: It’s inevitable, which shows how far the reach of AWS is.

One of the biggest challenges while trying to build in the cloud is the sheer number of services available at your disposal and the number of moving parts. Gone are the days when building applications was simple through a UI: some business logic, a database, and a domain, and you’re good to go. …

How to set up your GitHub profile so that you stand out

Image for post
Image for post
source Github.com

Disclaimer: This is a highly opinionated piece backed up by my and other people’s personal experience sourcing programmer talent.

I’ve conducted hundreds of interviews over a span of 12 months. I’ve browsed and evaluated hundreds of potential candidate resumes over 5 years — all while actively leading a team of front and back end developers.

So, I think it’s fair to say, I’ve seen quite a lot of talent acquisition action. This probably makes me qualified to state some of the experiences which I am about to present on why your GitHub profile matters.

As many millennials and Gen Z are getting to understand, finding a job isn’t the most straightforward feat to accomplish. We may feel as though we’re simply pawns in an older generation’s game of chess, but what we must learn is that it’s truly about how you play the game by marketing yourself. …

A guide on how to build a distributed pub-sub architecture without a broker

Image for post
Image for post
Photo by Anastasia Dulgier on Unsplash

A common solution for facilitating communication between disparate application services is to use a message queue. Most traditional message queues act as hubs to facilitate the exchange of messages over the network between distributed software components. This is usually done through applications via a centralized queue using an API.

Recently I started exploring a ZeroMQ (aka ØMQ, 0MQ, or zmq) an opinionated, lightweight library that bills itself as a high-performance, asynchronous messaging library that goes without a middleware broker, aimed for use in distributed or concurrent applications.

When you think of communication between microservices or services, for some of us, the first thing that comes to mind is a REST API with service discovery or message brokers that facilitate intercommunication between services. …

Tips and tricks to help you build scalable distributed apps with Celery

Image for post
Image for post
Photo by fabio on Unsplash

Building standalone systems that are resilient is challenging enough. Add distribution and suddenly you have lots more moving parts to worry about. Naturally, the more moving parts in a piece of software the more complexity and time it takes to maintain — Python Celery is no exception.

In the first installment of this series of Celery articles, we looked at getting started with Celery using standalone python and integrating it into your Django web application projects.

In this installment, we’ll be looking at the best practices you should follow to make your Celery enabled applications more resilient, better performing, and to improve monitoring and observability. …

Distribute your Python tasks with Celery

Image for post
Image for post
Image by pelambung from Pixabay

As data has increased demand for faster ways to compute, processing large amounts of data has become a necessity. If you’ve spent any amount of time programming, you’ll have realized that synchronous blocking ways of programming can only get you so far. Eventually, you hit a wall and need to pivot to a distributed model to expand your computations performance.

When it comes to distributed computing and asynchronous work in Python, the predominate framework — a must-know in your toolbox — is Celery.

Celery is a package that implements the message queue model to distributed computation across one or more nodes leveraging the Advanced Message Queuing Protocol (AMQP), an open standard application layer protocol for message-oriented middleware. …

A guide to help you efficiently transfer big data between services

Image for post
Image for post
Photo by saturncloud.io

As data about insights and sentiments become more abundant through various data ingestion sources, there’s a real need to design efficient mechanisms to deliver that data pertinently and reliably across applications and services to perform computations for data analytics, machine learning, and general persistence all while ensuring resiliency, and that consistency points of failures are mitigated.

When we transition from large data sets, which are usually manageable without the need for specialized tools, we move to the uncharted realm of big data, where size becomes significant. Without sound design principles and tools, it becomes challenging to work with as it takes a longer time. …

The art of asking the right question can show you where tech debt is lurking

Image for post
Image for post
Photo by Ben White on Unsplash

It has been my personal experience that if things are not happening as you expect when building software, chances developers probably have a pretty good idea why things aren’t working. After all, they are the builders.
Building software is a complicated endeavor, and the success of a product depends on many things ranging from top management, stakeholders, human resourcing to the introvert developer sitting alone, and punching away on his keyboard into the late hours. …

A curated list of ways to Integrate scheduled jobs into your Data science python Applications

Image for post
Image for post
Photo by Djim Loic on Unsplash

Job scheduling is a common programming challenge that most organizations and developers at some point must tackle in order to solve critical problems. This is further exacerbated by the proliferation of big data and training models for machine learning.

Having the ability to crunch petabytes of data on a predictable and automated basis in order to derive insights is a key driving factor to set you apart from the competition.

There are various opensource solutions, such as Hadoop and Apache-Spark, and proprietary vendor solutions, such as AWS Glue, used to handle these large data sets. One key component that is required by all these technologies is a “job scheduler” that gives the ability to trigger events in predefined time intervals in a fault-tolerant and scalable way. …

Developing an entrepreneur’s mindset can help programmers design better software

Image for post
Image for post
Photo by Hannah Wei on Unsplash

As developers, our job is to solve problems through the software we build. We help clients achieve specific and tangible goals. If you keep this one thing in mind you then you realize there many ways of generating income offline that can be incredibly lucrative, offer new intellectually stimulating challenges.

For most people searching how to make money online is the norm, but have you ever thought for a moment about generating an alternative source of income offline — yup there's a key distinct difference between the online and offline space with blurred similarities. There's a real opportunity to purse offline gigs, without worrying about the over-saturation and herd of programmers chasing the same offers with online freelance services. …

How to build production-ready containers

Image for post
Image for post
Photo by Matthew Kwong on Unsplash

Most of the time with Docker, we don’t pay attention to its inner workings. Just because you fire up a Docker container and your application is running doesn’t mean you’ve implemented a good solution. Sometimes, thanks to time constraints, we fall into the trap of copy-pasting Docker images without understanding the implementation details and the nuances of how it was built.

In this article, we’ll be looking at Docker best practices and anti-patterns. Anti-patterns are a common response to a recurring problem — when we implement ineffective and counterproductive solutions that can undermine our Docker stack.

Let’s jump in and take a look at some of the things that we may be doing wrong. …


Timothy Mugayi

Tech Evangelist, Instructor, Polyglot Developer with a passion for innovative technology, Father & Health Activist

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store