Software Engineer ~~~~~~~~~~~~~~~~~~~~~~~~~ Łukasz Kusek Phone: (44) 777 420 1310 Email: lukasz-cv@kusek.info GitHub: https://github.com/lukasz-kusek LinkedIn: http://pl.linkedin.com/pub/%C5%82ukasz-kusek/51/b4a/1b9/en Website: http://lukasz.kusek.info Address: Harpenden, UK PROFILE ======================================================================================================================== Software Engineer with over 11 years of commercial experience and expertise in building microservices-based backend applications on JVM platform (Kotlin, Java, Scala, Clojure) and frontend applications (TypeScript) on Linux (standalone servers, cloud environments - GCP, AWS, Kubernetes). Experienced in leading small teams of developers, technical leadership and delivering products. Solves problems that 'can't be done'. Advocates for: - Following Agile principles, not just Agile processes and ceremonies - Slicing work vertically to deliver small and often - Reducing feedback loops - Self-documenting code over comprehensive documentation - Independent, non-breaking deployments - Simplicity, not overcomplicated solutions - Pragmatic, not dogmatic solutions - DevOps, breaking silos, not just tooling setup - Ownership - Working closely with customers/clients/users - Rapid prototyping, ‘spiking out’, testing assumptions - Being aware of bigger picture, continuously thinking holistically - Continuous improvement AVAILABILITY ======================================================================================================================== 30 days SKILLS ======================================================================================================================== Database ~~~~~~~~~~~~~~~~~~~~~~~~~ PostgreSQL, InfluxDB, Elasticsearch, DynamoDB, Oracle, MySQL, Language ~~~~~~~~~~~~~~~~~~~~~~~~~ Kotlin, TypeScript, Bash, Java, SQL, Clojure, JavaScript, Rust, Scala, Python, Library ~~~~~~~~~~~~~~~~~~~~~~~~~ Ratpack, Akka, Guice, Spray, Cucumber, CameronFIX, QuickFIX/J, Os ~~~~~~~~~~~~~~~~~~~~~~~~~ Linux, Other ~~~~~~~~~~~~~~~~~~~~~~~~~ Microservices, DevOps, Agile, Hexagonal architecture, REST, JSON, API-First, Distributed systems, OAuth2, Event Sourcing, XML, Tool ~~~~~~~~~~~~~~~~~~~~~~~~~ Git, JIRA, Maven, Docker, GCP, Kubernetes, Node.js, webpack, puppeteer, Ansible, OpenFin, Gradle, TeamCity, Splunk, Grafana, Telegraf, Puppet, GO, AWS, Jenkins, EXPERIENCE ======================================================================================================================== ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Technical Lead (2021-02 - ), HSBC (Investment banking), London, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract * Building a hosting platform using GKE (Google Kubernetes Engine) for Global Banking and Markets (GBM) Securities Financing departament. Introduced a concept of a cross cloud providers hosting platform (GCP, Alicloud, AWS) to enable teams to deliver business solutions quickly and safely to production with toil reduced to minimum. Leading technology choices and design. Reviewing code for other team members and (as an independent reviewer) other teams. Actively working with Product Owner and other stakeholders to manage priorities, define delivery items for team of 4 engineers. Leading interviews. Advocating Agile and DevOps. Achievements * Designed and implemented multiple services widely used in the department: - Automated TLS certificates generation - LDAP authentication - Services catalog - Automated release audit documents generation (change description, implementation tasks, testing evidence, quality scans, security scans) tailored for quick and safe approvals - Deployment service fulfilling HSBC change management requirements - Single sign on authentication/authorization mechanism for the UI components based on Kerberos and JWT tokens * Lead a series of mob programming sessions to promote Agile approach. * Delivered highly successful presentation about releasing smaller, faster and safer with highest number of views in the series. Technologies: Kotlin, TypeScript, Git, Microservices, Hexagonal architecture, API-First, JIRA, Intellij IDEA, Maven, Bash, JSON, TLS certificates, LDAP, Kerberos, JWT, REST, Linux, GCP, Docker, Kubernetes, DevOps, Agile, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lead Software Engineer (2020-12 - 2021-01), HSBC (Investment banking), London, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract * Successfully delivered a stock locating client facing application for Global Banking and Markets (GBM) Equities Prime clients. Front to back delivery in a delivery-focused team following Agile and DevOps principles. Lead technology choices and design. Introduced an Agile approach with full customer collaboration using prototypes which prevented us from going into wrong direction. Achievements * The project was delivered on time although an initial 5-month delay when I joined the project. * Delivery resulted immediate increase in client short balances. Technologies: Kotlin, Java, TypeScript, Git, Microservices, Hexagonal architecture, API-First, JIRA, Intellij IDEA, Maven, Bash, JSON, REST, SQL, Linux, DevOps, Ansible, Agile, webpack, puppeteer, Node.js, OpenFin, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Technical Lead (2020-07 - 2020-12), HSBC (Investment banking), London, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract * Building a hosting platform for JVM-based microservices to enable teams in Global Banking and Markets (GBM) Securities Financing departament to deliver quickly and safely business solutions to production. Advocating Agile and DevOps. Lead technology choices and design. Technologies: Kotlin, Git, Microservices, Hexagonal architecture, API-First, JIRA, Intellij IDEA, Maven, Linux, DevOps, Agile, GCP, Docker, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lead Software Engineer (2019-07 - 2020-07), HSBC (Investment banking), London, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract * Successfully migrated client facing portal for Global Banking and Markets (GBM) Equities Prime clients from Flash-based platform to HTML5/TypeScript platform in an Agile iterative way with full business involvement. Full back to front project including: analysis of existing solution, rewriting a monolith application into a set of microservices, migration of existing 6-month release cycle into one change - one release release cycle incorporating DevOps and Agile principles. Built entitlements service and administrative UI. Created a HTML5 application for OpenFin and browsers. Lead technology choices and design. Achievements * Met the deadline with the safe margin. * Delivered product in an iterative way with full business involvement and constant feedback. Technologies: Kotlin, Java, TypeScript, Git, Microservices, Hexagonal architecture, API-First, JIRA, Intellij IDEA, Maven, Clojure, JavaScript, Bash, JSON, REST, SQL, Linux, DevOps, Ansible, Agile, webpack, puppeteer, Node.js, OpenFin, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Senior Software Engineer (2019-02 - 2019-07), HSBC (Investment banking), London, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract * Worked on a service producing insights for sales people based on clients trading history using Machine Learning. Achievements * Redesigned service based on an integration database into set of microservices. * Automated release process which reduced manual steps to minimum. * Started a Rust User Group within HSBC. Brought Rust and Cargo into HSBC. Created crates.io mirror. Technologies: Kotlin, Java, Rust, Git, Microservices, Hexagonal architecture, JIRA, Intellij IDEA, Maven, Gradle, Clojure, JavaScript, Bash, JSON, REST, PostgreSQL, SQL, Intellij IDEA, DevOps, Agile, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Senior Software Engineer (2017-09 - 2019-02), HSBC (Investment banking), London, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract * Worked on a project introducing a new revenue attribution model for sales people. Achievements * Completed full process of requesting, configuring and going through sign-off process of new production servers tailored for DevOps use. * Automated release process which increased delivery frequency from fortnightly to several per day. * Built a set of microservices to replace team management system (including design, REST request/response and streaming APIs, eventing-based replication, PostgreSQL database, automatic schema migration with Flyway, UI with plain modern JavaScript) Technologies: Java, Ratpack, Git, Microservices, Splunk, Grafana, InfluxDB, Telegraf, Elasticsearch, JIRA, TeamCity, Intellij IDEA, Puppet, Ansible, Docker, Maven, Gradle, Clojure, JavaScript, Bash, JSON, REST, PostgreSQL, SQL, Linux, DevOps, Agile, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lead Software Engineer (2016-06 - 2017-09), HSBC (Investment banking), London, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract * Worked at the FX eDistribution project on a backend service supporting an UI component responsible for controlling lifecycle of algorithmic FX orders (TWAP, Implementation Shortfall, Liquidity Seeking) and market FX orders (Stop Loss, Take Profit and Benchmark). Lead backend services design and delivery. Achievements * Introduced automated integration and API contract tests which allowed to catch a number of issues with API our services consumed * Delivered Stop Loss and Take Profit orders in a cooperation with the algorithmic trading team Technologies: Java, Git, Microservices, Splunk, Grafana, JIRA, TeamCity, Intellij IDEA, Maven, Akka, Scala, Clojure, Mockito, AssertJ, JUnit, Linux, DevOps, Agile, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Senior Software Engineer (2015-07 - 2016-06), Ocado Technology (Online grocery retail), Hatfield, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: permanent * Worked on low latency services (<10ms) that calculated availability of products in real time. Services were designed to be highly available and scalable (akka cluster, AWS, blue-green deployment), highly responsive (actor model) and low latency (in-memory cache with akka sharding). Services were based on CQRS and event sourcing. Achievements * Introduced idea of team goal which helped us prioritize tasks and have common vision of our services. * Proposed adjustments to our sprint (pair programming, one story at a time) that improved collaboration and helped building trust. * Created two OAuth2 libraries (non-blocking client with caching capabilities and testing library) that are widely used across teams at Ocado Technology. * Configured Continuous Delivery pipelines. Did a research on implementation of BlueGreen Deployment and found major flaws in the early stage what allowed us to prepare architecture of our applications before it's released to production. * Migrated production and integration tests environments to new AWS account before given deadline. Technologies: Scala, Akka, Spray, AWS, Git, Event Sourcing, Microservices, Distributed systems, JSON, REST, Swagger, ScalaTest, JIRA, Guice, DynamoDB, OAuth2, Crucible, Kibana, Logstash, GO, Intellij IDEA, Maven, Linux, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Senior Software Engineer (2015-02 - 2015-07), Ocado Technology (Online grocery retail), Hatfield, United Kingdom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: permanent * Worked on the order management service. Service was part of distributed platform based on cloud computing environment. Achievements * Introduced testing standards in the team. * Lead tests quality sessions. Technologies: Java, AWS, Git, Microservices, Distributed systems, JSON, REST, Swagger, Hystrix, PostgreSQL, Python, OAuth2, Cucumber, Mockito, AssertJ, JUnit, Jenkins, Guice, DynamoDB, Crucible, Kibana, Logstash, GO, Intellij IDEA, Maven, Linux, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Senior Software Engineer (2014-03 - 2015-01), Luxoft (Investment banking), Krakow, Poland ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract via vendor * Contractor at UBS Investment Bank. Worked on front office applications (capital commitment, automatic indication of interest generation and trade advertising) supporting sales traders and market makers at Cash Equities project. Applications were event driven, based on FIX protocol and low latency (<5ms). Achievements * Reverse engineered trade advertising and automatic indication of interest generation and made a presentation for business users. * Implemented a proper handling of introduced algos within Sales Facilitation applications. * Introduced automatic system tests increasing quality of produced software. * Enhanced logging by adding single request tracking which significantly decreased the investigation time in case of an issue. * Set up automatic build system which improved speed and reliability of the release process. Technologies: Java, QuickFIX/J, CameronFIX, Spock, Groovy, Git, Gradle, Jenkins, Oracle, JIRA, SVN, Intellij IDEA, SQL, JUnit, AssertJ, Guava, Mockito, Linux, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Technical Lead (2013-05 - 2014-02), Sabre (Airlines and airports), Krakow, Poland Senior Software Engineer (2012-05 - 2013-05), Sabre (Airlines and airports), Krakow, Poland Software Engineer (2011-07 - 2012-04), Sabre (Airlines and airports), Krakow, Poland ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: contract / permanent * Worked on a cost saving migration project which involved over 30 major airlines. Lead the team of 4 developers during the last year of the project. The project was very challenging due to multiple dependencies (Sabre's internal systems, customer's systems), no downtime requirement, big amount of user data (data of 30M+ passengers of airlines), pressure of time, little documentation of the legacy system and all of it's features. Service was part of distributed platform built using SOA and SOAP web services. Achievements * Finished the project 3 months before required deadline (license renewal of a proprietary mainframe). * Developed a XML comparison library using bipartite graph algorithm that significantly decreased number of discrepancies during the migration. * Created automated configuration diff tool reducing release time and increasing quality. * Lead best practices developers meetings which helped keeping common understanding of the system in a big team (30 developers). * Created a configuration API as an abstraction over a configuration source (file, DB, JMX) that allowed operations team to have flexible configuration. * Created searchable log application for QAs which allowed testing untestable before aspects. Technologies: Java, Java, Spring, Hibernate, XSLT, Guava, Maven, Apache Wicket, AspectJ, JUnit, Mockito, Fest, MySQL, MyBatis, Apache Camel, XPath, XML, XML Schema, Oracle, Clojure, Distributed systems, Linux, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Software Engineer (2010-06 - 2011-06), Sylogic (Websites), Warszawa, Poland ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: permanent * I've been developing web applications for customers. I took part of whole process of creating application (gathering requirements, analysis, designing, developing and deployment) Technologies: Java, Spring, Hibernate, JSF, Maven, Apache Wicket, Tiles, Intellij IDEA, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Linux administrator (2006-01 - 2009-07), ConSol* Consulting & Solutions Software Poland (CRM), Krakow, Poland ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Position type: part-time * I've built and been maintaining infrastructure for a technology company which employed 30 developers. Achievements * Developed income optimizer for hospitals. Successfully deployed at the hospital in Sucha Beskidzka. * Researched and developed a 'proof of concept' application WebCTI - Asterisk / ConSol* CM in a single person R&D project. Technologies: Linux, Bash, awk, Java, Apache Wicket, Spring, Hibernate, Maven, Intellij IDEA, EDUCATION ======================================================================================================================== AGH University of Science and Technology in Cracow (2004 - 2009), Computer Science (not completed) RECOMMENDATIONS ======================================================================================================================== "I have had the pleasure of working with Łukasz in the same team at Ocado Technology. He very quickly picked up the new technology stack of our team (Scala and Akka) and he became a master of them. He is a highly creative and innovative individual, who has contributed many great architectural designs to our projects. Łukasz is extremely hard working who consistently delivers high quality work products, keen to produce clean code and meanwhile meets or exceeds deadlines. I would recommend him to anybody." Csaba Kerti, June 23, 2016 "Working with Łukasz has been a great experience. Since the first day I had a high feeling of collaboration: I always remember the series of discussions we had about various aspects of the software. His impact on the team was very important, not only for the technical point of view, but also he managed to influence the way we were working. As result, in few weeks we reached and higher quality bar and we produced great software. I recommend Łukasz as colleague for his vast technical skills but also because he is a great person to work with." Alessandro Simi, June 22, 2016 "I have had the great fortune to work alongside Lukasz over the past year. He is a dedicated, cool-headed developer and a strong supportive leader of those around him. He has excelled in building and maintaining a strong, resilient and reliable series of applications operating together in near real-time. It is a huge loss for our organisation to see Lukasz leave - but know that he has left a lasting legacy in not just the software he has developed but in those whom he has supported in building their own experience." Daniel Stoner, June 22, 2016 "Working with Łukasz is a real pleasure. Extreme attention to details, always willing to help others, very fast at providing reliable development results. His technical knowledge is very good, allowing to propose the best solutions for solving problems. He's one of the best developers I've met." Szymon Paluchowski, April 7, 2013 "Łukasz has proven to be one of the most valuable team members, with his wide technical knowledge, willingness to learn and - especially - unbelievable attention to details. Łukasz always aimed for the complete, perfect solution to a problem - half-measures never satisfied him. I would gladly work with him again." Maciej Hamiga, January 6, 2013 CONFERENCES / TRAININGS ======================================================================================================================== - QCon London (2016) - Uncle Bob's Advanced TDD (2015) - GeeCon (2014) - JDD (2013) - Java Developers’ Day (2008) - Java Developers’ Day (2006) OTHER ======================================================================================================================== Currently learning Scala and Clojure. LAST UPDATED ======================================================================================================================== 4/28/22