Unconventional Thinking
Unconventional Thinking
Building software that has
useful features while still
being easy-to-use takes
a lot of work, but we feel
the greatest satisfaction
in seeing our users happy.
Our Products
Hierarchy is an open-source
compiler that extends the
Java programming language
with an entirely new language
for data
Unconventional Thinking
This website, the one you're currently viewing, seems pretty straightforward, but actually has some interesting technologies behind it.
We wanted to try the best of the latest tech, so we used the following tools:
These lightweight virtual-machines (or "containers") greatly minimize the problems of deploying an application to production. For complex applications, deployment can be a nightmare, because for even moderately-complex setups, it's easy for the developer's setup to get out of sync with what is installed in production.
Creating a container can be a decent amount of work, but in the long run using them saves companies enormous amounts of time that would be wasted fixing problems in their deployments - and on top of this, Docker is just a really fascinating technology to work with!
Amazon Web Services
Amazon Web Services (AWS) provide all the infrastructure and application servers needed to run almost any type of application, from standard eCommerce websites, to machine-learning batch-jobs. And one of the its most useful features is that all your infrastructure can be defined as code! Called "Infrastructure As Code" or IAS, servers, networks and load balancers are not directly wired together. Instead, they are wired "virtually," and these virtual connections can be defined in a scripting language called Cloudformation. In a Cloudformation script, you describe your server hardware and network setup, and when you run the script, AWS creates these connections between the devices, so that your infrastructure is assembled in a matter of minutes!
We deploy the Docker containers that runs the code for this website into AWS. AWS then manages our containers using their Elastic Container Service.
Responsive Websites
Websites these days need to be readable in the large screens of desktops and the small screens of cellphones (and everything in between). To support this large range of browser sizes, web programmers can use Responsive-Website techniques to allow their websites to grow or shrink to different sizes.
On a personal note, it was a chore to get the Unconventional Thinking website to look good at almost any size - Response Websites are surprisingly a lot of work because it's like creating three sites in one - but we feel the results are worth it. In fact, if you're on a desktop computer, try scrolling back up to the top of the page and reducing the width of your browser, until the page is as small as a cellphone. You should see the site constantly reconfiguring itself to match the smaller proportions.