culture Philosophy and Software I: The Virtues of Software Engineering In this piece I tie Software Engineering with the Philosophy of personal growth and development. Using Confucian Principles of Ethics I aim to draw parallels between the world of software and ancient China!
AWS Flexible Token Authorization for AWS Hosted APIs If you have complex business needs and a hybrid cloud architecture, Lambda Authorizers prove very useful.
AWS How to Manage Schema Migrations in Redshift With Airflow A guide to schema migrations with Airflow ETLs!
Developer Experience Create an Easy-To-Use Client Library in TypeScript With a Step Builder Client libraries are essential tooling, and yet their Developer Experience (DX) is often overlooked. Here's a simple approach to improve this, based on a well-known pattern.
culture New Beginnings New decade, new us. We've relaunched our engineering blog featuring new experiences from our teams at Poppulo.
AWS CDK Kickoff ⚽- Getting Started Guide to AWS CDK Recently, Poppulo began the migration of our stack to AWS. As a team we didn't have a lot of experience building on AWS, so we used the AWS CDK for a new greenfield project, and learned valuable lessons along the way.
conference Software superstars lined up for this year's RebelCon Some of the world's most acclaimed software experts will headline RebelCon 2018 this June, Ireland's only conference specifically for software developers, organised by Poppulo.
distributed systems Reaching production is only the beginning Over the last 10 years, I had the chance to be part of significant engineering changes at Poppulo. Our transition to a (micro-)service oriented architecture was a decision we made to enable our department to scale up, so that we could become the leader in internal communication.
Agile Continuous Delivery and THE FEAR Continuous Delivery (CD) is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way.
organisational change Insights from 2 years of scaling at Poppulo Scaling your organisation is not easy. Here I'll talk about the 3 most important cornerstones to tackle as you scale your engineering function.
Design Using a Style Guide to go from Prototype to Production The process of building a living style guide can help you refactor your prototype code in preparation for hand-off from designer to developer.
microservices Pact tests: what about state data? One of the challenges of setting up Pacts between Teams is to get Pacts at the right level so that every Team can work faster, with the confidence that making a breaking change will be detected before it makes it to production.
Cassandra Short and Long Lived Cassandra Sessions tl;dr: When using the Datastax driver use long lived sessions!
Spark Big Data Analytics with Apache Spark Over the past two years, Poppulo has taken our new Cross-Channel Analytics Platform from proof of concept to production. Our customers publish hundreds of thousands of communications daily across a variety of different channels, generating an explosion of events on that content.
Scala Use custom value classes for greater abstraction and type safety Scala is one of our languages of choice. On our journey to Scala mastery, we continually pick up new tricks, which we soon put to use, if we find that they contribute to the quality of our codebase. This post is about one such trick: custom value classes.
Protractor Removing sleeps from your AngularJS Protractor tests The Protractor framework does a great job of shielding you from the inherent difficulties of testing your asynchronous Angular app.
consumer-driven contracts Sharing Consumer-Driven Contracts with Pact Broker If you’re already using Pact for Consumer-Driven Contracts, you have probably hit the issue of persisting and sharing contracts.
Docker Cleaning Up After Docker At Poppulo, we use Docker for a number of solutions, from building RPMs, building images as part of our Microservices and running tests.
Scala Workaround for configuration parsing issue in Dropwizard 0.9 with Scala If you are using Dropwizard 0.9 in Scala, you might have encountered this error when starting your application.
automation Finding the right automation model & some general tips for A/T QAs Finding an appropriate automation model, which uses a microservices structure and adequately met our needs, was something of a Darwinian process.
Big Data Mitigating Precision Loss in Big Data Analytics In building our big data analytics software, we need to represent and perform calculations on floating point numbers. In order to keep the results of these calculations as accurate as possible we seek to maintain the greatest precision possible.
Ansible Take to the clouds with Ansible and AWS! If you have your physical or virtual environments configured with Ansible you can use this configuration code to provision and configure new cloud environments on AWS. The following solution shows
culture Being a Junior Developer at Poppulo I like problems. I decided to become a developer because software development is a never ending stream of problems. I have been a junior developer at Poppulo for just over a year and luckily for me no two days are the same with different challenges arising and solutions to be worked out.
microservices Our take-away from µCon 2015, the Microservices conference We went to skills matter's µCon this year with two main objectives in mind. Benchmark how far along we were in our journey towards Microservices and DevOps, and attempt to validate what we had done in the last year. Then get some pointers from people who had experienced this already.
microservices CorkDev.io Talk: Service Discovery with Docker and Microservices Working with Microservices has recently become very trendy, however building dynamic and distributed systems doesn’t come without new challenges. Service Discovery is one of these challenges: enabling services to dynamically discover other services and communicate with them.