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.
// Create a string
String s = "hello";// Add that string to another string
String s2 = s + "…
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 early stages of continuous integration, build “pipelines” were nothing more than simple scripts.
#!/bin/bash…
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?
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. …
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.
When you’re writing out your data into AWS Glue tables, there should be one word at the forefront of your conversation: partitioning. Partitioning instructs AWS Glue on how to group your files together in S3 so that your queries can run over the smallest possible set of data. …
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 your signature, your imprint. They are the shortest possible description of who you are. Tell me, when you see a value like this, what do you think? …
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. …
“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. …
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. …
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 what kinds of problems they solve. …
A good backlog will change how your team collaborates. It shortens meetings. It creates a genuine shared understanding. If you get your backlog in great shape, you’re setting yourself up for success. A great backlog is a panacea of useful information and vision.
It surprises me to see how few backlogs are in good shape. Most often they’re a mess of tasks and half thought out ideas, rushed into some kind of “order” that may or may not be a priority. Worse, they’re detailed down to the bone. …
About