LEAD SOFTWARE ENGINEER
with Leadership Experience
2655 Farnsworth Ln.
I am a lead software engineer with functional programming and leadership experience, with strong focus on software quality and maintainable code design.
- Created a loan schedule amortization algorithm in Haskell
- Implemented horizontal data scaling by researching and implementing database sharding.
- Built a team of 12 engineers while leading the architectural design of our application. Under my technical leadership, the company doubled its customer base, grew its revenue by 400%.
- Assisted with the process of acquiring Series A and Series B funding.
- Open Source Contributions
- light-service, my open-source Ruby gem for implementing series of actions
- mocha.js, restructured its test suite, added better messaging to its reporters
- Created a learning project in Haskell with small, repeatable exercises
- I wrote a blog series on how to set up and use Haskell's YeshQL
- Authored a step-by-step tutorial to deploy MRI Ruby to AWS Lambda
- I created a blog series on how to set up and use Clojure's YesQL
Principal Software Engineer, Chicago, IL [ Sept. 2018 - Present ]
- Created a loan amortization schedule application
- Created a loan amortization schedule application in Haskell. Added the necessary connecting code to our Rails API app, that mediated between the SQL Server legacy database and our Haskell service.
- Led an in-house intro to Haskell course
- Leveraged my own learning project, Haskell Katas to teach introductory Haskell to other engineers at the company.
- Tech stack:
Principal Software Engineer, Chicago, IL [ Nov. 2015 - Aug. 2018 ]
- Explored Redshift as a data warehouse solution
- Evaluated AWS Redshift for our data warehouse needs. Designed a star schema with its ELT process, researched window functions to create time-series data. Created a Go application to calculate surrogate keys and built a local build process for automated testing.
- Implemented database sharding
- I unlocked my employer's unlimited growth potential by researching, designing and implementing database sharding. Led a team of 4 engineers, we delivered our goals without slowing down app development. Built a fast, multi-threaded ETL to transfer existing clients' data into the sharded databases. Designed and built monitoring tools for the different schemas to keep them in sync.
- Designed and implemented the company's data importer application
- Removed duplicated logic and enhanced performance of our data-import workflows by creating a two-step solution: it imports data from various data sources and puts it into a structured document first, then it uses this payload to save data into various data stores. The open source Ruby workflow tool I authored - LightService - is used for these applications. Achieved 99%+ test coverage, continuous deployment and rapid implementation for new data sources.
- Shifted the company's code from monolith to microservices
- Extracted the data importer application into a queue-based asynchronous Ruby app, moved shared logic into an internal gem.
- Tech stack:
Chief Technology Officer, Chicago, IL [ Feb. 2013 - Sep. 2015 ]
- "Brought home" the company's application from external contractors
- As the company's first software engineer, I took over the project from external contractors. I maintained and enhanced it until the engineering team was able to take it over.
- Built a team of 12 engineers
- I hired and managed front-end, back-end, QA and site reliability engineers.
Set up engineering metrics to monitor our application performance and our delivery. Crafted Engineering Core Values and made sure the team adhered to those.
- Led the application's refactoring and quality improvement effort
- Improved code quality by extracting business logic into Rails-independent service object. Added unit and Gherkin-based acceptance tests to the project, set up build process.
- Organized and led the company's Research and Development Department
- Led the designed of an Enterprise Data Warehouse to synchronize data between various data sources. I researched and created our company's API layer,
built its documentation and created a client application for easier API implementation.
- Tech stack:
Other Work Experience
I helped Intuit - MRI Software with their new application development. I led a
team that developed a Business Intelligence tool by crafting dynamic SQL scripts with the help of NVelocity templates.
I worked for Progressive Insurance as a lead software engineer.
I led the development of converting a mainframe data store to client/server architecture, trained co-workers on object-oriented application development.
I also worked on their policy issuance system that was the largest software development effort in the company's history.
- "Blowin' Up Your Database" talk at the Ruby User Group - Chicago, IL [ Mar. 3, 2018 ]
- Described how we split our customers' data into smaller, sharded databases.
- "Simple and Elegant Rails Code with Functional Style" talk at RailsConf 2013 - Portland, OR [ Apr. 29, 2013 ]
- This talk was recorded by Confreaks and can be viewed on my blog.
- MS degree with a Dual-Major of Computer Science and Economics, graduated in 2000