to be disclosed... but sneak peek:
- technical leading, team leading
- 20 years frontend development (angular, html, css, js, php)
- 15 years sysadmin (linux, virtualization, automatization)
- 5 years dba (mainly oracle + mssql, some mysql + postgresql)
- few years of desktop software development (delphi)
- starschema ltd - 5 years (biggest data company in the country)
- t-systems - 5 years (enterprise services)
- others (kravtex, pentatrade, etc)
Since joined the Port Optimizer™ development in 2017, I became responsible for all frontend development. Under the umbrella of PO, I started 5 green field projects for both Port of Los Angeles (USA) and Port of Gothenburg (Sweden). We had around 30 people contributing to those codebases in the years.
I'm involved in product planning, members are expecting my ideas and opinions about goals and how to approach them. I translate between product people and developers to have everyone on the same page.
Apart from from keeping a high standard in actual implementation, I'm not into try out every bleeding-edge technology unless the product benefits from it. I'm more into "choose the right tool for job" mentality: product and users are first.
I have no problems understanding complex systems or even designing them, I'm heading towards the architect role in the near future. I like to see the product as a whole, not just the frontend.
attention to details
Pattern matching is one of my skills which makes me able to spot differences quickly. And when I find one, I definitely call it out. With my change review process we create much less bugs than an average team. Pixel-precise implementation? Shouldn't be a problem!
I'm doing this since the millenium and not bored at all. I'm taking new challenges and responsibilities bravely, I see my personal development in every opportunity. I like to learn a new technology every year or so.
While working, I keep an open eye to all neighbouring professions: let it be ux, business or data related, I'm happier when I'm involved in those challenges.
My strict review process strangles bugs in the root. When I see recurring patterns, I instantly think on a general approach to cover them. I reorganize for better velocity before it starts to hinder the development. My years in IT let me evaluate different scenarios on the spot, this early feedback saves a lot of meeting hours.
I don't let myself get distracted, I always keep my eye on the goal. Give me space and time, you can expect fast and accurate results.
I'm not shy to call out problems, inconsistencies, risks. I phrase my doubts before they can do harm and keep in everyone's task list to address it based on the priority. Of course you can expect me to help with these if my skillset is useful.
I use to say: "Agile™ is too slow for the end-users". Processes choke progress too much, we do "rapid-development" every now-and-then when we want to achieve something reasonably fast. For me, real agility means that product ideas or requirements can be implemented next day.
Based on the feedback I received, they say I'm a good mentor. I have the patience to explain things on the level the listener understands. I'm encouraging discovery with questions and guidance, pointing to useful references to sparkle ideas. I'm not stingy with positive feedback even for the smallest things.
Ask me anything from my skillset, I'll try to help to the best of my knowledge, especially when we are rowing in the same boat. Sometimes I hold small workshops to share my knowledge with smaller audiences.
It is not a problem for me to work alone or with an empowered team separately. With just enough information for the task I'll explore the challenges, boundaries and limitations then deliver.
up to date
I keep an eye on the most fruitful technical news and blogs. I have at least an impression of every important technology of today. I don't hesitate to share my findings worth thinking with anyone who can benefit from them.
I particularly enjoy doing interviews, I like to develop my people judging skills. A team member once said "yours was the best job interview I've ever had".
Starting with version 4, I was part of the evolution of Angular till today. I'm using it daily for my main projects, I made some public libraries for it as well, available from npm. My aim is to keep one version away from the newest, so I let it mature enough to be used in production.
My choice for state management is NGRX. One of my FOSS projects (api-caller) is built on top of it.
Hence working with Angular daily, I know typescript. I'd choose it for other frontend frameworks as well if I had to work with them.
Making web pages, webshops and other wab-based solution as a freelancer for 20 years now, I know my way around in the frontend world. I followed the evolution from frames to tables, tables to floating divs and finally arrived at flexbox and grid.
Not so much to say about HTML since it is the base of all web frontend work I've done and doing. I'm hard to surprise with it.
They say CSS is the language which is the simplest and hardest in the same time. It's so obvious at first but so complex when done well. I'm using SCSS on top of it to make a bit easier.
I treat clean code as an insurance of long-term maintainability. I regularly revisit existing patterns, adjust my approach based on best practices and always remember when I shot myself in the foot with some antipattern.
I don't believe in the so-called "grid systems". I don't want to force the product or UX teams to make compromises to make my job easier. They are working for the users, so should I, therefore restricting creativity with artificial boundaries is not my approach. Fluid design is what I go for: every single resolution from 320px to 2560px should look just right.
What if I have to do the same task again and again? I'll definitely automate it. I know the toolset for a lot of OSes to get them working instead of me (I made MPE/iX to have all the world on a string. Don't know MPE/iX? It is an OS older than me).
The most important thing to get git working is not else than confidence. If you can see thru it, it will eat out your hands. I rarely encountered impossibilities while worked with it and I trust it my code daily.
I'm always watching the work of the designer team with curiosity. I regularly read articles and case studies about which approach is currently the best, what are the trends, but obviously with developer's eyes. I'm not blessed with visual creativity though.
Apart from my automation and scripting skills, I'm easily ramped up to the used CI/CD technology on the projects. With the devops team, together we find ideal solutions faster for special cases.
When a particular visual representation needs a more sophisticated tool than just plain html + css, I don't hesitate to reach out to the toolset of SVG. The generative art in the background is made with SVG and some JS as well. I can put together data visualization elements with pure SVG or with D3.
Figma, Adobe XD, you name it. I can quickly adapt to the used visual designer tool what's on the project. I'm currently using Figma to work with UX and product teams.
Part of my web developer and database administrator skills, I regularly used SQL to solve data related questions. I'm familiar with keys, joins, indexes, tablespaces, reorganization and optimization to some extent.
Working SPAs obviously brought the REST approach with it. I'm familiar with what I can expect from a REST APIs, I made some simple implementations myself (nodejs: koa2, php: slim, rust: actix).
With the ability to make SPAs and implementing fluid design, I'm in picture of what people expect from a PWAs. I have experience with simple applications I made for my daily routine.
I jumped on the virtualization wagon early, tried out some technologies and ended up using Xen as my daily driver on my self-hosted project server and also one of my jobs as a system administrator. On my desktop I'm using Virtualbox.
I'm familiar with the philosophy of docker, tried it out a few times, though it not fits for my regular uses cases. On my projects, the devops team utilizes k8s on top of it, so I'm partially in picture what is happening in the background.
As optimization is a thing I'm enthusiastic for, assembly is an obvious choice to speed up things. I got to know it very early in my career but since I'm not using daily, it is just for fun for me.
Let it be scripting, data streaming or simple backend solutions, I often reach out to NodeJS on server side. I've used Koa2 framework a few times to accomplish simple REST APIs.
I don't consider myself a full-stack developer as my main focus is on the frontend at the moment, but since I've touched a few solutions to create backends, I can be ramped up pretty quickly on this kind of work.
I've spent significant amount of time working with enterprise databases, like Oracle 9i - 12c, MSSQL 2000 - 2015. My experience includes installing, maintaining, troubleshooting, optimizing, migrating instances and databases. RAC, Standby, Mirroring all were part of my daily work at a time.
I'm using linux on server side since 2004. Most of the time it was a secondary skill, but I spent years with active system administration at Kravtex. I built the whole infrastructure from scratch using linux and xen.
As a freelancer web developer (which I still am) I created around 30 different projects using PHP. My focus has shifted towards SPAs in the past few years, but if the projects need simple, server-side, widely supported approach, PHP is my choice.
Delphi is my solution when something needs to be done as a Windows desktop software. I often created tools for myself when I couldn't find any useful on the wide internet or it was too bloated for my needs.