Before our clients hire us, they've often already invested a lot of time, energy, and money into having custom web applications developed to help them solve some business challenges. They come to us looking for a team to provide dependable support and maintenance of their existing Ruby on Rails (and a handful of React) projects. We do this in the form of recurring retainers where we take care of small feature updates, bug fixes, performance improvements, chipping away at their technical debt, and helping them experiment as they navigate forward as a business.
This model means we rarely spin up brand new web applications for clients. It also means we get to build lasting partnerships and influence how companies plan for the life of their web applications.
So, if you're the type of developer that really enjoys building shiny new things or pitching entire app rewrites, this probably isn't the position for you. However, if you're the type of developer that enjoys jumping into the deep end of complex projects, helping iterate and improve software, taking responsibility, and being given opportunities to help lead projects, we should talk.
We are a small team and each of us wears many hats. In this role you'll typically focus on:
Participating in short daily stand-ups to outline what you completed yesterday and are aiming to accomplish today
Keeping an eye out for your teammates by lending them a hand in tackling a challenge
Jumping between 2 - 4 client projects/week (sometimes a few each day)
Collaborating with your team members in all parts of a project, from planning, to estimating, to coding, testing, and bug fixing
Documenting the tricks and lessons you learn to share with the dev community on our blog
Asking clients for clarification on requirements that you aren't sure you understand
Saying,"I don't know yet, but I'll help figure it out!"
Improving the overall test coverage of our client projects
Performing code reviews on your teammate's pull-requests
Googling weird error messages
Sharing praise when someone on the team does something amazing
Occasionally helping out with DevOps/sysadmin tasks
Sending your code for peer review
Taking advantage of our flextime scheduling to swing by the gym, go for a run before the rain starts, or sitting in the park with a book
Communicating directly with clients to help define features, user stories, improvements to existing applications
Deploying code to staging or production environments
Tracking time for our client work so that we can pay our bills
Sitting down with interns or junior developers to hone your mentoring skills
Noticing inefficiencies in our existing processes and taking note to raise it at our next team meeting
Adding useful information to the README files that will help your teammates