# Luke Cook > Software Engineer, Seeking Opportunities Location: Greater Syracuse-Auburn Area, United States Profile: https://flows.cv/lukecook ## Work Experience ### Senior Software Engineer @ Datasembly Jan 2020 – Jan 2024 Responsibilities - Build & maintain web scrapers for grocery domain data - Implement architectural advancements to web scraping framework - Reverse engineer site APIs; adapt to scraping framework - React to bot detection; develop and apply obfuscation techniques - Work with Product and Customer teams to convert data to actionable insights - Lead domain-specific dictionary initiative Projects - Developed headless browsing framework in Scala using Playwright - Proposed, by me, to replace the existing framework written in Puppeteer / Javascript - Playwright on the JVM greatly reduced development and deployment complexity; no longer needed to maintain a cluster of headless workers, or a remote execution DSL - Enabled scraping of websites that required Javascript execution, had sufficiently complex login APIs, or employed encryption of API request information - Framework was developed to easily allow different headless browser libraries to be used - Primary Developer who created & maintained scrapers for Amazon, Instacart, and Shipt - Some of the most complex data sources we collected from - Instacart was an easy avenue for collecting new banners, creating fast turn around for new customers - Instituted new code paradigms that others could leverage to make scrapers more legible, and stable ### Software Engineer @ Hyperfiddle Jan 2020 – Jan 2020 | Pittsburgh, Pennsylvania, United States Responsibilities - Development on Full Stack Clojure (script), Datomic CRUD application framework - Setup CI/CD pipeline using CircleCI and AWS ECR and ECS, configured in Terraform Projects - Formalized extensible algebra for Datomic statements - Algebra supported simplification of negating statments (eg. 1 + -1 = 0) - Frontend logic would submit new statements on change, and the state would self simplify - Datomic statements were proved to form an Algebraic Group - Research and Development - Reactive streams for rendering in Clojurescript - Category theory-based programming in Clojure - Pattern Matching algorithms ### Applications Programmer II @ Cornell University Jan 2019 – Jan 2020 | Ithaca, NY Responsibilities - Improved backend of genomic data ETL application - Created CSV file digest framework - Developed end-to-end testing framework Projects - Worked on backend of genomic data ETL application - Created CSV file digest framework - Provided a data file, and a descriptive aspect file, the application produces a stream tuples that would be committed to a database. - Aspects would be used to generate streams of cells; these streams would be aligned based on properties of each aspect - Written in Java; strong focus on an object-oriented design - Developed framework for automated end-to-end testing; focused on composability, ease of use, and self-cleanup - Developed domain-specific scripting language to simplify semantic layer of test suit in 3 layers: Arrange/Act, Assert, and Cleanup - Was built in 3 separate components: A language backend (written in Clojure), a business logic middle layer (written in Java), and a testing logic script suite (written in custom syntax) - Cleanup ensured automatic test independence and idempotency; tests were often run on deployed production environments ### Application Developer @ Swiftwater Brewing Jan 2015 – Jan 2020 | Rochester, New York Developed and deployed point of sale solution. Currently maintaining every and all computer related work. ### Software Engineer @ Intuit Jan 2018 – Jan 2018 ## Education ### Bachelors in Computer Science Rochester Institute of Technology Jan 2015 – Jan 2019 ## Contact & Social - LinkedIn: https://linkedin.com/in/invocatis --- Source: https://flows.cv/lukecook JSON Resume: https://flows.cv/lukecook/resume.json Last updated: 2026-03-22