tag:blogger.com,1999:blog-14811959350801954792024-03-13T18:10:37.381+00:00Thoughts on software developmentStephen Souness, a Java developer recently returned to New Zealand sharing some thoughts on what's happening in the world of Cloud computing, Java and database technologies.Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.comBlogger208125tag:blogger.com,1999:blog-1481195935080195479.post-31452792411385818142021-10-06T21:38:00.004+01:002021-10-11T22:30:29.652+01:00New Country, new domain name, new blogNow that I have moved back to New Zealand, it makes sense for me to switch over to having a "dot en zed" domain name - like I have the "dot london" domain for this blog.Domain name management has changed a bit since I left, so instead of having to decide whether I'm a ".co.nz" or ".org.nz" or something similar, I can just go for a top level ".nz". My name of choice this time around is "Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-35288767734361353822021-09-11T02:37:00.003+01:002021-09-26T23:31:44.628+01:00How to test Spring's Transactional behaviourIntroductionIn order to properly test the behaviour of the software that we develop using frameworks such as Spring, we need to run our code with the framework code and configuration in place.A recent situation that I wanted to verify as working correctly involved a data access component which relied on Spring to rollback the underlying database transaction if an exception had Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-25966393847039753942021-09-03T03:18:00.008+01:002021-10-06T22:01:32.270+01:00The move back to New ZealandThe new flat By August 2021 I was in a different flat and working from home on a fulltime basis. There were some good and bad aspects of the new place:Good: - Very limited shared living areas, so minimal risk of catching Covid if one of the new housemates got it - My bedroom overlooked a quiet(ish) garden area, and the flat was on a quieter side streetBad: - Maintenance worksStephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-88319281705868850742020-12-29T23:09:00.004+00:002020-12-29T23:09:35.649+00:00Less is MoreThis post shares a title with a little article that a university classmate authored a couple of decades ago - back before blogging was a thing, so the platform that hosted it no longer exists - so you’ll just have to take my word for that.The article was a comparison of two commonly used unix shell commands that are commonly used for viewing the content of a text file one page or buffer at a timeStephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-9499039901953881622020-09-22T07:08:00.002+01:002020-09-22T07:08:38.744+01:00The Return to London After Spending Lockdown in New ZealandWhenever possible I try to minimize the amount of unnecessary stress in my life. Sometimes that involves flying to the other side of the planet during a global pandemic.This can be considered as part two of my "What I did during the Coronavirus Pandemic" post - a series motivated by the old "What I did during the school holidays" essay theme from childhood.In mid-July I made the decision toStephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-27983967568266659182020-09-09T08:10:00.004+01:002020-09-22T06:31:12.830+01:00What I did during the Coronavirus PandemicThe move to New Zealand
On March 23rd I decided that there was too much uncertainty around how long London would be in lockdown, so I booked myself a flight to New Zealand to stay with family.
A few days later I was in Balclutha in time to hear the town's civil defence siren sound half an hour before the start of New Zealand's level four lockdown.
Due to the remote possibility of being a Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-53366972701311887762019-12-16T08:47:00.001+00:002019-12-16T12:49:07.688+00:00Revisiting exploring relatedness of videos using youtube APIsIntroduction
Way back in 2012 I dabbled with youtube's APIs to see how to determine whether two videos could be related via following their "related videos" out until finding a common video or running out of non-duplicate videos in the accumulated graph.
I've recently realised that the code from that particular experiment was only held on my old laptop that died a few months ago. Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-20757845268004312152019-11-18T22:57:00.001+00:002019-11-18T22:57:37.816+00:00Java 11 support added for AWS LambdasI've just deployed a little "Hello world" lambda that also logs out the system properties as verification that the setup is correct. Seems to work.Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-65053481882644247432019-11-13T08:17:00.000+00:002019-11-13T11:48:52.942+00:00Connection pooling in AWS LambdasA few months back I posted my findings from troubleshooting a resource leak in a Java application that had been lifted and shifted to become a lambda rather than a long-running app on AWS.
The resource leak turned out to be the setup of a fresh pool of connections to the back-end cache on each invocation of the lambda, without any corresponding clean up call to close those connections.
Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-82093535171615055492019-11-11T12:49:00.000+00:002019-11-11T20:02:54.263+00:00What's an ideal working environment?Introduction
My most recent job interview included being asked about what I would consider an ideal working environment to be like. This post will be me thinking aloud about how to respond if the same type of question comes up again.
Team Structure - Serenity Now
Based on my twenty or so years of working as a professional software developer, I have found the most productive teams are thoseStephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-22835644787693155812019-11-08T12:21:00.001+00:002019-11-11T13:03:52.508+00:00Shaking off some job interview rustinessIntroduction - looking for a new challenge is a full time occupation
Having a long term secure job is great, but in general the longer that you are away from the process of looking for a new role, the less well prepared you will be for interviewing for the next one. Please don't take that as an indication that you should hand in your notice for the sake of it, but read on to learn from Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-19076792958995584612019-11-07T19:42:00.001+00:002019-11-07T19:43:18.106+00:00London potentially losing the best IT meetup organisationI was shocked to read a tweet in my timeline a few days ago from Wendy Devolder, the main person behind Skills Matter:
"To all the people
@skillsmatter
who made us who we were, I’m very sad and sorry that
@skillsmatter
has gone in administration.
A massive thanks to my beautiful team, who contributed so much beauty, passion, talent and experience, words cannot express my gratitude."
Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-43554491357239069062019-10-28T15:56:00.002+00:002019-10-28T15:56:21.473+00:00New blog dedicated to microservicesI liked my previous post's title so much that I have decided to spin up a new blog dedicated to my experiences and observations in the development and operation of microservices.
The title is, "New adventures in microservives," and you can find it at the following URL:
https://ms-blog.elegant-solutions.london/
You'll have to excuse me if I don't go into specifics about where or when I have Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-71983666364178188982019-10-25T08:49:00.001+01:002019-10-25T08:49:12.207+01:00New adventures in microservices - reducing inter-service callsNot so long ago I was working on a product that internally exposed an API to allow clients to keep in sync with a user's most recently read documents. I expect most readers of this blog will have used Amazon's Kindle or a similar online reading application so I won't have to explain any of the fundamentals of this functionality.
On the surface this "recently read" service was quite Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-1545505865904873592019-10-23T21:10:00.002+01:002019-10-23T21:11:04.406+01:00Recent Holiday ReadingTravelling to the other side of the world offers plenty of idle time in the airport shops. Turning up to the airport three hours before the flight is a given, when considering the hassle and cost involved if the first flight is missed.
Even if I have a book or two in my carry on bag I still peruse the paperbacks shelves at WH Smith or the local equivalent airport retailer.
So, here's a Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-27122063693251996562019-10-23T15:53:00.002+01:002019-10-23T15:53:54.866+01:00Interview preparationI had a mental blank while attempting to jot down some code for solving a problem on paper during a recent job interview. Less than a minute after leaving the interview I remembered the name of a method that I should have been using instead of my clunky array manipulation. I put the experience down to a combination of being so reliant on IDE code completion, and not having written Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-65642896957275392612019-10-23T15:29:00.002+01:002019-10-23T15:45:44.476+01:00Preparing for interviews versus skating to where the puck is going to be"I skate to where the puck is going to be, not to where it has been." - Wayne Gretsky
I'm in the process of seeking out a new challenge in my career (no need to whisper - I've left my previous job on good terms and taken a nice long holiday - so I'm not sneaking around to speak to recruiters during work time).
While updating my CV I have been quite aware that once again I find myself without Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-13584586322433578382019-10-22T22:03:00.000+01:002019-10-22T22:03:13.793+01:00How NOT to use LinkedInI've recently taken the decision to look for a new job. Much like most of my other career moves I have chosen to leave a comfortable position, treating looking for the next one as a full time endeavour - rather than being sneaky and booking a "dentist appointment" or taking time off to attend interviews.
In this modern era I thought that I would not need to update my CV, as LinkedIn is theStephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-42710732516284970652019-10-21T22:40:00.001+01:002019-10-23T15:57:03.633+01:00Contributions to open source - it's not just about hardcore codingJust a listing of some contributions that I have made to open source software, from creating my own code to making a third party's documentation a little bit more readable.
Created plugin for GoCD continuous integration server to enable polling of status of application in Cloud Foundry.
https://github.com/Sounie/springer-gocd-cloudfoundry-plugin
- Identified code change in Apache Camel that Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-74004781705451169582019-10-20T23:52:00.001+01:002019-10-20T23:52:39.400+01:00Google Search ConsoleA couple of years ago I realised that website owners can obtain access to information about how users on Google end up reaching their site via Google. Now I'm getting around to setting that up for this blog site.
I'm not expecting any high numbers of visitors, but am a little bit curious to see which page of search results my content show up on - and what sort of terms users are entering Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-38506395962477760712019-10-11T12:20:00.000+01:002019-10-11T12:20:08.083+01:00Takeaways from JAX London 2019I attended the JAX London "The Conference for Java and Software Innovation" earlier this week. It was a great opportunity to keep up to date with what is happening with the core technologies that I have been using in my day to day work for most of my career so far. This post is a brief summary of some of my favourite tidbits.
In serverless computing size matters - smaller containers Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-81477473305771292862019-06-18T23:29:00.001+01:002019-06-18T23:29:10.656+01:00Troubleshooting AWS lambda too many open filesSome time ago - in the not so distant past - I was offered the opportunity to assist a colleague with troubleshooting a system that was facing some performance issues.
Problem 1: Dedicated caching server running out of memory and constantly swapping
This cache had been put in place to reduce the need to call out to other services for data that might be needed several times in a given timeStephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-36774905835401532292019-03-21T22:46:00.001+00:002019-03-21T22:47:48.871+00:00The names have changed, the mistakes are the sameI decided not to stay on the monthly IT department catch up call this afternoon. Luckily I had plenty to keep me occupied a few minutes later.
> "Hey, does anyone know why the site's down?"
< "It's not down", "Ooh, it's slow, what's that about"
....
Long story short, somebody updated a security group config so one of the apps couldn't reach its cache. A few years ago it would Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-26575766973467563142018-05-23T07:37:00.001+01:002018-05-23T07:37:36.491+01:00Am I an accidental software architect?I have an opinion about the role of software architects, they should actively contribute code that will go into production for the systems that they provide oversight for.
Recently I have found myself in the peculiar situation of being so involved in technical evaluations, troubleshooting of production issues, code reviews and meetings that I haven't actually contributed any of my own code.
As Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0tag:blogger.com,1999:blog-1481195935080195479.post-74262100471202287652016-07-23T00:46:00.000+01:002016-07-24T22:24:06.252+01:00Referendum petition data examinedYou may have noticed that on 23rd June 2016 the UK held a referendum about whether to remain as a member of the European Union.
When the result didn't go quite the way they wanted, some people participated in an online petition with the goal of having parliament consider re-running the referendum to try to obtain a more significant resulting margin.
Link to petition
The apparent popularity of Stephen Sounesshttp://www.blogger.com/profile/02865488454850253029noreply@blogger.com0