

In June 2015, Apple announced at WWDC that they were open-sourcing the Swift language and its runtime libraries. On December 3rd that year they made good on their promise. In this post I'd like to talk about why this is significant, particularly for server-side developers.
There is a push in the industry to code against an external style guide to maintain consistent styling, have a reusable set of components to build applications with and provide a shared vocabulary for teams to communicate. The goal is that any web application built in an organisation can make use of this style guide to re-use existing CSS rules and/or Javascript functions. For example, one of the more well-known and recently-published style guides is the U.S. Web Design Standards, which will enable U.S. government agencies to create a unified user experience throughout their web applications.
When dealing with modern web applications, integrating a style guide is a relatively straightforward process. It often involves leveraging the existing Javascript build tooling to pull assets down via npm, and then having those assets processed as part of the build pipeline along with your application’s styles/scripts. Alternately, you can simply copy-paste a version of your style guide’s artifacts into your application - the quick and dirty way.
However, things are not always this easy. In my experience working with AEM/CQ, integrating a style guide into a project has consistently been a challenge.
To be fair, style guides are not to be blamed for this. AEM’s strict file structure, meta-data (.content.xml files and the like) and reliance on Java technologies can make it challenging to integrate with Javascript-based tooling. Each project generally ends up with a set of custom scripts to achieve this integration, resulting in a solution that is simply not maintainable. If you’ll indulge me for a moment, I’d like to take this opportunity to run through a few solutions I’ve come across to integrate style guides with AEM.

I started using Adobe Experience Manager (CQ 5.6.1) with a focus on component development and building OSGi services and I strongly believe that learning how to leverage AEM's capabilities (as well as it's underlying technologies like Apache Sling) are key to a successful CMS implementation. With that in mind, I’ve been keeping a list of useful tips and tricks that I’d like to share with you. These are mostly about increasing productivity when working with AEM or just general things I wish I knew about earlier. This post is targeted more at developers starting out with AEM but I’m also hoping more seasoned users can benefit from it too.
Anyone who’s ever had to support server infrastructure of any kind knows the value of having a comprehensive, automated monitoring solution in place. With this in mind, we have begun to roll out the New Relic platform to monitor all our AWS based servers. New Relic comes with many great monitoring metrics straight out of the box, but still has the flexibility for software developers to create their own plugins for customized metrics on just about anything your users will care about.
D3.js is a JavaScript library that is used to generate visualisations, usually based on sets of data. I have been using it on a dashboard project for the past month, and wanted to share some of my thoughts and impressions as a new user.“It’s the leadership that makes Shine a great place to work. The founders of Shine are…wait for it…’real people’! I have always felt that they are genuinely caring of their staff – approachable, honest, open. They definitely want to see their staff be the best they can be and provide the support and guidance needed to do just that. I love working here.”
“Since I joined Shine in 2017, I have been surrounded by brilliant, friendly and talented people, where work-life balance is a priority.
I always seek new challenges in my career and Shine gave me the opportunity to become a People Lead last year and I have been promoted recently as a Senior Software Engineer.
Shine is definitely a great place to grow and develop both professionally and personally.”
“Working at Shine has been great for me. It’s challenging, yet rewarding.
The Shine team are professional, highly skilled, and great fun to be around.
Shine has a respectful inclusive culture and focuses not only on skill growth but also personal wellbeing.
The thing I value the most is the trust that Shine puts in me to do the job the way I think it should be done.”
“The Shine team has taken my upskilling seriously, which I am greatly thankful for, and now I am helping others upskill.”
“I’ve been with Shine almost 15-years, and it’s the leadership that makes Shine a great place to work.
The founders of Shine are…wait for it…’real people’!
I have always felt that they are genuinely caring of their staff – approachable, honest, open.
They definitely want to see their staff be the best they can be and provide the support and guidance needed to do just that.
I love working here.”