I am very proficient in writing shell scripts, setting up, and maintaining an environment that can support continuous integration, creating complex deployment pipelines, that can support things such as webpack builds, database migrations, automated testing, and file transfers. From configuration management tools, I'm familiar with, and have written libraries for Ansible, and I have a projects running under Docker and Kubernetes in production. I can set up, and have managed quite a few servers, ranging from simple development environments, on-premise solutions, to virtual networks on Amazon AWS, Azure, and GCP. I believe that Kubernetes is a godsend, and every app should follow the 12 factor app guidelines. I'm a Linux junkie at heart, and I know the ecosystem and the tools around it well enough, to solve and automate most tasks. I have experience with monitoring/logging tools such as Zabbix, Kibana, and Logstash.
I'm a strong backend developer, having a lot of experience in PHP, Python and Node, and the various tools and libraries in their ecosystems, such as Composer, XDebug, virtualenv, and the major frameworks like Symfony4, Doctrine2, Flask, and Express. I have also written a small match-3 like game using PyGame, and worked a while as a Java developer. I have a SOLID grasp on object oriented programming, and I'm familiar with the usual best practices, and principles. I believe the best programming language at the moment is rust, and I would gladly work for any company that uses it.
I can turn your PSDs into HTML, CSS, and JS. I can create semantic, responsive, and valid markup, using popular libraries such as React, MobX, or Redux. I was a big fan of the Asynchronous Module Definition (RequireJS), but I now prefer CommonJS. I have experience in writing actual browser extensions for all the popular browsers. I have experience with various CSS pre/post processors, like postcss, and SASS. I think CSS modules are one of the best things to happen to CSS, and I have battled a lot with server side rendering. I really wish Webpack was easier to configure.
I am very fond of automated testing, be it testing isolated pieces of a system with unit tests, or whole end-to-end functional testing with Selenium. I have set up, and maintained Behat test suites as big as 1300 steps, configured Jenkins instances to run these tests, and report on various channels if things go wrong.
I run a technical blog, where I write about my experiences in software development, and other random things that interest me. I have done interviews for 4 years, recruited, and trained new colleagues. I have contributed bug reports, documentations, and code to a few open source projects, such as Doctrine2, Symfony2, and Alice. I know what the root of all evil is. I believe organizational skills beat algorithmic wizardry. I have done presentations on devops, kubernetes, and rust. My favorite interview question is "What is the best programming language, and why is it rust?"
Cloud architect baremetal kubernetes, kubespray, docker, microservices, jenkins2
I worked as a cloud developer for the Norwegian Food and Safety administration, helping them manage and upgrade their on-premise baremetal k8s setup, upgrading various infrastructure related services like Nexus, Jenkins, RabbitMQ, and Traefik. I have set up Ceph for persistent storage with the help of Rook, and set up automated security scanning with Trivy. I have migrated all of their applications away from the end of lifed helm2 to helm3, and have written a few helm charts both for internal applications, and for 3rd party services. I have also held a presentation about rust, and kubernetes.
Lead developer gcp, kubernetes, docker, nodejs, react, graphql, apollo, websockets
Lead developer on a productivity/organizational application. I helped to bring in the project that was initially outsourced to a foreign company, by building an inhouse development team. I have built the foundation of the next iteration of the application's backend and frontend, recruited new programmers, have set up automated testing and continous integration, and managed the infrastructure for deploying the application to GCP.
Full stack engineer gcp, kubernetes, docker, php, mobx, react, jenkins2, websockets, symfony3
First developer on a video recording, and event streaming solution, that uses its own external cameras to source the videos from. The infrastructure utilizes a multi cloud deployment, using kubernetes to orchestrate most of the running microservices. I have recruited, and built up the development team, designed the architecture for the services, and mentored new hires.
Full stack engineer nodejs, python, microservices, angular, browserify, ansible, express, php
I was maintaining a very large, legacy, e-learning application that has been on the market for 12+ years, while in parallel, refactoring it to a new, microservices based architecture. I have been part of writing the actual code for the services, setting up deployment pipelines, provisioning scripts, conducting code reviews, setting up various monitoring channels, writing tests, analyzing logs, and integrating third party services.
Lead developer, devops backbone, requirejs, grunt, php5.5, sass, symfony2, behat, phpunit, newrelic
I started as the sole developer on the project. I have recruited, and trained 3 other developers, and a designer along the way, and I have proudly built the whole infrastructure for an e-learning platform, that helped the client expand the presence of its language schools into the online territory, and to make deals with the local universities. The project is developed on the as-of stable PHP 5.5, using Symfony2 as the framework. On the frontend we used SASS for stylesheets, RequireJS for seperating our Backbone based JS modules, and used Grunt for fast recompilation. The quality is ensured by having about 80% of the application covered with functional tests.
Mentor, developer jquery, yui3, prototype, doctrine2, bash, php, js
I started out as a developer for a marketing, and news agency. Strict, sometimes impossible deadlines made it hard to deliver quality code, and focus was instead shifted to shipping the products on time. In the beginning I was tasked with maintaining, and extending the company's in-house framework, and after a while I grew out to be a mentor for the development team, introducing things like version control, developing in a local environment, and various other best practices. I have helped the company acquire key clients, such as Kraft Foods, and Raiffeisen.
I am an avid squash player, and have played competitively in the past. I love tinkering with my home automation setup, and I spend unhealthy amounts of money on custom mechanical keyboards. I love games that have a very high skill ceiling, like DotA, and Starcraft, and I'm running out of room to store my boardgames. I have started playing the piano recently.
References are available on request.