Progamming, CI/CD, Admin
Soft skills are as important as tech skills, especially in such a middle role that is DevOps. Being effective DevOps means to put on different roles every day, working with people in synergy, helping them and/or asking for their input when it's necessary.
It's also important to share the expertise between the members of the team. This is achieved through demos, one to one mentoring, interactive work on tasks where the shared expertise is required, documenting and presenting know-hows.
Terraform, Pulumi, CloudFormation, SparkleFormation, stack_master, Bash, Python, Ansible, Vagrant
EC2, ECS, EKS, S3, RDS, SQS, SNS, ELB, CLB, ASG, SG, ECR. ~ Architect associate.
~RHCSA, ~CCNA, HDFS, Nginx, Apache, Tomcat, NFS, SMB, firewalld, Networking, dmesg, yum, apt, GCC, gdb, grub etc.
Windows Server, AD, LDAP, SMB, Workgroups, RegEdit, diskmgtm.msc, RDP, powershell etc.
Administration, user management, yaml specs, java specs, runners, repo management, stages, jobs, troubleshooting, bash etc.
runners, .gitlabci.yml pipelines, repo management, administration, deployment, secret management, administration, troubleshooting
workflow, runners, troubleshooting
boto3, telethon, core python, async, flask, django, consul lib, sqlite, matplotlib etc.
RegExp, aws, sed, GNU utils, pipe, stdin/out, nano/vim, options etc.
Vagrant, gems, ruby on rails, sparkleformation dsl, jekyll
Cargo, rocket, core
Mariadb/mysql, Postgresql, Sharding, Write ahead log, replicas, MongoDB, Percona, Vitess, Schema normalizations
Spring, Hibernate, Java Core, Kotlin, javac, jre, jdk, Android SDK, Maven, Gradle, adb
Nodejs, Expressjs, Reactjs, Vuejs, Koajs, strapi, threejs
bootstrap4/5, foundation, less, sass, vanilla-css, html5
Tinkering with tech
Giving outdated off-the shelf components a new life.
nodejs, expressjs, bootstrap5, ejs, docker
node, express, koa, react, postgres, docker
nodejs, expressjs, jquery, PHP, EC2 free tier
Vagrant, libvirt/virtualbox, bash, kubeadm, helm, istio
centos7, centos8, ubu18, ubu20 installation and configuration branches, shared-files branch with vagrant and docker files
Commercial experience
Our team was testing the functionality of linux distro, so essentialy we were Linux (RedHat) system administrators that had to test all the functionality that is used by sysadmins at the telecom and hosting companies. I dealt with:
While working at my current job as a SDET I was learning other stuff like web app, front-end, backend development - Nodejs, Jquery a bit of php. I was developing pet projects in my freetime.
The stuff I was working with:
Career, education
Ever since high school I considered myself being more of a tech guy. I used to read journals on hacking and gaming, played mmorpgs, I built my home network, assembled PCs, tinkered with backtrack (kali) linux, tried hacking wifi networks etc... For that reason I majored in CS back in the college.
After College I wasn't sure what I wanna do, I had no idea of how things work under the hood and how does the industry function. Even though I have had courses like OS, Architecture, OOP, Mobile devlopment and database courses, php, java, I did not see the big picture... I figured that since I liked linux in highschool I'd stick to that as a core value.
I was reading through Tanenbaum's books, OS, Networks etc and I figured Samsung would be best fit for me at the time. I mean, android's practically linux, right? Also Samsung looks fine on the resume as a first job. They hired me for my fluent english and an interest in technology.
It was fun time but not very fulfilling profession-wise. Nearest I got to command line is when I was tinkering with monkeyrunner and adb to play with configs for some side project my mentor had.
While working there I continued self-study, I was reading through articles and everything that I could put my hands on: Ruby on Rails was the hot thing at the time so I was trying to get good at that. Learned about ORM, Active Records, scaffilding and other concepts but did not go past that. I did not understand how RoR works because it was so high level. I felt anxiety whenever I was using it, all the stacktraces and stuff were really scary and stackoverflow wasn't as big as it is now, so you had to troubleshoot every step and try everything that comes to mind. So I kept learning, re-learning stuff they were feeding me in College but with my own spin on it. I worked at Samsung for 8 months and then went to another company to work on a web project thinking that it will become clearer on how the industry works.
I went to work as an outsource employee for Sberbank. The job looked interesting at first but the atmosphere and bureaucracy took all the fun out of it. They were developing online banking web app 'sberbank-online' and it was a quite interesting porduct, however I felt like I am in a wrong place. I worked there for 3 months and then bailed to study properly and to find more fulfilling job.
So I was learning the tech jargon and OOP and classes and what not, I mean re-learning the stuff I had in College, when I got an invitation to the AMarkets Forex company. They gave us some tests and asked us for some theory questions, typical questions that you hear on a entry-level interview, like what is OOP, why it exists, what are the three principles. So I passed that with flying flags but when the internship itself actually started I figured that I don't know a thing. And they weren't that good at teaching either. We had a group of interns that were taught RoR development by a sys-admin. And the anxiety also kicked in. So I figured I am doing something wrong and bailed yet again. Went home and studied some more. Played some dota and studied some :) Tanenbaum still was on me, Linux API Programming Kerrisk, some Kernighan and Ritchie. Linux System administration. Some python too, bash. Free online courses and materials etc.
Once I saw a job openning for Junior SDET at Virtuozzo, a company that develops it's own linux distro called Virtuzzo. They even had their own container technology OpenVZ. I thought they won't hire me but I thought it's worth the shot. I was reading and learning as much as I could about everything, so when I came to the job interview and saw these guys my heart rate jumped and I was rumbling like crazy. I was talking nonsense about virtual memory and paging and MBRs and harddrives, block devices etc. I said that I am reading tanenbaums books and the guy asked what exactly did I like it in these books. I found nothing better than to say I like everything. I felt like that interview was a disaster but they still hired me.
It all was fine and dandy but I guess I am a rather greedy person as to the technologies and skills. While I was working on my main tasks me and my friends were tinkering with ethereum network, eth mining. Also I was getting into nodejs, it looked like a cool iteration of web framework after RoR. It had cool stuff with packaging and scaffolding from RoR but also introduced some if it's own perks.
Going to Virtuozzo I figured I will be able to get rid of my anxiety and get to know all the nuts and bolts under the hood, on low level. I wasn't wrong, I got what I wanted. I worked there for 1,5yrs and even though I wouldn't be able to write my own kernel in C, I got comfortable going up and down the stack investigating what went wrong. Some cool DevOps guys showed me how I could look into specifics of python, looking around CPython or going all around the libraries that a program uses and specific implementation of some method that uses specific syscalls.
I also re-learned the computer architecture with NandToTetris course.
So after I got bored at Virtuozzo I figured I wanna go even more low-level. Once again they offered me salary at this new place. Now I was working as a Senior SDET developing a strategy for testing of a in-house built NVMe SSD block device that had ARM chips in it and was handling writes and reads of memory chips.
Once again I found myself in a situation like the one I was before, at Sberbank. The environment was rather unpleasant for me. Topping the fact that they started postponment with the salary payments the second month together with me realizing that I don't wanna do QA at all anymore I resigned.
I decided to take some time off again and get into DevOpsy stuff more thoroughly. By the time I was quite fluent with python, react, nodejs, kubernetes, vagrant and also had some minor experience with AWS EC2. I figured I'll give it a shot. The tipping point was when I came to a job interview for a Senior SDET in a small open-space packed with people and rather unpleasant lady told me that I had no chance finding DevOps job cuz I had no formal experience before, it's when I thought to myself "We'll have to see about that!".
So once again I found some cool job opening that I thought I would have no chances getting into but guys were so happy with my linux and python skills that even though I had no previous experience working as a "DevOps engineer" they hired me as a regular (middle) DevOps. No x2 salary this time thought, but it was fine. I'm not in it only for the money, strictly speaking, rather I like to be on the cutting edge.
I was on a team of people working on a microservice. Java developers, analysts, QA, PM etc. It was a quite simple microservice that required an RDS, S3 bucket, some SGs and API endpoint. I was an so-called "Embedded DevOps", meaning we had a core team that was developing core framework, typically consisting of bash/python wrapper code around terraform modules that would parametrize an environment, create EC2 instances and deploy Rancher1.6 Cattle there along with secondary tools like Consul, S3 buckets etc. I would also have my own wrapper around terraform that would deploy Java app and create app-specific aws resources.
I worked there for over a year and figured it's time to move on to something more fun. I wanted to get into Core Team but things weren't exactly the way I wanted over there. I didn't like the idea of me supporting legacy ec2-based infra framework, I liked k8s way more. So I started looking for some options. Also, we had our differences with my manager which we tried to solve a couple of times, however it did not work. So I was burned out mostly by the corporate stuff. That's when guys from CustomerTimes approached me.
At CustomerTimes, as discussed with the hiring manager, I was working on the core multicloud k8s-based infrastructure that we planned to reuse for the clients of our company. I had implemented and finetuned some terraform modules for k8s like ECR, EKS, S3, state storage, app-specific stuff, gitlabci pipeline that would test our terraform modules for aws, helped junior devops with module implementations for azure cloud, advised on the cloud architecture. Held tech talks with a demo for my bare-metal kubernetes home-lab for which I got some positive feedback.
However by the end of the third month another engineer, that was working with one of the biggest clients the company, had left the company. So they needed someone to put in his place so they decided to put me as the most experienced engineer in their team at the time. They were hosting SAP Hybris using just bare EC2 instances, the solutions were unreliable. I started working towards makeing things better. They were using NFS servers installed to EC2 instances along with hybris and solr. The development servers would periodically go down due to memory leaks, developers would break things and blame devops. It wasn't something I expected when I went to work there. I tried to fix things beginning from communications inbetween the teams, ending with creating epics and giving tasks to the devops team lead, it was bizzare. They even forgot to match the offered salary after first 3 months of work (probation period). I quickly burned out and figured that there's no point continuing. I blame the management.
After that experience at CT I figured that I want to work with the US but I was hesitant to start the indiviual interpreneurship, hence I found a company that resels people to the west and they made me offer x2 previous salary. They said that I would have to work on one project first but then another one might be added if I do good.
So after 2 weeks on one of the projects in the US based company, people-wise, I felt like I belong there. One of the engineers even said that it feels like I am from somewhere in Texas rather than in Russia. It was fun and the tasks were fine, a lot of legacy stuff though, like meteorjs, LAMP stacks and whatnot. I was quite happy working at that startup when came news from my Russia-based employer. They wanted me to work on two different companies with different stacks, holding daily meetings at the same time, so I would have to talk to two teams of engineers everyday simultaniously and supporting two projects. That would've meant almost 12-15 hrs of works daily which I figured would be too stressful and unproductive, toppling the fact that I would have to lie to the people I work with.