# Adam Kotwasinski > Principal Software Development Engineer at Workday Location: San Francisco Bay Area, United States Profile: https://flows.cv/adamkotwasinski Experienced software engineer, capable of coming up with non-standards solutions to non-standard problems (frequently related to the scale of operations). Main interests in terms of development are providing highly resilient and fail-secure artifacts capable of high performance. Aware of lower layers' intricacies, as expressed by the related C & C++ experiences. Paying high attention to software craftsmanship, with code quality and correct modelling of business entities and requirements. Personally putting a lot of pressure on creating processes and tools that increase other engineers' quality-of-life and make our work environment easier to understand/predictably-boring. ## Work Experience ### Principal Software Development Engineer @ Workday Jan 2016 – Present | San Francisco Bay Area Lead developer / SME for Kafka & RabbitMQ services for the team of 8 engineers providing messaging & caching solutions Designed the deployment and operations processes allowing the team to provide reliable and performant Kafka and RMQ services. Designed multiple upper-layer usecases' (e.g. query trickle, core database transactions, search ingester, distributed job framework) usage of Kafka & RMQ, and acting as a technology expert in the case of incidents. Created Java-based client libraries providing company-specific functionalities over plain Kafka/RMQ such as service discovery, metrics, encryption, configuration resolution and its change at runtime. Provided large message support in Kafka (chunking or using an external store like Redis) and controlled failover (with MirrorMaker2 and custom client code for automatic partition switch). Replaced existing file-driven client configuration by creating a configuration-resolution service contacted by the client libraries during the using service's bootstrap. Improved Kafka/RMQ operations by creating sidecar services responsible for the management of the RMQ and Kafka installations: providing service discovery data, RMQ cluster health monitoring, Kafka dead topic detection, ensuring backend configuration via policies. Prototyped a joint Kafka-and-RMQ client library allowing for faster end-to-end communication while providing Kafka persistence guarantees. Currently working on increasing service visibility and decreasing operator pain by creating the services for service topology tracking and request tracing. Tech: Java, Spring + Spring Boot, Kafka, RabbitMQ, Zookeeper, Redis, SQL (Hibernate), JUnit + Mockito, Gatling, Scala, Python, Gradle, git, Docker, Envoy proxy, Chef, Kubernetes, TeamCity, Jenkins ### Envoy proxy Kafka filter maintainer @ Open Source Jan 2018 – Present | San Francisco Bay Area Designer, developer and code owner of Kafka support in Envoy proxy Created protocol parser (by creating the generator script consuming Kafka protocol spec), broker filter (for capturing metrics), mesh filter (to have Envoy act as a front proxy for multiple Kafka clusters). ### Authorized Officer / Senior Java Developer @ UBS Jan 2014 – Jan 2015 | Cracow, Lesser Poland District, Poland Lead developer / SME for the team of 7 engineers providing entitlement and onboarding services in UBS Neo platform Designed and implemented mission-critical entitlements and onboarding services, providing highly performant read operations (permission checks), with multi-cluster replication of write data, and audit trail. Implemented business-driven rules related to entitlement checks (2FA vs 1FA, entitlement packages, geography-driven limitations). Tech: Java, Spring, neo4j + Cypher, Zookeeper, REST, JMS (29West, Tibco EMS), SQL (Hibernate, MyBatis), JUnit + Mockito, Maven, TeamCity ### Senior Software Engineer @ IBM Jan 2013 – Jan 2013 | Cracow, Lesser Poland District, Poland Developer of Netezza monitoring application (nzhealthcheck) Fixed multiple threading/shutdown issues by providing correct threading model and changing the architecture from one-threaded to lightweight 'handler' application with multiple child data collector processes. Fixed high memory usage by replacing boost::property_true with tinyxml. Tech: C, C++, POSIX (pthreads), boost, Perl & Bash scripting, SQL (sqlite, nzsql) ### Project Leader / Software Engineer @ Samsung Electronics Jan 2012 – Jan 2013 | Warsaw, Masovian District, Poland Development lead for the team of 7 engineers providing AllShare SDK Developed DLNA device simulators embedded in Eclipse, such as video/audio player or a multimedia source. Created multicast- & subscription-proxying solution for DLNA, allowing Android DLNA application running inside the simulator to connect with the host network. Created a Scala-based prototype of IDE for Cloud-based applications. Released AllShare SDK 1.0 in 12/2012. Tech: Java, DLNA, UPnP, Eclipse RCP, Scala, C++, boost, JUnit, git, Bamboo ### Junior Software Engineer @ Samsung Electronics Jan 2010 – Jan 2012 | Warsaw, Masovian District, Poland Eclipse plugin developer Developed Eclipse plugins for Tizen SDK (W3C web widgets). Designed source validation by embedding Rhino JS runtime in Eclipse. Made a successful proposal for the creation of IDE for DLNA-based applications. Tech: Java, Eclipse RCP, XML Schema, DLNA, git, Bamboo ### Developer @ CRI COMIT Ltd. Jan 2009 – Jan 2010 | Warsaw, Masovian District, Poland Developer of an Eclipse-based modeling tool for the banking industry Tech: Java, Eclipse RCP, XML Schema, JUnit, SVN ## Education ### Master of Science (MSc) in Informatyka University of Warsaw ## Contact & Social - LinkedIn: https://linkedin.com/in/adam-kotwasinski - GitHub: https://github.com/adamkotwasinski - Portfolio: https://stackoverflow.com/users/6204612/adam-kotwasinski - Portfolio: https://twitter.com/AKotwasinski --- Source: https://flows.cv/adamkotwasinski JSON Resume: https://flows.cv/adamkotwasinski/resume.json Last updated: 2026-04-12