About me


My name is Łukasz Frankowski and briefly, I’m a software developer.

For the last years I’ve been mostly focused on web technologies. First and foremost in the majority of the projects I was involved as a full stack developer. Many of the smaller projects I created myself. In the bigger projects with bigger teams I often was a key developer and designed most of the system architecture. In the more recent projects I extended my expertise to include project management. Since I’ve only worked with Linux for many years I’ve been responsible for deployments, server administration and continuous integration process in numerous projects. Considering all this experience it looks I’ve recently been migrating towards devops.

Almost all my projects to date have been done remotely.

Experience

I work in various areas, but I prefer the following:

Software developer

As a software developer I usually work as a full stack developer handling all application layers. However, sometimes I only work on specific modules or application layers.

Architect

I’ve designed numerous applications from scratch. Also, I’ve developed two web frameworks, which unfortunately are not open-source as they are now proprietary frameworks used by my previous employers. So, if you need help with the design stage I’d be delighted to give you a hand, because to be honest, this is my favourite area to work in. Recently I’ve been focused on asynchronous systems architecture and modern patterns such as CQRS.

Team leader / project manager

On a number of occasions I worked as a technical leader and project manager. This involved managing teams, assigning tickets, code revisions, bringing new people up to speed, managing HR issues, working with project owners to achieve the best solution, etc. Usually we worked remotely with tools such as YouTrack, Skype and TeamViewer. If I can influence the methodology I prefer SCRUM and have some experience in being a SCRUM master. This is not my preferred job because I find it a distraction from coding and architecture.

Business and creativity

I have a great deal of experience working with startups, including my own, and helping with the creativity stage. Most of the people I’ve worked with have become my friends. We’ve spent many enjoyable hours discussing improvements to the system, ways to increase the number of customers, etc.

Languages and frameworks

For many years I haven’t been focused on a single language or framework. I’m really open to learning new things. I believe that in this profession learning new skills is a lot more important than being an expert in a single technology.

I also believe that writing good code is not the all and end all. You frequently need to work with a large codebase written by other people. As a result, I felt I needed to develop my understanding of existing code skills. Reading, fixing and refactoring the code are the jobs I do very often.

From one side I like to learn and use different technologies, but from the other side you cannot be effective in everything. This is why I’ve recently decided to focus only on these technology subsets:

  1. Mainly I create web-oriented applications in the Linux operating system using Jetbrains tools: Intellij IDEA, YouTrack, UpSource.
  2. For complex systems requiring bigger teams and including such issues as high security requirements, multithreading or distributed architecture – I prefer to use Java language.
  3. For simpler applications completed with smalls team or even myself – I used to prefer PHP language, but since Spring Boot has made things very easy to setup backend app I also choose Java. The other sensible option is Node.js.
  4. I frequently work on projects from start to finish so I’m fluent in all technologies related to the user interface – i.e. HTML5/CSS3/JavaScript and numerous modern frameworks. I have general aesthetic sense and can design coherent UI, but I don’t get involved in the graphics design. I have a lot of experience in writing JavaScript code using various frameworks, so nothing suprises me anymore.

Here is what I look at all day everyday.

placeholder

Specific technologies

I’ve worked in many technologies. Recently I’ve been focused on full stack development of web applications with Java backend in lightweight containers such as Tomcat, Spring, etc.

Let me use following colors to illustrate my level of experience:

Daily basis - I’m working or was working in this on a daily basis
Expert - I know it at master level, hacked some code, fixed some bugs, etc.
Just know - I only used it in some projects

Java Kotlin JEE JSE JME JSP JSTL JCA Spring Spring MVC Spring Boot Spring Webflux Spring Cloud Spring Data Spring Webflow Spring Security Spring Security OAuth2 Spring LDAP Tomcat Jetty Undertow AOP JBoss JDBC JPA Hibernate Hibernate Search JBPM Flowable Activiti Flowable Drools Castor Jasper Reports BIRT Lucene Compass Groovy Freemarker Stripes Framework PlayFramework Atmosphere Orika WebServices SOA ESB SOAP XML-RPC JAX-WS JAX-RS Spring-WS Apache CXF Axis Jersey Jackson MuleESB JMS ActiveMQ Infinispan RabbitMQ HTML5 CSS3 Bootstrap MetroUI JavaScript TypeScript Ajax Prototype JQuery ExtJS NodeJS AngularJS Angular2 ui-router Snap.svg PHP Zend Framework Symphony Code Igniter Drupal XML XSLT TCP/IP Client-server architecture MySQL PostgreSQL MongoDB Firebird SQLite UML MDA Linux Bash Docker Kubernetes AWS Google Cloud Platform Pivotal Cloud Foundry Agile/SCRUM Trac Jira YouTrack Gitlab SVN GIT Ant Maven Gradle Continuous integration Hudson Teamcity

In addition, I’ve worked with dozens of minor technologies for both Java backends and JavaScript frontends. Moreover, many different technologies used on studies, casually and as a hobby: mobile technologies, communication protocols, other programming languages C, C++, Assembler, Delphi, etc.