################################################################
# CV.README - By Joe Nelson, updated 25 Mar 2023
################################################################
# Software Engineer
################################################################

2023_03 Software Engineer at CvPartner (www.cvpartner.com)
2021_02 Legacy monolithic Rails app. Changing the mongo document store for an event-sourced postgres database, refactoring the js frontend to typescript, adding new features. Multilingual system. AWS and k8s.

2020_11 Developer at KoruKids (www.korukids.co.uk)
2020_01 Heroku, Rails, React. Worked in mixed squad of developers, designer and domain expert. Refactored to remove technical debt and meet new requirements, and worked on new features. Successive covid19 lockdowns led to staff size reduction.

2019_12 Full stack developer at bluespot (www.bluespot.io)
2018_01 Agency worked for several clients, creating Heroku Rails apps, with Postgresql and React/erb frontends. Talked with clients directly using domain driven design to elicit requirements, weekly agile sprints. Some pairing, all TDD. Heroku.

2017_12 Software Engineer at OnApp (www.onapp.com)
2012_09 Working on a TDD tested Rails web application with a synchronous MySQL cluster, sidekiq workers, lots of APIs and fairly big data. Day to day I added and modified features, fixed bugs, improved performance, and did Linux system administration. Deployed to hosted VMs

2012_06 2:1 Honors in Computer Science at the University of Sheffield
2009_09 Sheffield University Officer Training Corps (job, leadership skills). Duke of Edinburgh award (Bronze, Silver, Gold).

################################################################
# Technologies, Skills
################################################################

Ruby on Rails/rspec # proficient
js/ts/react         # mediocre, would like to improve
html/css/scss/BEM   # fairly proficient
sql/psql            # fairly proficient
devops/unix/aws/k8s # mediocre, working on improving currently

# proficient skills
git
refactoring
requirements elicitation
DDD (Domain Driven Design)
TDD

################################################################
# Problem solving approach
################################################################

Elicit requirements and check domain expectation of client. Investigate codebase alignment with domain and consider the codebase and the task from multiple perspectives; DDD, performance, and future plans of the business and the technical team. This generates a concise bullet point list of steps. Share this with team; this gives the team a heads-up on what changes they will eventually need to be rebasing/building on, and an opportunity to spot any issues, alternative approaches, or missed considerations. Pair at issues (technical with a dev, UX with a designer). Non-brittle, small-world tests. Each commit achieves one thing, making it easier to PR review (commit by commit) and later determine why changes were made. PR review. Ideally test on staging by client, with suitable test data prepared.

################################################################
# Hobbies
################################################################

Replaced by kids