Mateusz Kimont - Principal Full-Stack Engineer

Mateusz Kimont

Principal Full-Stack Engineer


Home
⇓

PHP Skills


Basics

PHP language reference
Client and Server architecture, (Protocols, DNS, Ajax)
XML, SQL, CRUD, OOP, MVC, REST, AJAX
Composer, PSR standards


Frameworks

Symfony, Laravel, CodeIgniter, Lumen, SlimPHP, CraftCMS, Wordpress, Joomla, Magento, Laminas, Zend, bespoken php system


Laravel / Symfony

REST API (Headless)
ORM
CLI
Blade Templates
Validation
Authentication
Authorization
Sessions
Caching
Queues
Events
Listeners
Mail
Notifications
Scheduling


Wordpress

Creating custom themes
Creating custom plugins
Rest Api (Headless)
WP-CLI
Wordpress as Service
ACF
Custom Fields
Woocommerce
Open LiteSpeed
CDN integration
Security, optimalization and caching


Object-oriented programming (OOP)

Design patterns
Dependency inversion and Dependency injection
KISS, SOLID, Clean Code (Robert Cecil Martin have printed ver)
OOP vs FE


Databases

Data structures, architecture, managment system
Relational (MySQL) and no relational (Mongo)
Database normalization, indexing, caching, troubleshooting Usage of different ORM ex. Doctrin with lazy loading
Patterns Active Record (small) vs Datamappers (corpo)
Mysql Router

Security

Headers: HTTP CORS + CSP + HTST
OWASP and juice shop
General security best practice

Caching

Caching Headers
Mysql + Doctrine 1nd Level and 2nd Level
Redis (Reddis Pattern, Sessions in redis), Redis pitfalls
Memcached and memcachePHP
Symfony caching
CDNs, Load Balancing, DB2Json


Testing and standards

PHPUnit I am aware that PHPUnit testing coverage is crucial but it is such a pain ;(
Code sniffers, Static Code Analyzer Tools (PHPStan, PHPCSFixer, Psalm, Rector, ...)
PSR standards
declare (strict_types=1)


Composer:

Helpers League helpers Flysystem, CommonMark, Plates, CS, Flysystem-Aws-S3-V3

Data related
Rest

Misc

PHP type comparison tables (gettype() empty() is_null() isset() bool : if($x))
xdebug
RabbitMQ
Generators, Iterators