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.

Currently I work as the CTO in a fintech company invipay.com. I was involved in this project before the very first line of code had been written. I’ve been running this project since 2013, and in 2015 we officially started the business. Now, after achieving rapid growth in the first year, I have decided to become more involved. Additionally, I am very proud of the fact that we won the Best Polish fintech startup in 2016 award.

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 and PhpStorm.
  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, in 90% based on CRUD implementation, and frequently intended to be hosted in a shared hosting environment – I prefer to use PHP language.
    I no longer take part in PHP projects as I’m now focused on full stack development of applications with Java backends only.
  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 JEE JSE JME JSP JSTL JCA Spring Spring MVC Spring Webflow Spring Security Spring LDAP Tomcat Jetty AOP JBoss JDBC JPA Hibernate Hibernate Search JBPM Activiti 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 ApacheMQ Infinispan HTML5 CSS3 Bootstrap MetroUI JavaScript Ajax Prototype JQuery ExtJS nodejs AngularJS AngularUI ui-router Snap.svg PHP Zend Framework Symphony Code Igniter Drupal XML XSLT Linux TCP/IP Client-server architecture MySQL PostgreSQL Firebird SQLite UML MDA Agile/SCRUM Trac Jira YouTrack Docker SVN GIT Ant Maven BASH 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.