The Job - Full Stack Web Developer
Daily responsibilities primarily consist of coding database-driven web applications and other
web-related development work. In a typical day, you will likely work mostly with Python based web
applications using frameworks like Django or Flask that interact heavily with a database (usually
PostgreSQL). In the course of that work, you will have to interact with related technologies like
JavaScript, React/Vue, HTML, and CSS/SASS. There's also opportunities for you to be involved
in devops work if interested.
This is not a design job. It will require a lot of in-depth programming and database work including
the ability to architect maintainable code that gets the job done.
While we do prefer to do most of our back-end work in Python, we will occasionally take projects in
other languages if they seem to be a good fit for us and the customer.
Some days you will jump from project to project as issues come up. At other times you may work
primarily on one project for weeks, months, or occasionally years.
Our customers have varied needs and so we tend to have varied responsibilities and projects. We have
a focus on serving the customer and making software conform to their company rather than making the
company conform to software.
Management
Your immediate manager will be a "Team Lead." This is a senior developer, project manager, and team
captain all rolled into one. It's also someone whose proven to be talented with both code and
people, especially communication. We don't believe non-technical managers bring a lot of value to a
development team, so we don't use them. Ditto non-technical project managers. We keep our dev
teams small and they usually have a small number of projects so that our team leads don't get
overwhelmed. Communication with clients usually involves the team lead and the developers working
on the project. We try to avoid the "phone game" whenever possible.
The ability to take ownership for a project, engineer a sound technical solution, and "drive" a
project to completion is essential. Your team lead will be a ready and willing resource to help
you architect solutions and/or solve problems, but won't micro-manage. If you aren't asking
them for help or indicating you have a problem, they will assume you are making good progress on the
issues assigned to you during sprint planning, which happens every two weeks.
Our CEO/CED and CTO are both software engineers and heavily involved in the engineering operations
of the company. They oversee the health of the development team and projects, help our sales team
evaluate opportunities for technical and capacity fit, gather feedback from the devs on what is and
isn't working in our tech stack and/or processes, and consider the value that emerging technologies
might bring to our organization.
Sustainability
"Agile processes promote sustainable development. The sponsors, developers, and users should be able
to maintain a constant pace indefinitely" (Agile Manifesto principle).
We actively manage every part of our organization through the lens of what is reasonably
sustainable. For example, it's why we:
- Keep our dev teams relatively small
- Emphasize a 40 hour work week
- Are candid with our clients and set realistic expectations for them
- Are relatively slow adopters of new technologies (so we can see if there is actual value
there...not just hype and thereby avoid needless churn)
- Promote professionalism, mitigate drama, and cultivate reasonable relationships with each other
- Regularly seek input from the team on what isn't working for them or where improvements can be
made
We don't want anyone to burn out. We'd prefer our team to be here and fully engaged for years to
come.