Résumé
Work Experience
Partner & Principal Software Engineer Oct 2020 - Present
Foxhound Systems
Foxhound Systems creates software systems that inspire confidence and enable organizations to do their best work. We use a wide array of programming languages coupled with a variety of techniques such as SQL query optimization and database tuning to achieve superior reliability, performance, and design.
We recognize every project is different and are committed to using the right tools for each job. When performance, reliability, and maintainability are paramount, one of our specialties is using the Haskell programming language with the PostgreSQL database as we find this combination consistently drives excellent results, allowing us to achieve the excellent outcomes faster and with more consistency than by using any other approach.
- Worked with clients in a variety of industries, including ecommerce, video streaming, and financial services.
- Served as primary point of contact for all clients and managed all client projects
- Led the design, build, and delivery of full stack web applications, API systems with strict performance requirements, as well as platform specific projects including Shopify apps
- Created software systems using numerous tools and technologies, including Haskell, Python, Node.js, React, Ruby on Rails, Laravel, PostgreSQL, MySQL, Tailwind CSS, Stimulus
- Deployed and maintained client software systems on a variety of platforms, including AWS and Heroku using numerous infrastructure/build tools, such as Docker, Nix, GitHub Actions, BitBucket Pipelines, AWS ECR/ECS, CloudWatch, Sentry
Chief Technology Officer May 2014 - Oct 2020
Roompact
- Set long term road map for product development; continually raised standards for application design, architecture, documentation, performance, security
- Led hiring process for technical employees and interns; developed and led training of new technical staff
- Chief architect of new features, functionality, and underlying infrastructure; led team members in making design decisions ranging from database schemas, to user interfaces, to application-specific RESTful APIs
- Introduced the Haskell and Elm programming languages as the foundation for new development; taught Haskell, Elm, and functional programming concepts to technical team members with no previous FP experience
- Planned and executed the transition of company server infrastructure to Amazon Web Services; reduced technical infrastructure costs by 70%
- Employed a variety of AWS tools and services, including EC2, RDS, S3, ELBs, SES, Route 53, Lambda, CloudWatch, CloudFront, IAM, Inspector, etc.
- Achieved completely automated and reproducible Linux server deployments and configuration management with Bash and Ansible
- Utilized and educated team members on the use of a variety of programming languages, infrastructure tools, and frameworks: Haskell, Elm, JavaScript, CakePHP, Node.js, Jekyll, HTML, SASS/SCSS, Nginx, MySQL, Redis, Supervisor, Ansible, Nix
- Established internal code review process to improve overall software quality, encourage exchange of knowledge among technical team members, and increase the bus factor of various system components
- Educated team members on use of various technical tools, such as Vim, tmux, ssh, remote filesystems, git, Linux CLI tools such as grep, sed, awk, tail, piping, filtering logs, use of code linters, refactoring tools, dotfile configurations, Bash and Python scripting, etc.
- Facilitated and supported professional development of technical team members; assisted in development of key skills and long term goals; provided guidance in learning specific topics
Product Development Lead Oct 2011 - Nov 2013
Next Generation Gaming
- Product management & development position; led and coordinated a team of software developers, QA testers, and customer relations staff to create features and digital products leading to increased player engagement and revenue in an online-RPG environment with over 20,000 players per month
- Designed and led the implementation of an in-game credit system which automated all product sales, removed sales overhead costs, and allowed for the creation of several new categories of products; increased average monthly revenue of the company by 35%
- Planned and assigned projects, held development meetings, wrote technical specifications, analyzed player data and trends, determined project costs and time requirements
- Performed quantitative analysis of product sales, used results to develop marketing and sales strategies, instructed customer relations staff on how to execute sales strategies
- Surveyed players to gauge response to game updates and gather general feedback
- Worked extensively with the PAWN language, MySQL, and PHP
EMT-Basic (Volunteer Position) Aug 2012 - Dec 2014
Illini Emergency Medical Services
- Staffed various types of events as on-site EMT
- Led teams of other EMS providers (typical team size was 2-4 EMS personnel)
- Provided pre-hospital basic life support to patients
- Performed equipment checks and recorded equipment inventory
- Coordinated with other agencies (Police, Fire, EMS) during large events (marathons, football games, etc.) to ensure coverage
Open Source Software
isbn (Author) - Haskell library for validating and working with ISBNs
- Authored the isbn Haskell package, which enables validating and manipulating International Standard Book Numbers (ISBNs).
- The package includes detailed documentation, use-case examples, and a suite of automated tests.
- See the
isbn
package on GitHub.
Yesod (Contributor) - The most popular Haskell web framework (top 0.1% of all Haskell packages)
- Made improvements to the yesod-auth Haskell package, enhancing the developer-facing API to enable more control over user registration and password reset workflows
- Improved developer-facing framework documentation
Esqueleto (Contributor) - One of the most popular Haskell libraries for interacting with SQL databases (top 0.1% of all Haskell packages)
- Ported elements of SQL into the esqueleto Haskell package, improving the package’s coverage of SQL and helping developers avoid resorting to using prepared statements
- Wrote detailed documentation and examples for an experimental new syntax in the package, demonstrating usage of new package features and explaining design decisions
Technical Skills
Advanced BasicHaskell Elm Linux JavaScript PHP MySQL Redis SQLite CSS/SCSS HTML | PostgreSQL Nix Git AWS Ansible Nginx Python | Apache Bash Node.js DNS SPF, DKIM, DMARC | Svn | LaTeX OCaml | Java | C C++ |
Education
Universitiy of Illinois at Urbana-Champaign 2010 - 2014
B.Sc. in Mathematics & Computer Science, Philosophy
College of DuPage 2012
EMT-Basic Certification
Projects
QuickPhrase - GitHub
A browser-based game designed to be played on a phone written in the Elm programming language.
charukiewi.cz (this website) - GitHub
An ongoing project. A blog website (currently built using Hakyll). A test bed for various design ideas and other web related experimentation.
Project Euler Problems - GitHub
A progression through a series of increasingly difficult math problems, solved programmatically, using various techniques and programming languages like Haskell and Python.
Beer Manager - GitHub
A simple RESTful API built with Flask (a Python microframework) designed to serve as the back end for a beer rating website or application.
Spoken Languages
English, Polish