Engineering Team at Position Development

We're a software development company that serves leftist and independent media companies. We're dedicated to building quality software to help expand the breadth of discourse, culture, and thought available to English-speaking audiences. We also look for opportunities to grow our collective skill sets for unique and creative projects.

Job Openings at Position Development

Top Engineering Values

Each team is asked to select, explain, and rank their top 8 values in order of importance.
  • Team is Diverse

    Position Development is 50% women developers and 50% women-run.

    However, we don't see this as “good enough.” Our ideal is a company that is as diverse as the city we live in, on many different levels.


    The members of our team who are considered to be “diverse” in tech are not expected to do the bulk of the diversity work. Instead of expecting members who are marginalized in larger tech culture to educate the other members, we educate ourselves. With clients like Haymarket Books, publisher of Men Explain Things To Me and From #BlackLivesMatter to Black Liberation, we have no excuse to stay ignorant on any matter of social justice. Our office is also located in the Verso Books loft, which is a hub of activist organizing and education.

  • Actively Practices Inclusion

    As a small, democratically-run workplace, every worker is included in every important decision.

    We switch off on facilitating meetings and take care to hear each person’s viewpoints and not let any one of us dominate.


    We also try to think about how diverse and inclusive we want to be in the future when making decisions. We don't have any trans members, but is our health insurance trans-inclusive? None of us have kids, but are our work hours good for parents? We try to consider these things in our policies while taking into account the near-certainty we'll get it wrong and need to change in the future.


    We’ve sponsored Alterconf NYC, MoonConf, and Recompiler magazine, because we believe it’s important to support inclusive tech communities and resources.

  • Safe Environment to Fail

    We believe it’s important to be able to try things - whether it’s choosing a new tech stack or updating our workflows.

    We think this is necessary to learning and improving as a team. Inevitably, some of the things we try aren't going to be successful. When something goes wrong or we fall short of our goals, we don't look to figure out who is to blame -- we figure out where the gaps are in our processes (or our expectations!). We go into retrospectives with the understanding that people did the best they could with the conditions they had. A failed experiment isn't viewed as a personal failure due to our culture of support and accomplishment.

  • Open Communication

    Position makes every major decision collectively as a team, and many of the minor decisions as well.

    This is empowering, because everyone gets a say. It can also be challenging, because it requires patience, empathy, and deliberate communication.


    We have two main meetings each week: A sprint planning meeting on Fridays, and a “Kaizen” (“continuous improvement”) meeting on Thursdays. At Kaizen, we look back on the week and figure out how things are going and what we can improve about our processes. Meeting so often in a formal way has allowed us to get comfortable with each other, be honest and open, and facilitate effective meetings.

  • Work/Life Balance

    As worker-owners of a self-funded company, it’s especially important for us to consider work/life balance.

    It would be very easy to pour everything into making the company and our clients successful. To fight against this, we’ve developed policies to ensure that we all achieve personal and professional balance.


    • Our work week is only 35 hours
    • Workers accumulate 5 weeks of vacation each year, along with 10 holidays
    • In the holiday season, we work together to create on-call schedules that work for everyone
    • All our clients know that we aren’t available on weekends or evenings

  • High Quality Code Base

    Our goal is to deliver best-in-class software to all our clients.

    We use planning and estimation to help clients understand what feature set fits within their budget, not what level of quality they can afford. We closely collaborate on user stories and make sure we have as much information about current and upcoming work. This helps us make the right design decisions that balance immediate needs with long-term maintenance.


    When we program, we prioritize quality in a number of ways. We make extensive use of pair programming, code review, and test-driven development to create an environment where design is collaborative and the codebase is collectively owned. Since we have many long-term projects with clients, we spend a lot of time working on code we wrote months or even years ago. This helps us have a long-term outlook when writing features or fixing bugs instead of rushing to ship as much as possible every week.


    On the technical side, we have automated tests on every commit and automated deployment to staging environments when we merge to master. We strive to encode our infrastructure as code where possible and use automation to reduce repetition and errors. All of us are polyglot full-stack programmers which allows us to flexibly choose the best tool for a project whether its Haskell or Javascript.


    Our technical screen is a short coding exercise and we emphasize to our candidates that completion is not a criterion for success, and we instead look for insight into a developers process: Do they ask questions if something’s ambiguous? Do they use tests? Do they document assumptions? What is their design process?

  • Pair Programs

    We like to pair program on a regular basis and for most of the day.

    This is strongly supported through our contracts by ensuring that we’re booked for 2 people during a client week. Pairing together helps us transfer knowledge, solve problems together, and catch mistakes quickly.


    In addition, pairing supports many of our other values. It’s easier to maintain a high quality codebase when we encourage each other to write tests and documentation. Pairing helps us develop a safe environment to fail since we share our processes and outcomes with a co-worker. Pairing on all client projects helps us ensure that knowledge isn’t concentrated in a single individual and gives us flexibility when scheduling work.

  • Wears Many Hats

    Position works on billable client work four days a week.

    On Fridays, we do everything else -- and this can include invoicing, recruiting, marketing, sales, accounting, legal paperwork, planning, and much more. When important projects come up (for example, “becoming a cooperative”), we create working groups of one or two people to make sure everything gets done.


    We greatly value all this non-development work. However, we also believe that we do better work when we are able to focus, and we hope to reduce the number of hats each of us wears over time.


    If Position’s values sound exciting and interesting, we encourage you to check out our open positions and apply! If you’d like to know more about Position or if you have questions, you can also email us at work@positiondev.com.

Values

  • Team is Diverse
  • Actively Practices Inclusion
  • Safe Environment to Fail
  • Open Communication
  • Work/Life Balance
  • High Quality Code Base
  • Pair Programs
  • Wears Many Hats

Company Properties

  • B2B
  • Self-Funded
  • Technical Founder(s)

Team Members

  • 4 Full-Stack Engineers

Vacation Policy

5 weeks a year, plus 10 holidays

Tech Stack

Ruby on Rails, Java, Python, Haskell, Postgres, Redis, AWS, Docker

Interview Process

Our interview process consists of blind resume review, a 30 minute technical and behavioral phone screen, a take-home code test, and then a 3-4 hour in-person interview. The in-person interview consists of adding new features to your code test, technical and behavioral questions, and pairing on a real codebase.