Skills
I personally prefer to implement UI-related features manually instead of adding a new package to the project and bloating the application bundle size. However, if doing so takes too much time, then I would use the proper package and add it to the project. Nevertheless, I have hands-on experience with useful prevalent frameworks, libraries and tools used in both back-end and front-end application development.
Filters
TypeScript
full-stackI have gone deep into JavaScript internals. I understand the preference of TypeScript over JavaScript espcially in large scale applications as it plays a vital role in project development and developer experience, and also making projects more bug-proof. I can implement proper type declarations to make components and functions much easier to use.
Python
generalI have learned Python language because of my own curiosity and also to be able to communicate better with Python developers when working in a team.
React
front-endI have explored behind the scenes of React in order to understand components lifecycle and how hooks work. I can confidently use React hooks such as useContext, useEffect, useReducer, useTransition, useMemo and useCallback. I can also effectively design custom hooks to be used thourghout any project.
Next
front-endI have developed and maintained 5+ projects using the Next framework. I can confidently use Next App Router to utilize its server-side rendering (SSR) for performance improvements. I can also implement SEO-critical websites such as blogs and landing pages by creating and inserting json-ld SEO schemas (based on schema.org documents) in to the HTML document right from the server.
Svelte
front-endI learned Svelte because of my own curiosity since the framwork is famous for its output bundle size and performance. I have developed a practice portfolio project using SvelteKit and its SSR. I always look forward to learn new front-end frameworks.
Axios
full-stackI can efficiently use Axios and its interceptors to handle outgoing requests and incoming responses in both front-end and back-end applications.
Tanstack React Query
front-endI regularly use Tanstack React Query library to handle queries, mutations and caching in front-end applications.
Material UI (MUI)
front-endI have implemented multiple data-extensive front-end applications as admin panels using Material UI components.
Ant Design (AntD)
front-endI have 2 data-extensive front-end applications as admin panels using Ant design components.
Express
back-endI develop my backend applications using Node.js Express framework. Express is really flexible in terms of allowing the developer follow their own design and structure, in contrast to something like Nest which imposes a strict structure and design pattern to the developer.
Tailwind
front-endI can use Tailwind to quickly convert Figma designs into full-responsiveweb UIs with pretty fine precision. I never lose hand on writing pure CSS when required.
TipTap
front-endI have hands-on experience in implementing HTML editors using TipTap library and its various plugins which is extremely useful for admin panels of different businesses and blog applications.
Zustand
front-endI can use Zustand to handle complex state management applicaion-wide since it is kind of a mix of useReducer and useContext and it can simplify state-related jobs much easier.
React Hook Form
front-endI have used React Hook Form in almost all of the applications that I have been involved with. I can use it to implement and handle complex forms where the form flow might change based on user input.
Zod
full-stackI can confidently use Zod library to define schemas and use them invalidating inputs or any received data structure in both front-end and back-end applications. I can also integrate Zod into other libraries like React Hook Form where validation is involved as a crucial step.
React Router
front-endI can use React Router library to implement efficient and performant routing in front-end applications to make them more snappy and improving the sense of native applications while using them.
Open Layers Map
front-endI have hands-on experience in working with the Open Layers library to handle user interaction with Map components to receive their input coordinates and convert them into addresses using GeoCoding APIs.
Recharts
front-endI can use the library to visually represent huge application data in different chart forms which is pretty useful in admin panels.
Framer Motion
front-endI have used Framer Motion to implement simple UI animations for various UI components like modals, bottomsheets, popups, etc.
GSAP
front-endI can use GSAP to implement more complex UI animations since it provides access to a lot more configuration props compared to something like Framer Motion.
Three.js
front-endI am currently learning Three to be able to design and implement interactive 3D elements in front-end applications where interaction level is supposed to be much higher than regular websites and apps.
PostgreSQL
back-endI have used PostgreSQL database in 5+ projects and I can write raw SQL queries. I can implement database security measures such as creating different users with different levels of access and privileges.
Vitest
full-stackI can confidently use Vitest library to implement unit tests and integration tests in both front-end and back-end applications. I can also handle DOM-related tests where user interactions need to be simulated in order to be able to test application flows.
SQLite
back-endI have hands-on experience in using SQLite for some demo project in which a fully fledged database setup was not reuquired.
Drizzle ORM
back-endI can confidently use Drizzle ORM to handle database schema and data migrations.
Telegraf
back-endI have used the library to develop Telegram (and Bale) bots for my personal use.
Docker
deploymentI use Docker to deploy my freelance full-stack projects on remote servers. I can write efficient Dockerfile and can also implement docker-compose.yaml files. I can use Docker CLI commands to manage Docker images and containers.
Nginx
deploymentI learned Nginx and used it a few times, mostly in front-end application deployments when reverse proxying was required.