I have over a decade of experience writing enterprise grade content management software, software architecture planning and software engineering. My skillset is pretty wide, so I tend to break it up by level of expertise and involvement with real-life projects.
Feel free to contact me for consultancy/freelance work.
Most of my engineering skillset is geared towards providing development services for projects with high load and high availability constraints. On the front-end, the services typically fall under some kind of CMS system (CMS for a news website, CRM for a pharmacy group, CRM for a tourist agency, CRM for a call centre) and on the back-end it can range anywhere from scripting jobs, deployments and complex network services and APIs.
I have extensive experience in developing highly-available web services - front and back-end. They range from programming languages and a deep understanding of networking principles and protocols. I can pick up anything here and feel right at home.
- PHP - several large scale projects/codebases, open source projects too
- MySQL - strong DBA knowledge creating schema, indexing, optimisation, replication
- Go - wrote two books on the subject, several apps in production
- Bash - strong knowledge of bash scripting for cron jobs and similar
- LUA - strong knowledge of low-latency nginx/LUA API endpoint development
- Wowza - strong knowledge of plugin development, deep understanding of HTTP streaming
- Nginx - strong knowledge of configuration and caching principles for HTTP(S) delivery
- Docker - strong knowledge of building and using docker environments in production
- Redis - deep understanding of caching principles and Redis data types
- CSS: strong knowledge of HTML/CSS and LESS, BEM, several large scale projects
- Protocols: TCP, UDP, HTTP, Websocket (wrote my own implementation in PHP), SMTP,…
My expertise here can be described as “picking the right tool for the job”. In many cases, I leverage existing packages or frameworks to deliver a product or functionality for my clients.
- Node.js - API development with Express.js, chat bot for Discord, various tools
- Vue.js 2.x - several applications using the Vue.js framework
- Wordpress - Developed several back and front-end services (CMS, API)
- PostgreSQL - created database schema for several projects, used in production
- Swagger - documenting API schemas up to industry standards
- Databases: MSSQL, ORACLE - a MSCE certification for MSSQL and experience with both
- Embedded: Familiarity with hardware projects on RaspberryPI, GPIO, I2C
- SCSS - much like LESS, but I tend to pick LESS more often (same principles)
I have a familarity with many tools and programming languages which I picked up over the years. While I tend not to use them very often, I am fluent enough to pick up and create what needs to be done.
- Perl - back-end scripting, content crawlers, network services
- Silex/Slim - using and familiarity with creating API endpoints for one-off projects
- C/C++ - fluent enough to extend and modify existing software projects
- P2P/WebRTC - familiar with basic principles of in-browser P2P communication
- Angular 1.x - a few applications using Angular framework (one complex with routing)
These don’t really fit into programming competencies, but generally fit well together. After all, software has to run somewhere, doesn’t it?
- AWS - basic knowledge of S3 bucket management, EC2 instances, Auto-scaling groups, Route53 geo-dns
- Google - basic knowledge of Google Container engine, and principles,
- DigitalOcean - VPS with an orchestration api for hot-spot instances,
- Docker Swarm - on-premises orchestration for docker containers and scaling services
- Linux - Debian based distributions (Debian, Ubuntu, Raspbian), Alpine
- Windows - managing a Hyper-V cluster, Windows 10 Hyper-V service