I've been a software engineer for over ten years. I specialize in building complex web applications.
Specialization in Computing Systems. Recipient of Fulbright Student Scholarship for Graduate Studies. Subjects included (but were not limited to) Compiler Design, High Performance Computing, Computer Networks, Machine Learning for Trading, Computability, Algorithms, and Complexity.
A joint programme between two top Estonian universities. Subjects included (but were not limited to) Cryptology, Applied Cryptography, Network Protocol Design and Functional Programming in F#.
* did not graduate
Bachelor's degree in Computer Engineering. Subjects included (but were not limited to) Physics, Calculus, Control Theory, Operating Systems and Computer Arithmetic. Thesis written about giving cryptographic signatures in web applications.
I'm more than capable of going from a set of vaguely defined product requirements to the design of the system down to individual specific sub-tasks ready to be implemented by a team of software engineers.
The largest engineering team I have led has been 6. I've done Scrum, Kanban and think that each team should pick what works best for them.
My languge of choice for over 10 years. I'm able to write maintainable code to the highest software engineering standards (yep, it's possible in PHP).
I'm familiar with different Continuous Integration tools, such as Gitlab Pipelines, TravisCI and Codeship. I've set up CI for a number of projects and used it for deployment.
A good test suite can work wonders, a bad one can sap the productivity right out of a software engineering team. I've done unit testing (PHPUnit), UI testing (Selenium) and Behaviour-Driven Development.
I've used Docker locally (Docker Compose), in CI and production (think Docker Swarm clusters and High Availability).
Most of the projects I have worked in have involved MySQL in one way or another. I tend to use an ORM and don't write raw SQL that often.
I've used Elasticsearch to provide fulltext searching when MySQL features have not been enough.
Apache, Nginx and Traefik are all familiar to me – all of them I've used in production. With some Googling I'm sure I configure all of them to handle even the complex cases.
I'm very familiar with the HTTP protocol. I've written a lot of REST API-s as well as tried to stay close to the HTTP spec, where possible.
When possible, I try to write POSIX-compliant shell scripts to get high portability.
I've used C mostly academically and a couple times professionally. Working in Bang & Olufsen gave me a good grasp of it. I've also done some parallel programming during my Master's program.
My go-to VCS. I've familiarized myself with the inner workings of git and consider myself to be an above-average user.
I've been using multiple distributions of the Linux kernel for over ten years both locally and in production.
Co-Founder & CTO – 2013 to present
We are building the best theater and venue management software available in the world. Feel free to take a look at i-smith.ee. I am responsible for the tech – designing the architecture and leading our awesome engineering team.
Software Engineer Intern – summer 2013
Helped build what is now known as SymfonyCasts (formely known as KnpUniversity). I was mentored by Ryan Weaver, head of Symfony official documentation.
Embedded Software Engineer – winter 2012
We wrote firmware for high-end car audio amplifiers. The software was running on a RTOS and was written in C, strictly following MISRA guidelines.