A tale of two efficiencies

Image for post
Image for post
We all know you’ve seen this before…

Introducing CI/CD into your software process is an absolute no brainer. The question, endlessly, is “What CI tool should I use?”. There are so many to choose from that the effort in searching alone can be daunting. It feels like, once you have your server running, you’re married to it. The sheer amount of work it took to get the thing working reliably completely shuts down any desire to experiment with new approaches.

From here, we arrive into the world of SaaS offerings. Tools that lift most of the burden from your shoulders and charge only a license fee. …


Developers, let’s avoid these techniques

The word ”nope” written in paint on a fence
The word ”nope” written in paint on a fence
Photo by Daniel Herron on Unsplash

There are, among certain circles, coding techniques that are whispered about cautiously. A dark magic of sorts, they appear and disappear, surfacing just long enough to exact a heavy price. In their early stages, they induce an eye roll, a sigh, perhaps even a swear word.

In their later stages, fits of rage are considered a polite response to these coding practices. They are anathema to good sense, good morals, and general decency. I posit that no person has ever simultaneously performed these great misdeeds and emerged with their soul intact.

War and Peace in the Comments

// Create a string
String s = "hello";
//…

From Bash to Buddy

Image for post
Image for post
Photo by Eugene Zhyvchik on Unsplash

Continuous Integration and Continuous Delivery have become a staple of any competent software house. They have become the lifeblood of the team and the engine that drives changes out into production.

Modern CI/CD solutions are all singing, all dancing masters of delivery. They come packed with useful, funky features. Yet, it’s easy to forget that the origins of CI/CD were very humble. This article is a high-level look at how CI/CD has changed over the years, to give a perspective of the direction of travel.

In the beginning…

In the early stages of continuous integration, build “pipelines” were nothing more than simple scripts.


How I Tripled my Income and Grew a Business

Image for post
Image for post
Photo by Marvin Meyer on Unsplash

Blogging has become commonplace amongst engineers. Everywhere I look, I see engineers expressing themselves on Medium, DZone, InfoQ and more. What is it that makes blogging such a fantastic pursuit for software engineers?

Everyone is interested!

Right now, the whole world is scrambling for new software engineers. In case you didn’t notice, the golden age of being a developer is now, at this moment.

Engineers use blogs as a source of useful information, but your audience will be made up of hundreds of different professions. People looking to retrain, engineering managers, project managers, product specialists, marketing specialists. …


It’s powerful but very temperamental

Image for post
Image for post
Photo by Patrick Tomasso on Unsplash.

If you’re using AWS for data transformation, you’re going to run into Athena sooner or later. Athena allows you to query data across multiple data stores, with a well-known SQL syntax (Presto 6.15).

With S3 as a storage solution, Athena promises to handle the complexity of a huge database for you. Serverless compute and storage means an entirely serverless database experience. All you need to do is know where all of the red flags are. In this article, I’ve listed some of the situations I’ve found myself in over the past few months.

Partitioning Is Non-Negotiable With Athena

When you’re writing out your data into…


What do your values say about your company?

Image for post
Image for post
Photo by Frank Vessia on Unsplash

When is the last time you read a set of company values and knew what that company was about?

I don’t mean superficially. I’m not talking about the industry they’re in, or how many employees they have. I mean, you got a sense of their mission, their goals, and their targets. Are they an optimistic company, or do they plan for the worst? Conservative or reckless? Do they design twice or do they cut once and learn as they go?

At Upside, we’ve been thinking long and hard about our values.

Your values codify the essence of your company. They’re…


Common problems when scaling AWS Glue

Image for post
Image for post
Photo by chuttersnap on Unsplash

A few months ago, we were set a challenge: to process a large volume of data, coming in 24 hours a day from hundreds of different sources. After a few weeks, we got our software running in production. It was a big moment for us but it was also an opportunity to reflect.

I realised that there were some issues that were slowing us down. They ranged from architectural decisions to hidden implementation details about AWS Glue. …


A Corporate Fable

Image for post
Image for post
Photo by Mitchell Luo on Unsplash

Somewhere, in LiveLaughlove Inc…

“Our first corporate value is….”. Paul, the Regional Director of Maritime IT and Logistics, paused for effect. He held his well-manicured hands in front of him as if calming a baying mob of eager students. What is the first corporate value!? he thought he heard them scream.

An unbiased study of the crowd would barely detect signs of life. Each person glared aimlessly into the middle distance, waiting for this man and his ridiculous job title to disappear. Don’t get me wrong, some were paying attention, just not to him. …


Open up a whole new world of coding with these unlikely skills

Image for post
Image for post
Photo by Joshua Earle on Unsplash

Writing great code is more than just writing code over and over again. It isn’t the exclusive right of greybeards to look upon their solutions and marvel. Yet, a pervasive idea in our industry is that one must have worked for many companies, over decades, before our code attains that all-important crown: clean.

I have been writing code professionally for five years. I’m miles away from greybeard territory, yet I’m proud of many of the solutions I’ve built during that time. Below are the basic skills that helped me on my way to writing those solutions. …


What is mob programming? How can we use it effectively?

Image for post
Image for post
Photo by Perry Grone on Unsplash

The pairing/mobbing debate often attracts extreme positions on both sides. Those who claim it always causes problems and, conversely, those who assert its immutable, inalienable value. I find myself at a loss with both sides of the debate. This is because I’ve found times when pairing and mobbing have been indispensable, but there have also been other times when they’ve felt awkward and out of place.

Instead, I’d like to reframe the debate in a familiar but often overlooked light. Pairing/mobbing are simply tools in your belt, useful for tackling specific kinds of problems. The trick is to work out…

Chris Cooney

[‘tech’, ‘insane rambling’].map(category => new Article(category))

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