Like any tech-based business we work on many problems unique to our shop. We have our own ways of organizing work, approaching problems, designing architecture, implementing code, and maintaining infrastructure.

We draw heavily on our past experience in product development, and borrow just as heavily from external ideas that we discover along the way. We believe that “not-invented-here” is a uselessly incurious mindset.

We’re experts in building teams and slinging code. Our team is small, high-powered, tight-knit, and colocated in Austin, Texas, in an office full of freewheeling communication and challenge.

We have a hard time finding developers who can keep up with us. Their senior is our junior.

Do you want to join us? Try out some of the questions we post here in the blog based on what we encounter in our work. Broad and deep skills and strong desire to learn are essential. Answer some of the questions and show us your strengths.

From gitignore to docinclude

Creative documentation techniques

We have a lot of documentation at Vertalo: policies, procedures, regulatory information, and loads of technical docs. The later are scattered around all of our code repositories and are periodically gathered into a centralized internal documentation site alongside non-technical documentation. During a recent project to revamp and improve our methodologies for both developing docs locally within a repo and the gathering of repo-specific technical docs into the internal docs site, we encountered and interesting opportunity. [Read More]

Developers: Show Your Work

Advice for jobseekers

So you are looking for a new position working with great people on cool technology. You saw a Vertalo job posting and want to apply. How do you make a winning first impression? You can rely on your headhunter to persuade me that you have exactly the skills we need. Just remember that headhunters are rarely technical, and are unlikely to convey the substance of your great work as effectively as you do. [Read More]

Visualising Database Connections

Iterated dependency graphs

Introduction I work for Vertalo, a digital transfer agent — in short, we make the magic happen for the transfer of digital assets, such as tokenised securities, by maintaining and updating ownership records. Of course, having a robust, powerful, and well-designed database is critical. We have to organise and manage information about clients, issuers, transactions, and so much more. Traditional tools to facilitate working with databases include visualisations such as Entity-Relationship Diagrams (ERDs), but these suffer from two large caveats: first, they often require manual construction and updates, making them impractical for large and evolving databases. [Read More]

ChatGPT for Hiring

Fun AI applications

ChatGPT and similar new AI models have taken the world by storm recently. They promise to upend how we do everything. But how do we turn that promise into a practical reality? For example, how can we use it to enhance our hiring? An AI Internship We decided to find an intern to help us explore our two main interests in applying the new AI technology: coding and hiring. This intern will explore the tools, experiment with how they enhance these two activities, and then help us adopt new improved practices. [Read More]

Useful gmake Recipes

Reusable targets for gmake

The venerable make program comes in many flavors. It has numerous quirks. And it offers only a very restricted interface. Yet it remains an important tool for organizing project builds, deploys, and other operations. If you use make in your projects, chances are that you use gmake. Here are some useful tricks to use with gmake. Which make? Do you work on a system where make is not gmake? If you inadvertently invoke make, do you get a long list of syntax errors? [Read More]
gnu  unix 

Energy in the Room

Face-to-face makes a better team

The energy in our office is off the charts compared with most places. We work on lots of big problems. We are growing fast. Our clients demand more and more of us. We are a tight team, and we work face-to-face. Our team has been in the office together since June 2020. We bucked the work-from-home trend because it doesn’t support our dynamics and pace. It would be nearly impossible for anyone to keep up with us while working remote. [Read More]

The Interview Process at Vertalo

What to expect when you interview with us

The Basics We believe it’s important that you, as a job candidate, have a clear idea how the interview process works here at Vertalo and so we’d like to share some insight on what to expect. While we like to keep things friendly and informal, there is a sequence of steps we follow during the interview process: Our Homework Of course, we look closely at your resume. But we also look to other resources to gauge your qualifications: [Read More]

Shell Is Underrated

Essential unix skill

How much time do you spend at the command line? Most programmers say they are very comfortable there. Most also say they are good shell programmers. Shell programming is quirky, and not particularly elegant. Yet it is both universally available under unix and extremely powerful. Programming in shell is an easy way to cobble together simple experimental programs, especially if you master the art of unix filters. Sadly, very few people are competent shell programmers. [Read More]

Terraform count vs. for_each

Don't count on it

Terraform has two mechanisms for provisioning multiple resources (and modules since version 0.13): count and for_each. The count feature predates for_each. Now that for_each is available, there is no reason to use count. The Terraform documentation says “If your instances are almost identical, count is appropriate. If some of their arguments need distinct values that can’t be directly derived from an integer, it’s safer to use for_each.” This is bad advice. [Read More]

What Do You Mean Atomically?

Know your filesystem

Once I worked on a project whose origin predated the widespread use of DNS. They used /etc/hosts files to map host names to IP addresses. This system had grown to thousands of hosts, and the /etc/hosts file was about 1M in size. After any update, which was handled by a sysadmin, they pushed this file to all production hosts. “Wow! You update those files atomically when you push, right?” I asked the sysadmin. [Read More]