Meet Michael, Software Engineer 2.
Switching from PHP to Java has helped me grow as a developer.
Being introduced to the Java ecosystem when I joined Capital One as a Software Development Engineer in 2018 has really allowed me to grow as a developer.
There are some very powerful IDEs for PHP, but due to PHP’s type system they can only do so much. Java IDEs on the other hand are unbelievably powerful and intelligent. I’ve also found the TDD red-green-refactor workflow very easy to adapt to because I can use the IDE to quickly run/rerun tests with almost no setup or overhead.
Testing here has changed how I write code for the better.
The prevalence of thorough testing at Capital One has influenced me so much so that I’ve completely changed how I write code. I now use test driven development (TDD). It’s something I’d never done before and a change from the more traditional ‘code first, test later’ development process I was used to.
The Quality Engineers in my team have really influenced the approach I take to testing. I used to view 100% unit test coverage as some kind of Holy Grail – the best case scenario, reflecting a ‘perfect’ test suite. Since learning techniques such as TDD and mutation testing, I realise the flaws in my previous perspective. Test suite effectiveness is far more nuanced and subtle than simple line coverage.
Overall it’s been great to learn more about automated testing. And not just unit testing, but integration tests and acceptance tests too. My team are very passionate about high quality code and extensive automated testing and I feel this aligns well with my values as a developer.
I’ve moved us from monolithic architecture to microservices.
I’ve enjoyed working on the backend services for our credit scoring and credit report tool, CreditWise. I’ve focused on extracting functionality from existing monolith services and moving it to a more microservice-based architecture.
Being part of the team striving for automation has been very exciting. All of our codebases have one-step build and test pipelines, which can function locally as well as on a continuous integration server. It can be very easy for a software build process to find itself in a difficult situation with manual build/test processes and shell scripts. I find it admirable that so much effort has gone into making this process as easy as possible.
Collaboration rules and it’s easy here.
When I decided to move on from my last role I had a clear picture in my mind of the kind of development team I wanted to join: passionate, like-minded individuals who want to build quality software of which we can be proud.
You’re well equipped to do your job with excellent hardware and software. This kind of thing is often overlooked, but it’s something I really appreciate. It’s really made collaboration easier.
Capital One is a company that takes technology and development seriously and is constantly seeking improvement. There’s definitely a passion for it, which is strongly embedded through the company at all levels.