Things I can do
Development
-
Application and script development
I create applications and scripts with Python and C++. Currently I use Qt to create graphical interfaces. It can be a script to process some data, to automate a task, to mine some data (such as web scraping), or it can be a console or graphical desktop program with relevant functionality. See some examples on Quicknode or Github.
-
Port form older Django to newer
I port websites built on older Django versions and/or with old Python versions, to newer Django and newer Python versions. One example of such work of mine is Wirelayer.
-
Port from Python 2 to Python 3
I port applications or websites from Python 2 to Python 3. One such example is Wirelayer.
-
Scientific computing algorithms
To solve a system of differential equations, a linear system, implement some iterative methods, a tricky matrix storage scheme for sparse matrices, or some other scientific computing application(s), as well as to make their visualizations, scentific Python (with Numpy, Scipy, Matplotlib, etc.), as well as C and C++, Paraview, gnuplot, etc. can be used. Matlab or Fortran can also be an option. Please read through a publication that I co-authored with my prof when I was an MSc Mathematics student.
Deployment
-
Webserver deployment on Linux or Windows
I deploy Python / Django and PHP-based webservers on Linux or Windows servers. I use such servers as Gunicorn, Apache, nginx (including its reverse proxy functionality). In particular, it is convenient to use systemd on Linux for controling socket and service instances of your website. This allows you to restart your website with a command like
sudo systemctl restart your_website
, while hosting multiple websites on the same hosting instance. For some examples, I deployed all of the websites found at Quicknode. -
WordPress setup, customization and deployment
I setup and thoroughly customize WordPress blogs and websites, as well as deploy them on servers with Apache and nginx.
-
Website deployment scripts
I write Bash scripts for semi-automatic deployment of websites on Linux servers. Example.
-
Installation of SSL certificates
This task is about obtaining and installing SSL certificates, including free SSL-certificates that are also automatically renewable.
-
VPN server creation
I create private VPN tunnels, which used such protocols as PPTP (not recommended), L2TP, IPSec, OpenVPN, among others, from scratch.
-
Mail server or cloud based mail delivery
Setup and configuration of a personal or business mail server, such as the classic combination of Postfix + Dovecot. Another option is to integrate SendGrid or Mailgun, which are powerful cloud-based solutions for handling of small or large amounts of e-mails.
System administration
-
Automation of server tasks
A repeating server job can be automated to avoid wasting time and reduce your overhead. On Linux, this is done with the aid of such tools and technologies as cron, Bash and Python scripting, and systemd. On Windows, there is, for example, Power Shell, and Python scripting can also be used, as well as scheduling.
-
Automatic backup systems for servers
A scheduled automatic backup system on a Linux or Windows server or cloud.
-
Server updates
A Linux or Windows server can be configured from scratch, and they need to be updated from time to time. That includes the operating system and many important packages, depending on a server role.
-
System monitoring
Persistent system monitoring via tools like Zabbix to ensure system stability, integrity and performance.
-
DNS server setup
I setup and adjust DNS servers and their zones on Linux (such as Bind) or Windows Server.
Troubleshooting
-
Troubleshooting websites, applications and scripts
If there is an issue with a Python / Django or PHP website, a Python or Bash script doesn't function as expected, or a Python or C / C++ application is not working as required, debugging can help.
-
Troubleshoot servers and workstations
Intruments for remote desktop access can be used to facilitate this process. It can be a software, hardware or network problem that needs to be diagnozed and treated.
-
Data recovery
Data recovery from magnetic media (such as HDDs), as well as solid state media (such as SSDs) is possible. The success rate is less for SSDs due to the nature of these media. It is best, however, to have a reliable, multi-layered backup solution.