Uses
A somewhat comprehensive list of tools, apps, software, hardware, and more that I use on a daily basis to get shit done. Over periods of time, people grow their own unique taste in tech and here's mine; so please take it with a grain of salt. And yeah, that is Johnny Mnemonic in the background.
Development
- I use JetBrains IDEs as my preferred editor, with Material Theme UI and Atom Material Icons plugin; and Operator Mono as my typeface of choice.
- I use both Fedora and macOS on a daily basis because I love aesthetics of macOS and freedom of Linux.
- Chrome is my main browser for both development and general use. But I make sure my code is running smoothly on both WebKit(Safari) and Gecko(Firefox). Believe me you need to check your site on iOS Safari. I've seen surprising bugs related to scroll areas and CSS display property behaving differently in Safari!
- React is my front end Javascript
libraryframework of choice. I write my components in Typescript because of it's type(surprise) system, generics and assistance in code readability and maintenance. Since I learnt it back in 2015, I've never looked back again because of it's reactive state model, components concept and lately; it's hook mental model which all are really empowering. Before React, I've used KnockoutJS, BackboneJs and of course JQuery! I might try another framework in the future; the most prominent one under my radar; Svelte. (Sorry Angular, Vue) - I also tend to use Next.js on top of React because of SSR needs(maybe until React server components are a thing) and data flows. I've also come to have a resistant feeling towards Redux (after many years using it); my preferred alternative is React Query combined with React's own states, effects and contexts! I might also give Remix a try in the near future because it seems to have a cleaner data flow approach!
- After using bare metal VPS servers for years, configuring Linux servers(CentOS), setting up firewalls, systemd, redis, mysql, etc. on the server and running services inside Docker and Docker Compose; I've decided to put all my eggs in AWS and never think of infrastructure maintenance again. (Yeah shut up and take my money) I'm now a servile of AWS and services like Lambda, Amplify, AppSync, API Gateways, DynamoDB, RDS, Cognito, VPC, SQS, SNS, SES, S3 and others!
- I use PHP and Node.js for backend development. I still love Laravel for it's simplicity and ease of use; and would use it if I wanted to implement a monolith application (which is a good choice for MVPs in my opinion) but these days I prefer Express.js/NestJS applications deployed as lambda functions . Also I love to learn about Go, which I think will be my next programming language.
- I've developed native Android applications with Java many years ago. After using React for a few years, I gave React Native a try but didn't like it because of many reasons (UI element not looking native, let alone being 3rd party packages, not having a suitable routing system as opposed to react-router on web and not feeling native to me overall) so gave Flutter a try and fell in L❤️VE with it. I love Dart and Flutter for so many reasons and also because it is platform adaptive and able to run on almost all the platforms. And of course it is performant and 60fps because of Flutter's performant engine and Skia! (I'm looking at you Hermes)
- I've also got my hand on three.js for some time now. I'm really a noob at shaders but still learning about three.js lights, geometries, materials, ray caster, etc. Three.js combined with React components and hooks (e.g. useFrame, useCanon) creates a powerful foundation for 3D scene rendering. (Think metaverse)
- I use Cypress for e2e testing, React testing library and Jest for unit and integration tests.
- For CSS I’ve used a myriad pre-processors (Sass, Less, PostCSS, CSS modules, etc.), utilities (tailwind, bootstrap,...), component libraries (material ui, chakra-ui, semantic ui) and css-in-js solutions (JSS, emotion, styled components) These days I like to use styled components wherever possible and tailwind for a quick up and running.
Design
- I get designs in Figma and that's my preferred vector / prototyping software.
- I use Storybook for building components in isolation.
- For animating stuff on front end, I use Framer motion and LottieFiles.
Hardware
Monitor | 2 * Full HD IPS LED Monitor 60hz LG 22MP58VQ |
---|---|
Keyboard | Philips keyboard |
Mouse | Apple Magic Mouse |
Laptop | Macbook Pro 13″ (2020 M1) |
Headphones | Sony WH-1000XM4 |
Microphone | Blue Yeti |