Foxhound Systems

Foxhound Systems Software development company that builds reliable, high performance web applications. We specialize

Foxhound Systems is a software development company that specializes in building reliable, high performance web applications with superior security. We can help your organization develop a technical strategy and build software it can depend on. Creating reliable, fast, and secure web applications is at the core of what we do, but our expertise extends past just building software. We’re experts at s

ecurely hosting web applications, improving the performance and stability of existing software systems, and training software engineering teams. We specialize in using the Haskell and Elm programming languages.

04/03/2023

It's always disappointing to come onto a project that a client hires us for and see a path of over-engineered solutions that feel like resume-building projects left in the wake of past developers.

Everyone has programming languages they prefer, default choices when it comes to choosing a database, and deployment methods they like. However, the decision of what technologies to use should depend on the job and the person or organization paying for it. Moreover, tool choice should be made in consideration of the eventual hand off and who will have to maintain the system long after the initial project is over.

At Foxhound Systems, we have consistently gotten outstanding results using the Haskell programming language, but we won't even think about suggesting Haskell if our client doesn't have the team to support it and isn't prepared to commit to ongoing support from us. Maintenance and ongoing development in Haskell is easier than most languages, but only if you have access to staff with a solid knowledge of Haskell. In such situations, we use a different language that we think is a better fit for the project and the client.

Beyond language selection—and arguably even more costly—it's far too often that we see what resembles a bespoke framework or all encompassing library that has poor or zero documentation and introduces nearly incomprehensible complexity while also being more rigid than off-the-shelf options. I say this is more costly because, for example, an experienced developer can quickly come up to speed with Django (a Python framework) even if they have only limited experience with Python/Django. This is because there's excellent documentation available for both the language and the framework. Unfortunately, the same cannot be said for an over-engineered and undocumented custom framework, even if the developer has used the language before.

If you're hiring developers, whether it be contractors, freelancers, or employees, you should be thinking and asking questions about maintainability and what will come after a project ends. Unfortunately, for non-technical leaders, it's hard to know if you're wasting money on over-engineered solutions being built on your dime. In such a situation, it's a good idea to hire a third party to act as a consultant, evaluate your project, and advise you.

If you find yourself in this position, we can help. Read more about how and when we can provide technical guidance. Questions? Post below or reach out to us directly: [email protected]

Server side caching is a technique that improves performance of an application by reducing the need to run expensive que...
11/28/2022

Server side caching is a technique that improves performance of an application by reducing the need to run expensive queries and computations.

There's several facets to consider when designing caching in a system: correctly handling both cache hits and cache misses, cache invalidation, and selecting a cache data store, amongst others.

Learn more about how server side caching works and the its key design considerations in the latest post on the Foxhound Systems blog, a part of our "Essential elements of high performance applications" series.



Server side caching can be used to cut down the time required to return the results of expensive queries by orders of magnitude.

In 2002, Martin Fowler warned that "databases are optimized to handle up to three or four joins per query. Beyond that, ...
08/01/2022

In 2002, Martin Fowler warned that "databases are optimized to handle up to three or four joins per query. Beyond that, performance suffers."

In 2002, 1GB of RAM was considered to be a lot of memory and multi-core processors were brand new.

In 2022, a machine with 1GB of RAM and 2 CPUs is considered a hobbyist machine.

In 2022, consider using your database to its fullest potential, don't be hamstrung by advice from 20 years ago.

Don't know where to start? Check out our article on getting the most out of your database.



Offloading work from the application server to the database through the effective use of advanced SQL features can greatly improve application performance.

We're kicking off a series that covers essential elements of building high performance web applications.One of the bigge...
05/24/2022

We're kicking off a series that covers essential elements of building high performance web applications.

One of the biggest boons to performance in an application is effective use of SQL indexes. We'll examine several types of indexes as well as how to use them in this post.



Effectively using SQL indexes is a huge boon to performance of a web application.

Christian Charukiewicz, Co-Founder & Partner at Foxhound Systems, will be giving a talk titled "Why You Should Consider ...
10/31/2021

Christian Charukiewicz, Co-Founder & Partner at Foxhound Systems, will be giving a talk titled "Why You Should Consider Haskell for Your Next Production System" at Haskell eXchange 2021. This is a virtual conference, and you can sign up for free for the Novice track (which includes all the talks on the first day, including the aforementioned, on November 15th).

In this talk he will be discussing some of the defining features of Haskell that make it an excellent, industrial-strength programming language that is well-suited for building commercial software. You'll learn why we consider it our first choice for new projects at Foxhound Systems, and why you should too.



https://events.skillsmatter.com/haskellx2021

We recently worked on a project where we were tasked with creating a highly configurable rules engine.In order to solve ...
07/27/2021

We recently worked on a project where we were tasked with creating a highly configurable rules engine.

In order to solve this problem, we created an eDSL in Haskell to enable writing composable data validation rules in a declarative manner.



Creating and extending an eDSL for highly configurable and performant data validation.

A common misconception is that using a final tagless encoding means writing code against typeclasses. In this post we di...
05/27/2021

A common misconception is that using a final tagless encoding means writing code against typeclasses. In this post we discuss the not-so-complicated idea behind "final tagless" and how we can achieve many benefits with simple code.



Using a final tagless encoding does not require typeclasses, and we can achieve many of the same benefits with simpler code.

Everyone who writes SQL occasionally encounters poorly performing queries. SQL's UNION operation isn't typically employe...
03/19/2021

Everyone who writes SQL occasionally encounters poorly performing queries. SQL's UNION operation isn't typically employed for performance optimization, but it can be used to both simplify and radically improve query speed.



SQL's UNION operation isn't usually regarded as a way to optimize query performance, but in many cases it can be used to achieve massive improvements in speed.

The programming language Haskell has many distinguishing features that make it an excellent, industrial-strength tool th...
01/12/2021

The programming language Haskell has many distinguishing features that make it an excellent, industrial-strength tool that is well-suited for real world use. Here's why it is our first choice for building production software systems.



Haskell's features enable rapid development, easy maintainability, and excellent performance, making it a top choice as an industrial-strength programming language.

We've just published a new blog post: Using the strengths of Haskell's type system to improve the process of grouping SQ...
12/09/2020

We've just published a new blog post: Using the strengths of Haskell's type system to improve the process of grouping SQL query results.



Semigroups allow us to transform the denormalized results of our SQL queries into a structure that models parent-child relationships by focusing on the types we want to achieve rather than by writing tedious merge operations.

We started Foxhound Systems because we care about great software, and having worked as professional software engineers f...
12/06/2020

We started Foxhound Systems because we care about great software, and having worked as professional software engineers for a long time, we believe we can help other organizations grow by creating fast, reliable, and well-designed software systems. We have both seen and had our hands in creating a wide variety of software and products, and one trait that we’ve shared along the way is that we’ve always been on the lookout for ways to learn, improve, and help others.

Software doesn't have to be mediocre. We started Foxhound Systems to build something great. Let us introduce ourselves to you and share why we do what we do.

Address

Chicago, IL

Alerts

Be the first to know and let us send you an email when Foxhound Systems posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Contact The Business

Send a message to Foxhound Systems:

Share