HR mode
Techie mode

Frontend

  • Javascript
    🔥

    My primary language

    ⚙Use: every day
    Learned:
    • ES5-ES Next
    • async code and promises
    • DOM manipulations
    • prototypes and classes
    • major things about debugging in Chrome dev tools
    • regular expressions
    • Websockets and server-sent events
  • Typescript
    🔥

    Types help prevent a mess in our projects

    ⚙Use: often
    Learned:
    • work with React
    • interfaces, types, enums
    • configuring TS
    • `noImplicitAny: true` :)
    • generics
  • React
    🔥

    My primary frontend library. Love it and will keep learning all new features

    ⚙Use: often
    Learned:
    • hooks
    • context
    • redux
    • redux toolkit
    • redux saga
    • redux thunk
    • integration testing
  • Next.js

    Interesting solution for server-side rendering and static site generation

    ⚙Use: rarely
    Learned:
    • automatic static optimisation
    • getInitialProps from server
    • extending Next.js with custom tools
  • Web performance

    Learned:
    • using Redis caching to improve performance
    • optimizing DB queries
    • optimizing CSS and HTML to improve app responsiveness
  • Styled Components

    A new trend in styling hated and loved by people. Interesting to adopt

    ⚙Use: from time to time
    Learned:
    • basic usage, adding props to components and styling based on props
    • theming the project based on Styled Components
  • Sass

    Use most of this preprocessor's features at work

    ⚙Use: almost every day
    Learned:
    • nesting
    • mixins, partials and placeholders
    • interpolation
  • Redux/Redux Toolkit/RTK Query

    Advanced React state management with Redux and related libs

    Learned:
    • Used RTK Query to optimize fetching and caching of data
    • Simplify complex UI interactions using Redux Saga
    • In simpler cases, used Redux Thunk to handle async actions
  • JS libraries

    Occasionally use some methods from libraries like Lodash and Ramda

    ⚙Use: sometimes, but prefer native ECMA where possible
    Learned:
    • the most popular Lodash utility functions (pity that many of them are mutative)
    • basic Ramda usage
    • touched RxJS a couple of times
  • HTML

    Good HTML is harder than we think :)

    ⚙Use: often
    Learned:
    • clean html markup
    • advanced html attributes
    • page optimizations for various browsers
  • CSS

    Comfortable with styling, "love" IE11/Safari

    ⚙Use: Not that often these days; I've lately focused more on the logic rather than styling
    Learned:
    • Mostly Flexbox and a bit of Grid
    • animations
    • BEM
    • CSS custom properties
    • mobile-first design
    • cross-browser styling (but hope you're dropping IE support)
    • Storybook
    • Popular CSS component libraries like Material UI, Bootstrap, Semantic UI, Ant Design

Backend

  • Nest.js

    A popular Node.js framework helping me organize code better and simplifying lots of routing tasks

    ⚙Use: increasingly often recently
    Learned:
    • how Nest works, simple controllers
    • providers, guards, pipes
    • Nest's approach to structuring the app
    • various recepies (how to use with Sequelize etc...)
  • Express.js

    Please, this is only a routing library, not a framework!

    ⚙Use: Often
    Learned:
    • wrote various APIs connecting to DBs and executing some business logic
    • middleware
    • clean architecture that separates business logic from infrastructure and frameworks
    • securing Express APIs
  • Node.js
    🔥

    My major backend technology, which I keep mastering every day

    ⚙Use: every day
    Learned:
    • got familiar with Node's major features and capabilities
    • wrote various APIs using Express.js
    • wrote advanced Node scripts using streams
    • backend unit-testing with Jest
    • tried basic microservice approaches
    • worked with Auth (Okta, Cognito, custom JWT, Passport, etc.)
  • Serverless Framework & AWS CDK

    It's a convenient choice if you need a simple API

    ⚙Use: often
    Learned:
    • Configuring Serverless with yml/ts files
    • Setting up Lambdas
    • using Sls plugins
    • deploying simple applications with Serverless
    • wrapping Express app into Serverless
  • GraphQL

    Learned:
    • basic GraphQL usage and principles: types, definitions, GraphiQL usage
    • Apollo Client and Apollo Server
  • Relational databases

    Know key concepts of relational databases, have Postgres experience

    ⚙Use: very often
    Learned:
    • Key concepts of relational DBs theory
    • Basic security considerations when writing SQL queries
    • Postgres and all major query types
    • Typeorm
    • Sequelize
    • Pure SQL when performance matters
    • Wrote some complex queries like window functions
    • Dbeaver
  • MongoDB / Mongoose basics

    Worked with Mongoose and learned simple Mongo queries

    ⚙Use: rarely
    Learned:
    • know MongoDB basic syntax, but haven't worked with it
    • familiar with Mongoose, used it on small projects
  • Web security

    Learned:
    • securing node.js backends
    • securing DB queries
    • using security headers
    • assess application's overall security
    • securely storing DB data
    • handling tokens and other sensitive data on frontend and backend

Dev Tools

  • Some AWS services

    Know major AWS services and might get an AWS certification in the coming year

    ⚙Use: every day
    Learned:
    • S3
    • CloudFront
    • Lambda
    • API Gateway
    • Route 53
    • CloudFormation
    • DynamoDB
    • IAM
  • ESLint, Prettier, linters

    Can set up JS/TS linting for projects

    ⚙Use: every time I set up a project
    Learned:
    • set up eslint config for JS, Typescript, React etc
    • set up Prettier for autmatic fixes
    • set up pre-commit hooks so code with warnings/errors does not get into prod
  • Git

    Comfortable with major CLI commands, work according to GitFlow

    ⚙Use: every day
    Learned:
    • merging, committing, branch management
    • follow commit etiquette
    • stashing, viewing diffs
    • comfortable using Github and its features
    • git submodules
    • rebasing, cherry-picking
    • basics of release management with Git
  • Webpack

    Can set up a simple / medium-sized app config

    ⚙Use: per project need
    Learned:
    • basic Webpack config
    • code splitting and other optimizations
    • management of dev and prod environment in configs
    • adding support for tools like Babel, Typescript
    • bundle size and structure analysis
  • Linux

    Can work with Linux terminal doing major dev operations

    ⚙Use: every day
    Learned:
    • navigating around system efficiently
    • managing files/folders, including creation, permissions etc...
    • managing linux processes, Cron jobs etc...
    • familiar with Bash language basics
  • Docker

    Modern way of deploying your applications

    ⚙Use: occasionally
    Learned:
    • container and image management
    • basic networking between containers
    • sshing into containers, exploring what's inside
    • writing simple-intermediate Dockerfiles
    • persisting data in volumes
    • working with docker-compose to set up multiple services
  • Package managers

    Worked with both npm and yarn

    ⚙Use: regularly, depending on tasks
    Learned:
    • managing packages
    • key fields in package.json
    • configuring yarn and npm via .rc files
    • Lerna fundamentals
    • basic monorepo knowledge
    • package publishing, dist tags
  • Testing

    Write unit tests using Jest

    ⚙Use: often
    Learned:
    • write unit tests for functions
    • mocking
    • unit testing Node.js backends
  • React Testing Library

    ⚙Use: occasionally
    Learned:
    • major queries
    • main principles of React integration testing
  • Nginx basics

    Can peform a simple nginx setup

    ⚙Use: rarely
    Learned:
    • serving assets
    • setting up redirects
    • set up simple proxy
    • gained some knowledge about how http works in general

Miscellaneous

  • Soft skills

    Transparency in team work, advanced Jira backlog management (requirements gathering, story linking, acceptance criteria, comments, fostering transparency in dev work), engineering hygiene (clean code, commit culture), architectural mindset, attention to details, fluent English, leadership skills. Comfortable with Scrum processes and remote work environment. Interested in conducting technical interviews and mentoring activities;

  • Requirements analysis

    On most of my projects I did task-making and description, adapted to both the business and developers. I also often split stories into subtasks, to give the business and the team better understanding about the real effort that is hiding behind each story

  • Leadership

    My latest projects showed I can be a good leader and driver of processes, lead a small team of developers and suggest useful improvements to team processes.

  • English
    🔥

    Advanced written and spoken English, everyday communication with customers

  • Jira backlog management

    Have worked with and did a basic setup of Jira and Pivotal Tracker. I value transparent and quality backlog management as it gives the team and businesses peace of mind and helps come up with better estimations. Win-win! I use Jira even for personal projects :)

Learning plans

  • Remix

    Exciting new framework that heavily uses web standards instead of inventing custom workarounds

  • DevOps tools

    I know the fundamentals of AWS CDK, Github Actions and Terraform, but there are plenty of other tools like Kubernetes that I would like to learn at least on a basic level

  • Solution architecture

    Building resilient applications with forward-looking architecture requires extensive knowledge, which is what I am going to work on in the coming years

  • React server side rendering

    Now that React offers Server Components it's really interesting to see which frameworks aside from Next.js will support them and how popular they will become

  • Progressive Web Applications

  • Application monitoring