Jack of all trades,
master of some

Below is a list of technologies I work with professionally, followed by some thoughts on software and general principles that I follow
React
React
TypeScript
TypeScript
React Native
React Native
Node
Node
Tvit logo
.NET Core
Aven logo
Elixir
Utosia logo
LabVIEW

FAQ

I take pride in being pragmatic and whilst I don't enforce my world-view onto others, I do hold opinions about my craft. The following should hopefully help you build a better picture about me.
These days I default to the functional paradigm whenever possible. Testing immutable and side-effect-free code is refreshing. The declarative and composable nature helps me write simpler, more elegant and robust components. I believe OOP and SOLID concepts still have value and merit, especially when the problem domain is well understood beforehand.
Unix over Windows. It's one of very few things I'm strongly opinionated about, although I'm yet to try WSL. Gadget-wise my setup is fairly vanilla - I use a MacBook Pro, dual monitors, a mechanical keyboard and a pair of noise cancelling headphones. Over last few years I've adopted a VS Code + VIM bindings setup, which I found makes me very productive. I default to CLI interfaces for most other common dev tooling (git, zsh, fzf, tmux, etc).
Tests go first. During development, tests always run in the background for tight feedback loops. Tests should cover behaviour, not implementation. The less you mock, the better are your tests. All sounds like common sense, yet surprisingly often overlooked principles.
Irrelevant, as long as it's consistent. Agreed standards should be enforced through automatic formatting and liting rules (ideally through IDE/Editor, pre-commit hooks and CI).
I keep up-to-date with OWASP Top Ten every year and generally try to follow common sense when developing (i.e. never trust the client, principle of least privilege, etc). Luckily, my better half is an Ethical Hacker, so she keeps me fairly grounded when it comes to these things.
I find full-stack teams are harder to hire-for, but easier to manage and work-in. I've been fortunate enough to have worked with some truly talented full-stack engineers, with an eye for design and a technical/analytical mindset. These people exist, just not in abudance. I often sway towards the front-end and client-side development, but have equally designed scalable, performant and production-grade systems on the backend and found it just as interesting.
Agile prescribes focusing on people over processes and responding to change. From what I have seen, in practise Kanban makes those principles easier to follow, but only if the business can afford not having to project months in advance. Scrum is naturally more loved by planners which is not wrong on it's own, however I've seen it being optimised for the wrong metrics. Saying that, when done right I haven't worked in a more productive framework than Scrum.
Look like someone you would enjoy working with? Get in touch
Icon