Hi, I'm Sam Atkinson

Java Developer, TDD & Clean Code enthusiast

I love technology and I'm an all round geek. I have worked as a senior Java developer and tech lead at a variety of financial institutions in a couple of different countries. I love programming; I'm the guy who wants to code all day at work then continue programming at night. I'm passionate about Test Driven Design and Clean Code. If you're writing code for production then it has to have tests, and the code has to be clean. Skimping on either will lead to pain and disaster very quickly.

I enjoy working with junior developers to help teach them about better programming techniques, and I enjoy working with other senior developers as I'm always keen to learn. As a result, I'm a big fan of pair programming

I'm currently travelling the world until July 2016. you can check out the route here. If I'm calling through your neck of the woods I'd love to come pair or do a talk to your group. Drop me an email and say hi.


Upcoming Events

July 3rd: TDD Kata

Work Saigon Coworking Space, Ho Chi Minh City
I'd love to talk at your event. Drop me an email and let's chat

Online Articles

Most Valued Blogger (MVB) at Dzone

DZone republishes a number of my posts from my personal blog and my site Core Java Interview Questions. I've had over 100,000 views.

Most Valued Blogger (MVB) at Dzone

My best recieved and most controversial posts tend to be about my dislike of Spring. Developers (particularly junior ones) have a crazy belief that you need a framework to do dependency inject. This is wrong!

5 ways to totally fail your interview

Linkbait post on some of the common areas I've seen people end their inverview before it's even started. Good interview prep and practice is one of my top specialties.

Books

Java Interview Bootcamp

The Complete Guide To Finding And Landing Your Next Java Developer Role

I released Java Interview Bootcamp Later in 2014, self published through leanpub, and now available on my own site and on amazon. The book is split into two sections; the first covers interview technique and resume preparation, and section two acting as a deep core Java review with example questions.

You can read the full blurb over at http://www.javainterviewbootcamp.com

I think the part I've enjoyed most about this book and the corresponding website has been being able to help such a wide range of people. I regularly get emails from people saying thank you for helping them to land their new job, which is a fantastic feeling.

Projects

Swirl

http://www.swrl.co

A closed source project run with some ex-colleagues. We regularly would share articles, youtube videos and books with each other then forget to check them out later, or forget who recommended them in the first place. Swirl is our attempt to combat that, the one stop shop for all our recommendations.

Created using Clojure, including lein and ragtime on top of a pgsql database. Vagrant is used to allow devs to get quickly up and running without having to set up postgres. We are currently rapidly iterating towards a wider launch.

Clojure
Postgres
HTML5
Vagrant

Jist

http://www.samberic.github.com/jist

Open Source project hosted on Github. Frustrated by the lack of quick code-snippet sharing tool in work, I discovered that all Gist/Pastebin clones were written using languages that I wasn't able to break into the organisation. I created Jist as a pure Java implementation that required no setup beyond "java -jar".

This was achieved using the Spark Rest library atop Java 8 and a local SQlLite database. Although currently basic I'm hopeful to add functionality over the coming months.

Java 8
SQLite
REST
HTML5

Core Java Interview Questions

http://www.corejavainterviewquestions.com

Core Java Interview Questions (CJIQ) is my niche blog specifically targetting people looking for help with their job hunts. Most information on the internet is poor and scattered around, and I wanted to create a one stop shop for people with information to study and example questions.

On top of the website I created a podcast which featured in the iTunes chart, along with my book Java Interview Bootcamp

Core Java
Wordpress

Resume

HSBC HK

Senior Development Specialist
August 2011 - July 2015

Lead developer and development manager on a number of teams, including the bank’s Foreign Exchange Credit Engine (GCE), Back End Position Management Service (PS) and Trader Desktop Spot Viewer Position Management tool (SV).

  • Managed teams of 3-7 people with regularly changing personnel.
  • Designed and implemented system centred around Event Sourcing. Highly Available, scalable system capable of handling >1000 credit checks per second. No database, using file based journals. Data feeds from IBMMQ and Informatica 29West as well as flat file, with inter component HTTP communication. APIs exposed via JSON.
  • Implemented security improvements such as application authentication and authorization and HTTP Securitization
  • Introduced and drove adoption of Test Driven Development and paired programming, agile techniques and continuous integration on the project and the wider FX Community
  • Promoted from to VP equivalent in early 2013
  • Won the “Enterprise Engineer Ambassador” award after taking part in the banks inaugural E2 course, including leading an investigation into the banks algorithmic trading systems after the Knight Capital algorithm failure.
  • Pioneered and drove adoption of agile methodologies and the use of industry standard software such as Atlassian throughout the department, resulting in stronger and more regular deliveries
  • Created the “Developer Alliance”, hands on demos/talks by developers for developers, as a method of aiding local upskilling. Ran several sessions on topics such as hands on TDD and intro to NOSQL
  • Introduced “Fedex” hack days to encourage innovation to great success, running and participating in several sessions, including developing a code coverage board tool for teamcity, an HTML5 NFT dashboard and a Relationship Manager iOS application.
  • Co-ran the Asia branch of the HSBC developer community, "TechForum".

Java
TDD
Dev Lead
Event Sourcing
Architecture

HSBC UK

Senior Developer
April 2010 - August 2011

Designed and implemented core transport infrastructure for use in Front Office FX, based on Java, JMS, Protobufs and Websockets using Kaazing, with deep use of Spring, including Spring Security.

  • Sole developer, iteratively developed the comms stack and APIs for both Java and Flex.
  • Stateless java stack allowing for horizontal scaling
  • Service discovery using annotation and Spring classpath scanning, allowing for completely isolated development between distributed teams and aggregated later
  • RPC messages sent as Google Protobufs over ActiveMQ
  • System explicitly designed for RPC and standard use cases: Single and multi client streaming with and without state of the world
  • Security integrated with LDAP into active directory, along with an internal roles/permissioning system enacted using Spring Security
  • Framework now used across a number of cross asset projects in the bank with billions of dollars of flow transacted monthly

Java
TDD
ActiveMQ
Kaazing/Websockets
Spring

Morgan Stanley

Analyst Developer
August 2008 - April 2010

  • Graduated from intense 15 week grad scheme, 6 based in New York, including intense training on Java, C#, C++, Perl and OODB
  • Trained on the job as a Flex developer on largest Flex codebase in the world at the time, Morgan Stanley Matrix
  • One of the few permanent employees on a contractor heavy development staff of over 100.
  • Worked on a number of cross asset sections, including FX, Bonds, Research & Historical charting, gaining a wide range of experience cross asset class.

Flex
Agile
Java
C#

BSc (Hons) Computing Science with Industrial Experience

University of Manchester. First Class
2008

Graduate Prospects

Junior Web Developer
2007-8

Year in Industry placement at industry leading student careers advice website. Web Java development using JSP. Introduced version control (CVS) and automated deployment to the firm.

Java
JSP
CVS
Web Development

A2 Level

I.T. (A), Chemistry (A), Biology (A), AS Level Maths (A)
2004