Heading image for post: The Hashrocket Chicago Apprenticeship

The Hashrocket Chicago Apprenticeship

Profile picture of Chris Erin

The Hashrocket apprenticeship is currently open in Chicago. We hire one apprentice at a time and typically only one per year. We receive many applications for this position every week, but few are qualified, because few have the professional experience in Ruby on Rails we require. You may read this and think "Yes this is for me", if so, please apply.

Our Apprenticeship Program is not a First Job

It's not really an apprenticeship. "Apprentice" is the easiest term to describe what we have, which is an opportunity to learn web development and consulting in a great, supportive environment. What distinguishes this position from other apprenticeships is that we are specifically looking for developers who already have some professional development experience.

At Hashrocket we sell senior web development expertise to our clients. The goal of our apprenticeship is to hire someone who already has some experience with Ruby and Rails and in 3 to 9 months provide the teaching and mentorship that enables the apprentice to grow into a senior web developer.

Why is having some prior web development experience - Rails experience - necessary? Its because we feel there is too much for the bootcamp graduate, self taught dev or computer science student to learn within the apprenticeship window. The apprenticeship length is capped at 9 months for two reasons. First, because we do not want to put an apprentice under pressure for longer than 9 months. Second, we have to balance the cost of training the apprentice with the return of investment they would create as a senior web developer. 9 months is the longest time period that achieves that balance.


The focus of each apprentice is, of course, exploring the deep technology stack that powers modern websites. As web developers we spend most of our day making use of the knowledge we have in those areas. However, we place a lot of value in communication. Communication with our co-workers, communication with our clients, communication with future developers through code and documentation and communication with the outside world through writing and speaking.

For apprentices, we place a lot of value in communication, but that doesn't mean we wouldn't hire someone for whom that is a weakness. We always try to look at the whole picture of who someone is and, when hired, help them grow with the communication style that fits them.

The Stack

JavaScript, Ruby-on-Rails, Postgres. This is the stack that we focus on with apprentices. Nobody knows the whole stack from end to end and we don't expect apprentices to come through the apprentice program and know the whole stack. All three technical areas are impossibly deep and changing all the time.

We probably place a heavier emphasis on the database then most other consultancies in the same space. Postgres is powerful and can solve some problems much more performantly than Ruby as well as providing the guarantees that business critical data needs.

Ruby on Rails has become pervasive and our clients bring us many varieties of legacy code that we figure out, refactor and augment. We try to teach apprentices to be unafraid of tangled, messy legacy code, to understand it, and to bring the most out of it.

The JavaScript world changes to often for us to even throw our weight behind one framework or one way to write it. The language itself has so many varieties that its challenging to learn the JavaScript of one project and then move to another project with a completely different set of JavaScript syntax and patterns. As much as we can we try to teach the fundamentals of the language itself and familiarize ourselves with frameworks project by project.

This is the stack. These are the technologies that we expect our senior developers to know, but the world of technology is vast and ever changing and technical interest will always be the greatest guide at Hashrocket.

Ensuring success

Its important for us to be successful with an apprentice, we are a small company and the apprentice - along with every new hire - has a big impact on our culture. Given that, we put a lot of effort into every apprentice. Each apprentice is given a program that is specific to them and their experience, strengths and weaknesses. To ensure each apprentice stays on track and gets timely feedback we have an apprentice meeting each Friday with the apprentice program leaders and any relevant co-workers the apprentice may have worked with that week. Critically, we only ever have one apprentice at a time and each apprentice has access to all developers in the office to ask questions and discuss technical problems with.


If you have a bit of professional programming experience, if you want to have a supportive environment focused on helping you take the next step in your career, then please apply!

More posts about Apprentice