Thomas Cook Blog
I’ve been a professional software developer for over a decade now. Primarily focussed on Android development, I have worked on several very interesting applications and have had to apply myself to learn not only the framework itself but several challenging and unique business problems.
It’s been quite a journey and I feel like I’m ready to start actually documenting what I’ve learned in the vain hope that perhaps someone else will be able to learn something from what I’ve done.
Outside of Android, I also do quite a bit of “hobby” programming, such as this blog, but also including learning Haskell, implementing neural networks from scratch, implementing genetic algorithms and other “AI” systems, creating various simulations, random throwaway games and websites.
I’d say I’m fairly proficient in the following:
- Javascript/Typescript
- I don’t know any web frameworks for these though, my hobbying with these langauges has been limited to creating in browser simulations using p5.js as well as creating AI systems for Screeps which is a programming MMO where you pit your AI against other human players AIs in a real time strategy environment
- HTML/CSS
- My first job out of uni was full stack web dev, so I did some HTML and CSS there (.NET MVC/ASP, SoapUI, WSDL etc) I really didn’t like it at all, which is what drove me to Android development
- SQL/NoSQl databases
- Hard to make any modern production software without a database!
- GraphQL
- At Lush our backend is primarily using GraphQL so I’ve become accustomed to consuming GQL API’s. It’s pretty dope, not gonna lie
- Git
- Yep, it’s git lol
- Java/Kotlin
- I’m most proficient with these 2 languages, I can write either, and in fact they are completely interoperable. Try telling recruiters that though… oh well
- C/CPP
- I’ve dabbled in these for “fun”, I wouldn’t go an apply for a job where I’m required to be an expert though, this rabbit hole is DEEP
- Haskell
- When I went through my pure functional phase… my guilty pleasure, Haskell is just cool and gives you bragging rights if you know it, but not sure I’d ever wanna use it for production code
Anyway, here’s some articles about things I’ve done over my tenure as a software developer (non exhaustive obviously, I will add more as and when I can be bothered):