Alex Lashford

- Software Engineer

Who am I? a professional, a technologist, a programmer and generally a bit of a geek. I'm interested in engineering software, writing quality code and using the most appropriate language to solve the problem. I always endeavour to follow Design Patterns and Programming Principles I have learnt throughout my career to produce technically sound and supportable software. I feel I have strong communication skills and am able to communicate to technical and non-technical audience alike, my positive attitude and professionalism help to increase productivity and attitude within any team.

I’m an experienced software engineer specialising in the JVM toolset, however I consider myself a polyglot engineer and have utilised several languages and development environments throughout my career. My commercial experience has exposed me to a range of projects from large Enterprise systems to smaller applications for cutting edge, technology driven Start-ups. This has given me exposure to large data volumes, distributed systems, event driven architectures, brown and green field development and services integration, spanning technologies and business sectors. I have worked with clients to produce highly performant scalable and fit for purpose software solutions, sharing my experience of development, design, implementation and interpreting the intricacies of the business domain. This coupled with my knowledge of Agile techniques help create good communication channels between the business and engineering teams.

Profile

Github

alexlashford {at} gmail.com

Male

30 Years Old

British

  • twitter icon
  • linkedin icon
 

I like learning new things, techy things in particular. I’m often found spending my evenings and weekends hacking together the latest libraries or trying out some new tech. I have a RasberyPi based connected home, coupled with Amazon Echo (Alexa) and I'm always looking for ways to add more tech to this IOT platform. I enjoy reading and when not ploughing through tech blogs I like to read things that still require the grey matter, from “The God Delusion” to “Chaotic Fishponds”, I think sparking debate amongst my mates in the pub, is a great way to spend the evening. Without this sounding too much of a cliché, I really do like, Good Food, Good Whisk[e]y, Good Wine and the odd walk in the Countryside.

 

star star star star star

Architecture


I'm an experienced architect, designing and implementing several large scale platforms. I am a polyglot engineer and use my experience to utilise the most effective technology to solve the problem space. I always strive to achieve the most appropriate architecture to meet the demands of the application today, whilst allowing for extensibility in the future.

star star star star star

Scala


Experienced Scala developer and architect creating highly scalable, reactive applications using a range of the Lightbend toolset, including Akka / Spray and the Play Framework. I have been involved from the initial conception to the Live release and delivery of many Scala projects. I work with clients to architect, design and implement fit for purpose applications built around the Scala Eco System.

star star star star star

Java / J2EE


I am a Sun Certified Programmer for the Java 6 Platform (SCJP6) with several years of commercial experience working with the Java/J2EE toolset. With exposure to third party open source libraries, including EJB’s, Spring integration, Spring MVC, Spring DI, Spring Data, JPA, Hibernate, Guice and several Apache offerings: Commons, FOP, Batik, OpenJPA, PDFBox, POI and Wicket. I have solid knowledge of the Java toolset creating multi threaded, high performance enterprise applications.

star star star star star

Web / Micro Services


I have architected & developed several Microservice applications, using techniques such as Event storming and DDD to fully identify the problem space. Microservice pattern helped decentralise application complexity and functionality whilst ensuring contextual boundaries are maintained. I have knowledge of creating and maintaining public facing webservices, controlling enhancement, documentation and versioning of the API. Having exposure to JAX-WS, Soap, XML, XSLT, REST & JSON.

star star star star star

Web Development


Experienced in modern web development using clientside Javascript libraries, including AnguarJs, ReactJs, Polymer & ScalaJs. Some NodeJs experience for simple stateless Microservices and have used higher level programming languages such as CoffeeScript / TypeScript. I have working knowledge of CSS frameworks (Bootstrap / FoundationCSS / Flex - CSS3). Historically have worked with Spring MVC (Velocity/Freemarker for HTML templating, limited knowledge of JSP, JSF and Apache Wicket in traditional Java Web development.

star star star star star

Team Management


I am an experienced leader and have lead several teams to deliver production quality systems across an array of technologies and business domains. I have technically mentored engineers and worked with Team leads to improve their people management skills. In my current role I have several teams report to me and work at ensuring culture and knowledge is transferred amongst the teams, this often challenging in a fast growth company.

star star star star star

Analysis & design


Involvement in business requirement analysis, workshop facilitation and functional/technical specification authoring. Have authored technical documentation including use case/scenario modelling, functional decomposition, object modelling (UML) and data modelling (ERD). Throughout my career I have always aimed to deliver "Just Enough" documentation as it can quickly become out of date. I have worked on both traditional waterfall and several variants of agile delivery.

star star star star star

No-SQL


Over recent years I have been involved in projects using schema-less big data storage, aiding scalability and performance. The projects have exposed me to Neo4J (Graph), Cassandra (Column) & MongoDB (Document). Modern applications often require polyglot data storage architectures and ensuring appropriate data structure design across these databases can often be difficult.

star star star star star

SQL


Strong SQL knowledge and experience creating complex relation queries using both ANSI/ISO standard syntax and vendor specific functions (Oracle 9i - 11g). Some experience in SQL performance tuning on the Oracle platform and analysis of explain plans using Enterprise Manager. I’ve also been involved in the development of applications using MySql and Postgress as open-source alternatives to the larger enterprise offerings.

star star star star star

Dev Ops


Experienced in creating and maintaining build processes in SBT & Maven with a variety of SCM systems, Github, GitLab & BitBucket. Used Continuous Integration and Delivery techniques predominantly using Jenkins to create autonomous build pipelines, (including blue / green, canary and A/B for feature Testing). An advocate for infrastructure as code using AWS toolset with experience in Cloud infrastructure architecture and environment automation. Technologies - Puppet, Cloudformation, Terraform, Troposhere, Docker, Messos, Marathon, DC/OS.

 

Jun 2015 - Present

Head Of Engineering

Cake Solutions Ltd, Full-Time


As a Software Consultant and Head of Engineering I work across several projects at Cake, ensuring projects are scalable, reactive and fit for purpose with a focus on quality, delivery and architecture. I work alongside the Team leads helping resolve architectural problems and ensuring projects are delivered on time and on budget. As a member of the senior team here at Cake I also consult in Scala/Akka and work with several startups in terms of product discovery and Proof of Concept implementations.

Visit cakesolutions.net for more information about what we do at Cake.

Visit the Cake team blogs to read some of my posts and to hear more about the open source work we do.


Jun 2012 - Present

Team Lead / Lead Developer

Cake Solutions Ltd, Full-Time


Responsible for leading a development team on a range of projects from small Start-up to large corporate companies. I’m a natural leader and my strong communication skills help bridge the gap between the business need and the technical complexity of the software solution. I work alongside the architects at Cake and the Clients to produce scalable, reactive and fit for purpose software solutions. I provide technical support and guidance to the development team whilst being one of the lead developers ensuring quality and performance of the software we produce.

Cake's staff are recognised as one of the foremost experts in enterprise application development, application architecture, collaborative development services, and agile project management, in the UK. Cake are also authors and editors of several publications including Pro Spring 2.5 and the Open Source Journal.

Visit cakesolutions.net for more information about what we do at Cake.

Visit the Cake team blogs to read some of my posts and to hear more about the open source work we do.


Jun 2008 - May 2012

Java Developer

Cheshire Data Systems (CDL), Full-Time


One of around 20 Software developers using a range of Java / J2EE toolsets to continue the support and development of CDL’s flagship product; Strata – an n-tier, J2EE based, full policy lifecycle enterprise solution for personal lines and commercial insurance brokerages: the team ranges from recent graduates to experienced architects. I have been involved in several business critical projects from conception through to delivery and have experienced all aspects of SDLC using both waterfall and agile methodologies. Later projects used Atern Agile methodoligies working to fixed timescales, using timeboxing and iterative development.

  • ETLTool : Involved in the design and implementation of a product to migrate Insurance data from a legacy system into the next generation enterprise solution. The application gave exposure to performant loading of large XML files using StAx/JAXB and Java Persistence Annotations(JPA) using Hibernate as the entity provider. Multi-threaded data processers where created using the Java concurrency toolset to enable high throughput and program efficiency. I gained experience of performance tuning applications using monitoring tools such as JConsole and YourKit. During Go-live I performed first and third line support for the migration application, talking to customers and liaising with business representatives.
  • Email Generation Engine : Created an extension to the document generation system, to enable Html emails to be created within the application. Incorporated a velocity engine to allow for HTML templating and added functionality to allow Policy information to be added via an internal API call. Project was an Agile development using fixed timescales, TDD and iterative development, the architecture took advantage of dependency injection creating cohesive, decoupled code.
  • Prescribe / PDF Converter : Involved in the enhancement and support of a document conversion engine, translating insurance documentation from Prescribe(Kyocera Printer Language) into PDF format using Apache Batik and FOP. Also created a WebService for integration into the Enterprise insurance App, and a regression harness for QA testing.
  • Integration Test API – Created a programming interface to facilitate the dynamic creation of realistic test data used by the integration tests of the enterprise system. Allowing for removal of extensive boiler plate code created for test data construction.
  • General Enhancement and support of the core application, I have been involved in several smaller projects adding functionality to the enterprise system. This has given me exposure to enterprise technologies including EJB, JMS, Hibernate & JPA, XML, XSLT, JAX-WS, Soap, Tomcat, Weblogic, Ant & Maven.

Jun 2007 - May 2008

Software Developer (Placement Student)

MacPac Ltd, 3 Months + 1 Day Per Week


My main task whilst on summer placement was to produce a production scheduling application that would connect to the current order processing system to retrieve all active orders. The main application provided a interactive Gantt chart for scheduling jobs and was written in VB.net using the ADO framework to connect an Ms Access system. I also improved the order processing Access system, adding functionality and bug fixing current features. The work I did during the summer was not only professional but extremely valuable to the company, this was highlighted by the Shell Step award I received in recognition. From this I was offered a part-time job whilst I completed my final year at University, developing more software and generally being their IT professional.

 

Sept 2005 - May 2008

Manchester Metropolitan University

BSC (Hons) Applied Computing - Awarded First Class Honours (1st)


Applied Computing was a Computer Science based course mixing the theoretical fundamentals and the application of those skills in industry.


  • Java Programming – Object orientated programming skills using polymorphism, Abstraction, Inheritance etc. I developed several java applets, GUI applications and Web Server applications. Course explored core programming principles and design patterns, each of which were tested throughout the years by exam and project assessment.
  • Systems Analysis & design – Relational Data Normalisation exploring normal form rationalisation, Data modelling including UML & EER Diagrams, project planning using Gantt Charts and experience with the IBM Rational rose software package.
  • Database Development – Data warehousing, Data mining, OLAP and developing both relational and object orientated databases using Oracle 10g, gaining a good knowledge of SQL and experience with Oracle form/report builder and Oracle discoverer. I also became familiar with Ms Access and Visual Studio using vb.net/ado.net framework.
  • Media & Web Development – Adobe Photoshop, Macromedia Director, web design techniques, Client side scripting Html/CSS/JavaScript, Server side Scripting using Perl and PHP, and internet programming using Java Servlets and JSP.
  • Professional issues - Application of computers in industry, Computing law covering the current legal framework and the Data Protection act, professional development and professional bodies in IT.
  • Computer Networks – Subneting/Supernetting, protocol stacks, network topology, network design, network administration and security, bash/shell scripting, Python Scripting, cryptography methods and network analysis.
  • End User Support - Computer Hardware ~ looking at busses, interconnects, Processors and low level components with some assembly language programming. Windows Server 2003 configuration and Windows administration for 2000 onwards, Using Active Directory and other administration services.
  • Computing Mathematics - Logic, Algebra, Binary/octal/hexadecimal mathematics essentially 'Computer Science 101'

Sept 1998 - May 2005

Kingsmead Technology College


  • A-levels in Physics, Mathematics, Psychology and General Studies.
  • GNVQ in Information Communication Technology ICT.
  • GCSEs in Maths, Double Science, Electronics, English, English Literature, Art and French