Tomas Kikutis

Front-End Engineer

tkikutis@gmail.com | +37063075928 | EU

Summary

Front-end engineer with 5+ years of experience in web technologies. Expert in HTML CSS and JavaScript including ES6. Worked with Bootstrap LESS React Redux Ember.js jQuery, and lots of smaller libraries. Experienced with back-end technologies including C# ASP.NET SQL Java.

Built great things, including front-end for an e-commerce platform, lazy loading, custom image carousel, client-side transaction-based optimistic updates, and an implementation of friendly URLs without IDs which supports renaming of resources and keeps all historical values working.

Worked in an agile environment, produced backward-compatible code, used version control (Git and TFS) and feature branches, did refactorings and deployments.

Skills

Engineering

I combine getting things done with building and maintaining high-quality codebases. I do not over-engineer for futures which might not exist and focus on current business needs. I use as little abstractions as necessary to keep things simple, organized and duplication free. I am mindful of the fact of ever-changing requirements and write my code to be easy and safe to change and extend. My code takes advantage of automated static code analysis and is mostly written in small, single-purpose, and decoupled modules. It allows minimizing interdependencies, state, and complexity while increasing deterministic results, ease of understanding, testing, and debugging. I am experienced at managing source control branches, structuring applications, refactoring, and organizing deployments to minimize risks.

JavaScript

Used JavaScript to enhance server-side rendered applications as well as built client-side rendered applications and components. Implemented a real-time search component, the sidebar component which resizes to fill the screen, client-side exception logging, infinite scroll and more. Used procedural, object-oriented and functional styles of programming depending on the problem domain. I know the tricky parts of the language, including variable declarations, scoping rules, hoisting, equality comparisons, implicit casting, and ways to work around it. On the contrary, I am glad for not having to deal with that often, thanks to significantly improved tooling around JavaScript, especially static code analysis. I have used libraries and frameworks to build user interfaces, including React and Ember.js. In my experience, libraries which allow to declaratively describe every possible application state works best concerning application simplicity, maintainability, and integrity.

HTML and CSS

Implemented fixed and responsive designs by W3C standards, made sure browser compatibility, SEO and accessibility are addressed, and sites are easy to navigate and interact with. I have a good knowledge of the inner workings of CSS including floats, box-model, z-indexes, positioning, and working with dynamic dimensions. It allows me to produce elegant, minimal, hack-free style sheets as well as debug and track down offending rules with little effort. I have been using LESS preprocessor in production and found it helps greatly to keep code consistent, minimal, and repetition-free.

Other technologies

I enjoy learning new technologies both for fun and to broaden my understanding of how can problems be solved in different ways than I am used to. I have commercially used C# with .NET framework to build and maintain web APIs and business logic. I have written SQL, used ORMs and contributed to database design and maintenance. I have also built parts of enterprise android application using Java and SQLite. In my free time, I have experimented with MongoDB, Firebase, Python, Scala and Node.js.

Open source and personal projects

Html-table-column-hider

Authored a small library to hide and unhide columns of an HTML table dynamically. It uses JavaScript to generate CSS3 rules controlling the visibility of columns. The library is optimized for performance. Most operations are either O(1) or O(n) which allows it to be fast even with tables with hundreds of rows. The library is available on npm, and there is a live demo on Github.

Web notes

Built an offline-first web application to take notes. It uses React.js JavaScript library to render HTML, Service Worker API for offline support and has its minimal implementations of routing and store. It stores all data in the browser and does not require a server, which allowed me to deploy it on Github easily.

Pong clone

Built this to learn more about game development and HTML5 canvas API. Was blown away with how far can you go with five lines of code for AABB collision detection. Demo available on Github.




Work experience

Senior developer

BARBORA, Oct 2014 - Present

Skills used: HTML CSS Bootstrap JavaScript React.js Redux C# ASP.NET Razor ASP.NET Web API ASP.NET Web Forms ASP.NET MVC T-SQL SQL Server Team Foundation Server Java SQLite RegEx

Developer

CLAIMS CONTROL, Aug 2013 - Oct 2014

Skills used: HTML CSS Bootstrap JavaScript Ember.js jQuery RegEx Photoshop

Front-end developer

Freelance, 2010 - 2013

Skills used: HTML CSS JavaScript jQuery Wordpress Photoshop