Goals:
- Producing quality software that delivers business value.
- Improving development and deployment processes (working smarter).
- Maintaining high quality throughout development and maintenance.
Professional Experience:
- Developing micro-services and deploying onto Cloud Foundry.
- Tuning build systems and continuous delivery pipelines.
- Improving scalability of distributed systems through intelligent use of concurrency.
- Development of middleware for bookmaking systems.
- Technical lead in multi-phase Java E-commerce project with multiple sites launched simultaneously.
- Mentoring and reviewing team code.
- Developing on the Hybris e-commerce platform.
- Experience with the Atlassian suite of tools, including Jira, Confluence, Crucible with Fisheye, and Bamboo.
- Integration with payment gateway webservice (Commidea) including thread-safe resource pooling.
- Groovy developer on a greenfield Grails 1.1 - 1.1.1 application interacting with Spring web services, Hibernate, MySQL.
- Software developer developing web-based applications with AJAX, Tomcat 6, JSF (RichFaces), JPA (Eclipselink), Java 6 and MS SQL Server as part of an agile team of 8 developers and a business analyst.
- 1 man team using Struts, JPox (now known as DataNucleus), JTDS JDBC, SQL Server, Tomcat 5.5 and Java 5 to deliver solutions as the lead developer.
- Liaising directly with clients from successful RFP responses, to requirements analysis, design, development, deployment and testing.
- Software developer converting "classic ASP" websites with scalability issues into JSP-based websites backed by elegant data repositories with timeout based caching. Included MS SQL Server stored procedures, custom tag libraries and load testing
- Java developer Swing GUIs in Java 1.2 and 1.4 - developing rich user interfaces from mockups for the client side of a trust accounting system and a tourism reservation system
Principal Java Developer @ From August 2015 to Present (5 months) London, United KingdomLead Developer @ Initially hired to lead the London side of a new distributed team, including:
- Responsibility for evaluating candidates from technical tests and interviews.
- Guiding teammates to focus on key technologies, leaving other details to colleagues closer to the issue.
- Selection and procurement of desktop hardware.
Project activities have included:
- Leading the integration of the content management system.
- Introducing alternative approaches for load testing and test driven development.
- Development of article importer and RESTful web services for the server side of a tablet newspaper application.
- Configuring Jenkins and Maven to support continuous integration with visibility of the effects of changes over time.
- Technology team representative for week long inception process.
- "Hack Day" project when I independently developed an open source Cloud Foundry plugin for users of the ThoughtWorks Go CD continuous delivery server. From May 2012 to June 2015 (3 years 2 months) Senior Consultant @ Client-facing technical lead, working on client sites in UK and Spain. From October 2010 to April 2012 (1 year 7 months) Senior Java Developer @ Development of e-commerce systems based on the Hybris platform.
In a short space of time I became one of the "go to" guys when a design decision needed to be made, or a technical issue needed to be tackled.
Responsibilities included:
- Development team lead of project.
- Contributing to change management to avoid scope creep.
- Reviewing code - improving correctness, performance and style. Educating junior developers how to do things differently, and more importantly why to do things differently.
- Set up of production databases and application servers. From July 2009 to September 2010 (1 year 3 months) Java / Groovy Developer @ Initially employed as a Java developer.
I took on the responsibility of maintaining an application developed using Grails 1.1, backed by a MySQL 5.1 database.
Other valuable technical experience gained from this role:
- Commercial exposure to Spring (2.5) and Hibernate
- UK experience
- A greater appreciation of the importance of agile methodologies From March 2009 to June 2009 (4 months) Software Engineer @ Working as as a Java developer for six years - mostly in agile teams - producing highly scalable, multi-user applications backed by Java EE servers and relational databases.
Some of the technologies involved included: JSF, Struts, Tiles, JPA, JDO, JSTL, JSP, XML, SQL, custom tag libraries, Javascript, HTML, Linux, JDBC, PostGIS, SQL Server, MySQL.
I started off as a graduate developer using Perl, HTML, JavaScript and SQL to produce dynamic websites with ASP pages (in Perlscript), and CGI scripts.
For several years I took on the added responsibility of being on call to resolve any issues arising in the production environments.
System administration responsibilities included:
- installation of Linux OS on multiple servers
- Setup of DNS record in primary and secondary BIND servers
- Recompiling apache from source when updates to underlying libraries required it
- Installation of PostgreSQL with GIS extensions
- Build and configuration of Cyrus IMAP server with secure access support.
- configuration and monitoring of backups.
As technologies changed, I moved on to work with Java 1.2 and its Swing GUI components. From 1999 to 2008 (9 years) Office Clerk @ Continuing conversion of the head office filing system from ring binders to Codafile, and updating an Access Database recording the volume location of information. From January 1996 to February 1996 (2 months)
Papers toward Post Graduate Diploma in Science, Computer Science @ University of Canterbury From 2000 to 2002 BComm, Computer Science, "Accountancy Finance and Information Systems" @ University of Canterbury From 1995 to 1998 Stephen Souness is skilled in: Cloud Foundry, Java 8, REST, Microservices, Docker, Linux, Gradle, Test Driven Development, Continuous Integration, JUnit, Spring, CoreMedia, Amazon Cloud, Web Services, MarkLogic
Websites:
http://blog.elegant-solutions.london/,
https://github.com/sounie