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. …
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 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. …
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. …
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. …
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. …
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. …
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. …
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. …
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. …
About