Startup CTO, Software Architect, Rubyist
Total Page:16
File Type:pdf, Size:1020Kb
Konstantin Gredeskoul Startup CTO, Software Architect, Rubyist RUBY • RAILS • RSpec • GO • TypeScript • BASH • JAVA • C/C++ • SQL • Pairing • TDD Cloud • DevOps • Distributed Systems • Security • PostgreSQL • Scaling • SRE • Architecture CONTACT SUMMARY 1113 Carolina St Konstantin is a passionate, creative, and intuitive engineering leader, a full- San Francisco, CA 94107 stack developer, and a ruby expert, with an excellent eye for efficient, modular, and loosely coupled software architecture, clean, organized, and well-tested (415) 265 1054 code. He often infects those around him with enthusiasm and inspires his team to pursue software craft to its mastery. In his career, Konstantin led over a [email protected] dozen software teams up to 25, interviewed, hired, trained, and mentored hundreds of engineers. kig.re Konstantin served as a CTO at four separate startups spanning about a decade. During reinvent.one that time, he built four large e-commerce sites, two of which are also socially connected e- commerce marketplaces (Wanelo and Blurb), with sellers and buyers. github.com/kigster He loves the challenge of scaling distributed systems to meet the demands of the growing user base: during his tenure at Wanelo, the Ruby-powered app reached peak traffic of linkedin.com/in/kigster 200,000 RPMs, serving requests with an average latency of 80 ms or less. He authored over forty open-source libraries in Ruby, C/C++, CMake, Arduino, Bazel, and PROFICIENCY BASH. His Ruby gems have been downloaded over 20 million times, while his online presentations have been viewed by over 250K people worldwide. Konstantin often speaks at conferences, including RubyConf Australia, in 2015. Ruby (& Rails) Besides his love for coding, Konstantin has a passion for building hyper-productive and ● ● ● ● ● ● ● ● ● ● deeply collaborative engineering teams from diverse backgrounds, and harnessing the incredible power of pair-programming, TDD, group brainstorming, infrastructure C/C++ automation, and CI/CD. He writes a technical blog at https://kig.re. ● ● ● ● ● ● ● ○ ○ ○ PROFESSIONAL EXPERIENCE OO DESIGN ● ● ● ● ● ● ● ● ● ● FLARE.BUILD, Bazel Course Content Author [Contract] • 07/2020 — 08/2020 DATABASES & SQL Part of a small team tasked with creating a two-day training course on the Bazel Build system with eight hours of lectures and eight lab hours with less than one week's ● ● ● ● ● ● ● ● ● ● advance notice. I contributed several lectures, concept diagrams, Github actions CI integration, setup scripts, and proof-read/edited the entire set of 260+ slides. BASH ● ● ● ● ● ● ● ● ○ MEDCREDS, Consulting CTO [Contract] • 04/2020 — 07/2020 Helping the pre-funding startup with architecture, VC pitch, and product positioning DEVOPS using the latest W3C standards in the areas of Verifiable Credentials, Digital Wallets, ● ● ● ● ● ● ● ● ● ○ Self-Sovereign Identity and distributed public key infrastructure built atop of a Sovrin Blockchain. BAZEL / GOLANG ● ● ● ● ○ ○ ○ ○ ○ ○ Page 1 of 3 EDUCATION COINBASE, Senior Software Engineer • 06/2019 — 01/2020 I worked on extending the Bazel Build System using Starlark programming language (a subset of Python) to support Ruby language, as a part of the Developer Productivity 1993 — 1995 Team’s initiative. The outcome was an open-source project rules_ruby which allows Monash University, any ruby project to be built, run, and tested (eg, on CI) using standard Bazel commands. Melbourne, Australia Bachelor of Science (Honors) FLOWINC.APP, DevOps Automation [Contract] • 12/2018 — 05/2019 Mathematics & Statistics Six-months contract with a fin-tech startup in VC fund management space. Built a complete cloud automation from scratch using Chef Enterprise on AWS, and following all AWS security guidelines. Provisioned multiple environments (dev, staging, 1992 — 1993 production) in EC2. Kharkov State University, ➔ Installed Ruby linked with jemalloc, and deployed Rails/AngularJS application using Capistrano. Ukraine ➔ Registered all server processes such as Puma and Sidekiq as SystemD services, with Mathematics constrained resources using cgroups. and Advanced Calculus ➔ Configured self-hosted HAproxy, Redis, Memcached, Nginx, with only PostgreSQL being hosted on RDS, resulting in significant savings. ➔ Setup a secure, resilient and fault-tolerant infrastructure that was able to handle a multitude of systems failures and server crashes with no detectable impact to users. ➔ In addition to working on the infrastructure, I introduced the engineering team to the Pivotal INTERESTS Process, points estimation, retrospectives, and led the first several sprint planners. The process was later adopted and resulted in an increased team productivity, better awareness and morale. Open Source Software HOMEBASE, Infrastructure Architect • 08/2017 — 12/2018 Electronics / PCB Conceived and lead a massive revamp of Homebase's systems architecture and deployment for the next generation of growth. Initially, I was brought in as a contractor Laser Cutting to help address scaling pains. After a couple of months I was offered to switch to full- time employment (which I did, as I really liked the team) to continue my work on Arduino / ESP8266 addressing the performance issues and infrastructure automation. During that time: Drumming ➔ Introduced a number of significant resilience improvements, achieving 99.99% uptime in only a couple of months. Utilized multiple PostgreSQL read replicas to improve performance and stability, using Makara gem. Guitar ➔ Built out infrastructure automation using Chef Enterprise and Docker on Ubuntu, integrating with AWS services such as RDS, S3, SNS and EC2. Reduced AWS costs by 2X by switching to Piano self-managed Redis & Memcached, consolidating app servers onto reserved instances. ➔ Tuned Ruby garbage collection parameters and built Ruby interpreter with jemalloc, thus Electronic Music reducing memory footprint by 3X. ➔ Tuned concurrency settings of Puma and Sidekiq for maximum throughput while minimizing DJ (House / Tech-House) the number of involuntary context switches. as “LeftCtrl” ➔ Rebuilt deploy process using Capistrano, managing a non-downtime deploy in just under 60 seconds. Produced two albums as ➔ After rebuilding the Production, Staging and multiple Dev environments, focused on “PolyGroovers” reducing CI build times by 2-3X using aggressive caching and smart retries. ➔ Finally, rebuilt the developer tooling (initial setup, secrets encryption, deployment) in BASH Whitewater Kayaking v4. Bicycling Page 2 of 3 SELECT OPEN SOURCE PROJECTS WANELO, Chief Technical Officer / VPE • 12/2011 — 01/2016 I joined the company as an employee #3, after the Founder, and her sister. Working at two jobs for a couple of weeks, I threw myself into fixing site’s chronic outages caused All projects listed below are open by its own popularity, and lack of performance-oriented design of Wanelo’s first source and distributed under the codebase. After applying some amount of ingenious CDN caching with Fastly gave us a MIT license. few months of breathing room, I focused on establishing high-performance engineering practices with the newly formed engineering team. Simple Feed (Ruby Gem) (278 ★) Redis-backed activity feed ➔ Closely following the Pivotal Process, my team agreed (reluctantly, at first) to try implementation that scales to full-time pair-programming, in addition to more familiar practices of continuous millions of users, optimized for integration, daily deployments, and TDD. In just under two months that followed, constant rendering-time of the feed with the team of six (myself included), we replaced the old Java app – 90K lines of code and no tests – with a compact Rails app – only 10K LOC, half of which were tests. We then brought the new app live, migrated the data from MySQL to Sym (Ruby Gem, CLI) (131 ★) PostgreSQL, and swapped Cloud vendors all at the same time… with just one hour of planned downtime for maintenance. Full story here. Symmetric encryption library based on OpenSSL, supports password- ➔ Automated cloud deployment with Chef, strategically providing automated tests protected symmetric keys with all Chef recipes. Used HAProxy as a routing layer as well as the resilience mechanism for fail-over. This architecture was the subject of my RubyConf OZ talk “DevOps without the Ops”. MakeABox.io (79 ★) Rails-based one-page site for ➔ Stack: Ruby, jRuby, Rails, PostgreSQL, Redis, the proxy, Nginx, haproxy, generating PDF templates aimed at ElasticSearch, Solr, Memcached, Chef, Capistrano, Joyent Cloud, SmartOS, dTrace, a laser-cutter, that generate Objective-C, iOS. enclosure boxes with sides that snap onto one another Professional experience between 1995 and 2011 is available upon request or my LinkedIn Profile. Ventable (Ruby, Gem) (58 ★) REFERENCES Ruby-based CLI tool for “I have worked with Konstantin and can say he is bar-none the most technically minded automatically downloading and CTO and leader I have ever worked with. He has an amazing depth in system turning, installing Arduino Libraries into an scaling distributed architectures, ruby programming, and database tuning. Arduino project, that works somewhat similar to Bundler His biggest contribution, though, was building a super well-oiled engineering team that is the dictionary definition of efficient, lean and driving a fully automated deployment infrastructure, and enforcing best practices such as TDD in a pairing environment. CMake Project Template (318 ★) A popular template for C/C++ Overall Konstantin is a super passionate and creative projects that comes