Disclaimer: Thanks to Jesse Mecham (an awesome person and CEO!) at YNAB (an awesome company!) for sharing his time, thoughts, and resources on building and representing the culture at AVP. That includes helping us write better job posts. Like this one.
At AVP, we partner with the best clients in the world and build applications that radically improve the way people work and use information. As a Software Engineer at AVP you may be working on our groundbreaking Aviary product, consolidating public data sets to analyze supply chains for bad actors, creating media forensic analysis tools (we can’t tell you for who until you learn the secret handshake), working on building a first-of-its-kind platform for mass-generation of metadata for audiovisual content, and so much more. Your days will be filled with exciting and fulfilling work.
When we say Full Stack, we mean that you like being in the trenches with code, are comfortable at various levels of the stack, and are familiar with the following (not exhaustive):
- Server-side languages like Ruby and Java
- DevOps tooling and services like Rubocop and Github
- Cloud storage and compute environments like AWS and Wasabi
- Database/SQL/noSQL development and optimization (MySQL, PostgreSQL, SQLite, MongoDB)
- Agile methodologies and tools including Jira
That’s some of what you’ll be working on. But let us tell you about us and what it means to be an AVPeep.
A Bit About Us
We maximize the usability of data by resolving large-scale, multifunctional, and enterprise-wide, digital and physical audio, video, image, metadata, text, numeric, and other data challenges with consulting services, software products, and software development. We holistically straddle business and technology aspects of each challenge, apply proven and rigorous approaches, and collaboratively partner with customers to innovate and overcome. We love solving big, complex, difficult problems that have a huge positive impact on people (and little, simple problems that are just annoying and should be squashed because they can be). Take a look at our portfolio and you’ll see what we mean.
We’re profitable, bootstrapped, and growing. AVP started in 2006 and we’re in it for the long haul.
We have one overarching requirement when it comes to joining our team: our Vision, Values, and Operating Principles have to really click with you. If you’re nodding emphatically while reading it, you’ll probably fit right in!
At AVP we know that as we grow, we need to increasingly reflect the world we live in and the clients we serve. We are committed to growing a representative team from multiple age groups, abilities, cultural backgrounds and genders. AVP continually strives to promote a culture in which all employees feel included and where all voices are heard and appreciated. Whoever you are, wherever you call home, we want you to feel free to be your authentic self at work.
First, let’s talk about life at AVP and then we’ll go into detail about what we’re looking for.
Who You’ll Be Working With
Our team of Software Engineers is 7 people strong and spread across the globe, but we all work pretty closely. For that matter, we also work in cross-functional teams frequently so you’ll get to work with people in all different roles in the company and on both products and projects. As a small sampling, here are a few teammates that you’ll definitely rub digital shoulders with:
Kara, AVP Partner and Senior Consultant, is our chief evangelist of continuous improvement. Kara loves systems – creating them, adopting them, putting them to practice, refining them, eating them for breakfast, you name it. As a natural born leader, Kara was the one in her neighborhood that inspired and organized all the other kids and made things happen. As an adult she continues this, convincing her husband and friend James to do awesome things like eating the food of every country in alphabetical order without leaving New York City or driving a small car on the Silk Road from Europe to Mongolia. Kara brings this same rigorous approach and fun spirit to AVP, keeping us excited and never complacent.
Bert is an AVP Partner, Senior Consultant, and Aviary Co-Product Owner. He lives in Madison, Wisconsin, and somehow manages to be a jack of all trades AND a master of all trades. Bert wouldn’t say that because he’s humble (so much so that whenever we rent a house for a team retreat Bert claims the worst bed in the worst room immediately). We would all say it, because aside from constantly impressing us in a professional setting, he manages to beat us at all competitive endeavors. Ever. Of any type. Yes, including curling. Treasure the skills that get you this job because they may be the only thing you can hold over Bert. Fortunately, Bert is also a hell of a nice guy, so don’t worry. He won’t make you feel bad when he beats you at everything else.
Kerri joined the team in March of this year as Aviary Product Manager and AVP Senior Consultant. Kerri adds to our Brooklyn crew where we now roll 5 deep (going to have to get a car with more seats if we add any more). Although Kerri specializes in self deprecating humor, she’s an all around funny person and a delight to work with. But don’t let the laughs and smile fool you into thinking that Kerri is anything less than a powerhouse. She has a deep passion for the work we do and brings her best to everything she does. In other words, there ain’t no half steppin’.
Dan is a data scientist and one of our full-stack developers. He lives in Madison, Wisconsin and he is currently having a great time simultaneously working on media forensic analysis tools that we can’t talk about for a client we can’t talk about, metadata embedding tools for the Library of Congress, and working on wildly complex data analyses and algorithms to gain insights into supply chain issues including deforestation of the rainforests. Dan actually works with us as a contractor (we won’t hold that against him), but we work so much together that he feels like fam. Dan comes by his ability to grapple with, and make sense of, mind-blowingly complex sets of data honestly. His father was in baseball doing statistical analysis and worked with Bill James, the creator of the Moneyball theory.
Nouman is one of our Senior Software Engineers working out of Lahore, Pakistan. Nouman has been part of the team since 2010 and has become one of the leading software engineers in the libraries and archives ecosystem. Nouman embodies the humble talent that we call out in the title of this job posting. It took us several years to get him to laugh (which almost certainly says more about us than him), but now he’s got us all LOL’ing at every standup. We think he may have a second career as a comedian, but for our sake we’re hoping that doesn’t come anytime too soon.
How You’ll Work at AVP
We work really hard to make working at AVP an amazing experience. We have a team full of truly exceptional people—the kind you’ll be excited to work with. Here’s how we operate:
Live Where You Want
We’re a distributed team, so you can live and work wherever you want. Proximity doesn’t influence productivity. Some of us are more nomadic than others, but between work trips, personal trips, and just wanting to work out of different places, where we work from isn’t all that important. Not all of us travel so extensively, but the fact that some of us do is totally okay because we’re all adults. As long as we have a reliable internet connection and communication is flowing we’re all set.
No Crazy Hours
It’s not uncommon that we work more than 40 hours per week, but we intentionally do not make a habit out of it and we discourage it when it’s unnecessary. We work hard and smart, but we’re in this for the long haul, no need to go crazy on the hours.
Take Vacation (Seriously)
We want you to take vacation. It’s important to get out and do something. We’ll look forward to seeing pictures of your vacation on Slack and hearing about your adventures at the weekly standup after you return.
We get the team together in one place three times a year to catch up on six sigma techniques in a windowless conference room with fluorescent lighting. Just kidding. So far, we’ve done retreats in the mountains of Wyoming (in the summer), the coastline of Florida (in the winter), and the cheese curds of Madison (at all times of year). We take advantage of working together, have a strategy and planning session that is usually led by the one and only Jim Canfield, and do really fun things. The highlight is always hanging out together and having a blast.
Up Your Game
We’re serious about professional development at the individual and team level. We budget the time and the money for it as part of our annual planning. Think conferences, Agile training, Lynda subscriptions, books, dedicated time away from work to learn something new… it’s really up to you and your supervisor. But we have a culture of continuous improvement and we love to see our people growing (and teaching us what they learned!).
Because We Give a Damn
You’ll be a W2 employee with fantastic benefits including 401k and profit sharing. AVP contributes three percent whether you choose to throw any money in there or not. It vests immediately.
If this sounds like something you can get on board with, let's get back to talking about you. You will play a big part in helping AVP maximize the usability of data in service of our amazing clients and the fulfillment of their vision and mission.
Now, Back to You, Our New Full Stack Software Engineer
You’re an experienced server-side developer that knows how to ship, monitor, and maintain large SaaS apps (not just websites). You’re an expert in at least one modern server-side framework (Rails, ASP.NET, etc). You aren’t intimidated or turned off by desktop apps either.
You’re not necessarily the “Ops” person where you work, but you certainly understand the infrastructure well enough to aid in architecting and maintaining scalable solutions. Experience with OVH, Heroku, AWS, Wasabi and/or other popular IAAS/PAAS is good.
We have four main areas that you will play a role in:
- AVP products
- Custom software development
- Client projects
For our main product, Aviary, you’ll help vet and improve our server-side layer, implement new features, develop our API, integrate with third party API’s, and shepherd the application. We might have conversations that start like this:
- “How can we be certain that our application is going to scale as we grow (web scale)? How did the other apps you worked on handle similar load conditions?”
- “We want to develop an API for internal and 3rd party purposes. What’s the best strategy for this?”
- “We need to integrate with a new partner. How do we set it up so that we can reuse most of that work when we bring on another partner later?”
- “How can we be sure that we are using the most current best practices with regard to security?”
- “What monitoring tools can we use to help detect and troubleshoot issues?”
AVP has a variety of products that we have developed alone and with clients that we are responsible for managing, maintaining, and supporting. These range from desktop applications to SaaS applications, encompass closed and open source projects, and are written in a variety of languages. We might have conversations that start like this:
- “How do we turn this into an app for sale in the app store?”
- “How can we improve the quality and performance of this application?”
- “Help us figure out a strategy for managing our suite of products with regard to development, maintenance, and support over the coming year.”
For custom software development projects you will work with AVPeeps and the client to elicit and document requirements and use-cases, scope projects, propose methods and strategies, and ultimately create an awesome application that meets the agreed upon requirements within the scope and budget of the project. We might have conversations that start like this:
- “What are the top 2-3 options for tackling this set of requirements and what are the pros and cons of each?”
- “What questions do you have to help clarify the requirements and use-cases for this prospective software application?”
- “What information do you still need to be able to estimate the level of effort for this project?”
- “What are the variables that may cause surprises and how can we mitigate and plan for those
It is also frequently the case that we work in cross-functional teams on projects for clients in which the outcome is not a product, but rather data that has been migrated or data that has been acquired and consolidated from multiple sources.
- “What are our options for acquiring these identified data sets in the most efficient way possible?”
- “What tests can we write and implement to prove that all data has been migrated without loss, corruption, or alteration?”
- “How can we speed this process up by a factor of 10?”
- “What algorithms can we use to answer the following questions with this data set?”
You’re Our Person if You
- Are an excellent developer and can adapt to new languages quickly.
- Aren’t intimidated by working with non-AV and AV projects alike.
- Have plenty of war stories to tell about the last time you launched a big SaaS application, or weathered a massive spike in load, or recovered from an outage.
- Have excellent debugging skills. You know how to find problems, and how to architect apps so that problems are discoverable in the first place.
- Know your way around SQL and relational databases. If the database layer turns out to be the culprit behind an issue, it’s not a black box to you.
- Understand basic algorithm design and data structures: You know that a binary search is faster than a linear search, and a Hashtable/Map lookup is faster still. You might not remember all your data structures off the top of your head, but you know you have options and know how to Google for them.
How to Apply
- Apply here by 11:59PM on July 31st, 2019. Firm. It’s a real deadline.
- Attach a pdf of your cover letter. In your cover letter:
- What are your two strongest programming languages? Is there another language that you’re curious to learn next?
- If you were interviewing a prospective candidate for this position, what would be a good interview question to ask to find out if a candidate really knew their stuff?
- Introduce yourself and explain why this position is of interest to you, and why you would be a great fit.
- Please include links to apps you’ve built or anything else that makes you look good, and describe your role in building those apps. (If they’re internal, you can skip the link part).
- Include answers to the following questions:
- If you have a prepared resume, attach it in PDF form. If you don’t have a resume because you aren’t even sure you’re looking to change jobs, that’s fine! An informal list of your work and education history are all we’re looking for.
The Interview Process
This is a high level conversation seeking to find out more about the candidate, their interests, goals and objectives, background, and to assess for cultural and skill fit at a high level. Also to tell them about AVP, our culture, goals and objectives, services and products, and answer any questions they have.
If the exploratory call goes well, one or two AVPeeps will meet with the candidate, focusing in on a chronological walk through of each job the candidate has held focusing in on five core questions: What were you hired to do? What accomplishments are you most proud of? What were some of the low points during that job? Who were the people you worked with? Why did you leave that job?
At the end of the interview we will discuss your career goals and aspirations, and you will have a chance to ask us questions.
If the reference interviews go well, there will be an all-team meeting setup with the candidate. This is a chance for the team to meet the candidate and for the candidate to meet the team. The agenda is as follows:
- Round robin introductions of AVPeeps [5 minutes]
- Candidate introduction [10 minutes]
- AVP questions for the candidate and discussion [60 minutes]
- Candidate questions for AVP [30 minutes]
P.S. If you’re not interested in or available for this position, but know someone who is, we would really appreciate it if you passed this along!