These questions came out of a Culture Amp JEP Breakfast event that CA hosted on the 2nd October, 2018. These were questions written down by juniors on some index cards. I’ve split them into three parts: Before the Program, During the Program and After the Program. The answers (written during the following week) for these questions might be helpful to the juniors now and into the future, so I’m posting them here for posterity. These answers might age / change over time. YMMV.


Some of the questions that were asked

<h2>Before the Program</h2>

<h3>How many people have applied? What are the chances of getting in the JEP? / How many people are you taking?</h3>

For our first program, we received 130 applicants, and about 70 got through to the coding test stage. We were aiming to take on 3 people, but ended up taking on 5.

For our 2nd program, I’m not ready to discuss exact numbers yet, but we’re hiring 6 people as that’s what we have space for in our organisation at this point in time. That’s the bad news, because it’s a very competitive process and this job is in pretty high demand. I’d love to hire more as I can clearly see there’s a lot of juniors trying to break into the coding world.

The good news is that if we reject you at any step of our interview process we will give you personalised feedback on what you could’ve done better. This is so that when you apply next time you’ll have a better chance of meeting our expectations then.

Culture Amp does this because we’re a feedback-oriented company, and we strongly believe a flat “no thanks” from us is not great feedback for anyone, juniors included. I’ve received enough “no thanks” in my time to know how utterly crushing that could be, so I don’t want to inflict that kind of thing on anyone else.

What are the main 2-3 qualities you are looking for in the JEP (apart from technical)?

</a>

We’re looking for people who love working with other people to improve culture all over the world. Bonus points for being technically minded. This is a pretty tricky question to answer without using any buzzwords. It’s really one of those “we know it when we see it” things.

The people who did really well during the first JEP process were all of the above, demonstrating some really good social skills / abilities, and that typically came from them having worked in other industries before applying for the JEP.

All of our first-round JEP people were career-changers. So maybe there’s something in that to consider.

<h3>How good at Ruby do you actually need to be to move to the tech interview after the coding test? / I don’t know a lot of Ruby. Is that going to be a problem?</h3>

Let’s start with why the coding test is even in Ruby to begin with.

For JEP #1, the idea was for it to be pretty backend focussed as I wanted to teach what I knew best, and at the time that was pretty Ruby weighted. That meant that the first JEP coding test was Ruby too. The 2nd one is also a Ruby-only coding test because I wanted to try it again to see how much I could “improve” the coding test and really test the Ruby abilities of candidates.

Now that I’ve ran at least one JEP, I realise that there are lots of people coming from mainly two coding backgrounds: lots of backend focus or lots of frontend focus. So it would make more sense perhaps for JEP #3 to have not one Ruby-only coding test, but perhaps a JavaScript test as well, testing on as much of the same things as possible. This could be possible because the two languages share a lot of similarities. It’s something I’m mulling over.

Okay, so that’s the why out of the way. Now to actually answer the question: for the JEP we’re expecting a “baseline” level of Ruby. Things like:

These are things that you would probably find out within the first 8-10 chapters of any good Ruby book.

<h3>How much is the JEP salary?</h3>

I think this is one question that I’m not able to answer directly in such a public space like this site. However what I can say is that we pay competitively within the industry. We’re not going to pay you peanuts because you’re a junior developer. We will pay you a respectable wage.

<h3>For the last JEP juniors, what did they like the most and the least about their time?</h3>

You’ll have to ask them about that one :)

<h2>During the Program</h2>

<h3>What are the expectations for a junior developer?</h3>

I cover this one in pretty good detail over on this other page called “Expectations”. I think I wrote it best over there. You should go and read that page!

What is the most challenging thing about working at CA?

</a>

I think for me personally, the most challenging aspect comes from having worked in much smaller companies before working at Culture Amp. At my last place, I worked within a team of 10 people. I could follow most of what they were all doing and keep up.

At Culture Amp, we now have about 50 developers and my attitude when I joined Culture Amp was still one of “I’ll try to keep up with everything that’s going on”. That was not a clever idea. It was exhausting! So I think that is definitely the hardest part: it’s simply not possible anymore at CA to keep up with everything that’s going on. Pick certain things to follow and follow them, and try to stay focussed.


I have another answer to this question which has more of a junior-slant on it. It’s about code.

Culture Amp’s main monolithic codebase is a Rails application. This Rails app has been around for about 7 years and as such has accumulated all the cool fashions in those interleaving years. There are some parts of this code which were once considered “best-practice”, but now are simply not.

It is hard as a junior developer to read this code and understand what’s good and what’s bad. It’s tempting to think that because it is in the codebase it is the One True Right Way Of Doing It™ but sometimes it’s just there because it’s legacy code.

As a junior working in this codebase you can spend a lot of time second-guessing things and doing them the “old good” way instead of the “new good” way. This is why when you come to work at Culture Amp we’ll pair you up with people who can guide you in the ways of writing good code within an older monolithic code base.

I will also say that because the monolith has been around for such a long time it’s a great training ground for juniors because it’s an excellent history lesson in styles / trends. There’s some old JavaScript code in there that, yes, still uses jQuery. There are some Rubyisms that are considered “old school”. But at the same rate, there’s a lot of newer stuff being written in React as well as more modern Ruby methodologies being applied.

<h3>What technologies do you use the most in the program? / What topics were covered in the training days during the last program?</h3>

So I’m a Rubyist at heart. I’ve been doing Ruby now for 12 years. It’s the one programming language I know best. So I thought when I went to start the JEP that that’s where I should start teaching from. So that’s what we did: we started with Ruby and very quickly from there moved into Rails.

It was then that I realised that some of our juniors from JEP #1 didn’t know what SELECT * FROM... meant in the Rails console output. Whoops. So we moved from there onto learning about databases and then came back to Rails a few weeks later once we had gained some mastery over databases and SQL.

So those are three things that we covered: Ruby, Rails and databases. But we also covered JavaScript, React, Redux, Flow, GraphQL, JSON APIs, and a few more things around the edges. In fact, if you want to know what the weeks were like you can actually view the layout for iteration-1 which is on GitHub.


Now for JEP #2, I’m going to work differently. I have realised the errors in my ways of starting from Ruby. Ruby is not a good starting point, because the whole idea behind using Ruby at Culture Amp is to use it to serve Rails application requests that put HTML on a page. Learning Ruby first is putting the cart before the horse.

So I think we JEP #2, we’ll start with HTML, CSS and JavaScript. We’ll build basic web pages to start off with and that’ll be easy because those things are relatively easy and self-contained within a browser. There’s even things like Codepen that mean that you don’t even need to have an editor installed or any locally running software other than a browser to build a webpage.

From there, we’ll add in some React sprinkles and talk lots about props and state. Then we’ll move onto making that React app talk to an API. Then we’ll learn how to build an API and this is where Ruby will come in. From here, we can branch out into Sinatra, Rails, and other areas like JSON APIs and (my favourite) GraphQL. What we’ll end up with is two main applications: a front-end application and a back-end application.

After that, I want us to spend some time looking into how we might deploy these applications to AWS together. We’ll look at a range of AWS tooling and probably spend a few weeks towards the back end of the program learning how to do all that.

<h3>How will the program help us develop professional programming skills? e.g. will there be assignments / feedback / paired work? / How are juniors trained at Culture Amp?</h3>

I will get around to answering this question, but first some context around time management is required.

JEP #1 was 6 months long and we split the weeks up initially into 2 days JEP, 3 days on the team. This caused our students and the teams they were working with some stress, because it’s hard to “disconnect” from the JEP when you’ve been given homework, and at the same time 3 days on a team is not enough time to accomplish much at all as a junior.

At about the 9 or 10 week mark, we all sat down and talked about how it was going and decided the 2-3 split was not so good. So we devised a different kind of split: one whole week with JEP and then two weeks with the team.

This split was awesome.

Suddenly, people in the JEP were able to concentrate better. They did more homework. They contributed more effectively to their teams and the teams could prioritise bigger pieces of work for them to do. It was such a relief!

So this is what we’re going to be doing next time too. For the first 6 weeks, you’ll spend time with me brushing up on the things I talked about in the question before this one, and then we’ll go straight into two weeks on a team and one week with me cadence.


During the JEP weeks, we have structured lessons on Monday mornings where I cover a new topic and then throughout the week you’re given homework and things to go and do and we all chat about it. The next time we catch up, we have a retro about how we went with the homework and how the JEP is going as a whole. Then we repeat the whole thing again.

The homework isn’t necessarily work to be done at home by the way – we give our juniors ample time to complete homework during their work weeks.


This is probably a good time to mention a few more things too. When you start at Culture Amp you’ll be assigned a mentor who is someone who can provide you with some strategic career guidance. Whatever that looks like is up to you two to decide what it is. If there’s a direction you see yourself going in, your mentor can help get you there.

You’ll also have an hour-long weekly 1-on-1 with me where I can provide more “tactical” advice, mostly around coding and how to go about learning everything you need to know to be an effective developer in this wide world. You come to me with questions and I give you answers. We might even go for a walk and get hot chocolates or cheese tarts or other delicious things.

I’ve taught my juniors about design patterns in languages, how public / private key cryptography works, and we’ve talked about how to battle burnout when it rears its ugly head.

These mentoring sessions are central to our “Amplify Others” value and are a totally invaluable way that we upskill everyone across the Culture Amp organisation.

<h3>Do you offer additional educational incentives? e.g. conferences, courses, etc?</h3>

Yes, we do offer more incentives. We have a program at Culture Amp called “Learn Yourself Up”. There’s a budget in this program up to $1k USD for each CAmper to use to invest in their own learning. The way it works is two-fold: if you’ve got a thing you want to learn that’s relevant to your job, we’ll pay for 90% of it. If you’re wanting to learn something outside of that (kitesurfing, how to play the piano, etc.), we’ll cover 50% of that cost.

So if you want to attend a conference that’s $600, through Learn Yourself Up the cost of that conference ticket comes to $60 for you. In some special circumstances, like if Culture Amp is sponsoring that conference, we’ll pay for the whole ticket, fly you to the location and put you up too.

This extends to other things like screencasts too. Your $200/year subscription then becomes $20 for the entire year. It also extends to books – that $50 book you want to buy is now $5. It’s a really great program and removes what is often a large financial barrier in the way of people wanting to develop their skill set.

Alongside this program, we’ll also give you time on the job to go to those conferences, watch those screencasts or read those books. The best bit is that we won’t make you feel bad for doing that instead of your regular job because, to us, learning yourself up is a part of your job.

What remote work options do you offer?

</a>

Culture Amp has been adopting more of a “remote-first” culture over the past year, which is really pleasing to me. I used to be the only remote worker at a company and it sucked.

At Culture Amp, we’re doing a much better job. This means adopting things like having meetings where if one person is dialing in remotely then everyone dials in individually (from different parts of the office) and they all have to experience what it’s like being remote. We do this for our Tech Leads standup every morning, for instance. This “one remote, all remote” policy is designed so that those who are “local” can have some empathy for those who are remote. It’s also good practice for practicing remote call etiquette; waiting for lag and that sort of thing.

As a junior developer, we’re going to expect you to work out of the Culture Amp office in Melbourne for most of the initial 9 months you’re with us. As a part of the JEP, it’s best that you’re around in the office so that you can come along to the lectures in person, as well as being able to come over to us and ask us questions. Being remote means that there’s an extra barrier which may prevent you asking for help.

As you go through the program, it’ll be up to you and your team to decide how you want to handle remote working. Some people have a set day that they work from home. Some people work from home in the morning and then come in later in the day. It’s just up to you and your team to decide how to play that. But ultimately, Culture Amp will support you on whatever days you choose to work remotely.

What kind of teams do JEP juniors work on?

</a>

Culture Amp’s a pretty large company with a number of teams working on different parts of the same application at the moment. We’ve got teams that are more backend (Ruby / Elixir / Python / Java) focussed, and then we’ve got teams that are more frontend focussed (JavaScript / React / Elm).

What team the junior gets placed on depends on their particular skillset and the need of the team and really comes down to a discussion between us all here at Culture Amp once we get through the majority of the interview proess. We’ll talk about what strengths you have and compare them to what the teams need and try to put you in the team that is best suited to your skillset.

<h3>Is it possible to do the program part time for a couple of weeks as we transition out of our current job?</h3>

Not at this point in time, I’m afraid. The JEP is a full-time position and we’re going to require 38 hour weeks out of you. You’ll be learning a lot and that can be tiring. Splitting your attention across two jobs is probably not feasible.

We’ll give people enough notice so that they can quit their jobs and come onto the JEP full-time. Our JEP cohorts have everyone start at the same time.

<h3>Would Culture Amp be flexible if we want to pursue part-time study options like 1 day of study a week?</h3>

With the JEP being a structured mentoring program, we would prefer it if you put your attention in the JEP 100%. If you have other things that you want to study then I would recommend that you defer those. I make this suggestion because I think if you split your attention between the JEP and a different thing, you won’t get the most out of either.

It’s better to stay focussed, in this case. And it’s only 9 months! We will have plenty of things for you to do.

Culture Amp professes trusting people to take responsibility. How would that manifest as a junior in the Junior Engineering Program and after?

</a>

This is one of those big questions. We do trust people to make decisions a lot of the time in our organisation, and that is actually one of our values: “Trust people to make decisions”. Note that the word “right” before “decisions” there is absent. What we do is we find someone to make a decision and then we entrust them to make a decision and we go with it. We don’t mind if it’s the right or wrong one, because we can just make another decision later on once we know more. It eases the decision making process.

Now when it comes to trusting juniors to take responsibility during the JEP, there’s one major thing that I would think this means. I think it means that we’re going to trust you to stay committed to learning throughout the program. And I think it also means that you’ll live up to another one of our values: “Have the courage to be vulnerable”.

The program is 9 months long and during those 9 months you’re going to experience a lot of feelings like “I don’t know what I’m doing, but everyone else around me knows what they’re doing”. And you’re going to get stuck a lot. When you get to that feeling, recognising that it’s a natural part of the learning process is something that I trust my juniors to do. Yeah, you’re going to feel crap for a while about not knowing things. But then, soon after that, you’ll know that thing and you’ll feel a heap better.

I also trust my juniors to have the courage to ask questions whenever they have them. Lots of the time, questions come from not knowing something and by asking the question you’re admitting that you’ve failed at knowing something, or figuring it out – but that’s okay. Asking questions means that you want to learn! I trust my juniors to know that they can ask me questions whenever they want.


That’s only one side of the coin though. I talked a lot about the JEP but for about 2/3rds of the time you’re going to be working within a development team. The same rules apply here: we trust you to stay committed to learning and we trust you to have the courage to be vulnerable.

You’re probably not going to be able to contribute to the team from Day 1 or even Day 2 at Culture Amp. There’s a lot going on and your job’s #1 priority is to learn as much as you can about what’s happening within that team. Learn how the development process works within the team. Learn which parts of the application do what. Then dive deeper into the code and figure things out, piece by piece. Work with people in your team to do that and you’ll go really well.

We trust that when you’re given work within your team that you’ll want to pair with someone else, try out some things and have them go wrong. That’s having the courage to be vulnerable right there. You’ll work with people on the team to expand your knowledge and they’ll work with you to train you up to be an effective developer on that team by the time 9 months is up.

Once that time’s up, we’ll trust that you can pick up work and know your way around most of the code, but may sometimes need some assistance on the trickier parts. That’s a part of being a junior and totally okay with us.

<h2>After the Program</h2>

What is the career progression like post-JEP? / Tell us something about the career path after JEP / What happens at the end of the program?

</a>

At Culture Amp, we have developed a growth framework for our product teams. For engineers in the Junior Engineering Program, this has two relevant tracks: our “Common” track and our “Engineering” track.

The Common track focusses on skills like:

Each of these skills within the Common track is ranked from “Junior” to “Lead”, and at each stage in the framework there are examples of what those levels might look like.

Similarly, the Engineering track focusses on skills like:

These are also ranked from “Junior” to “Lead”.

When you work at Culture Amp, you and your mentor periodically assess your skills against this framework. It’s a good way to discover what areas you’re strong at and where you might need to improve. With this framework as a guide, we can provide clear pathways to improving your skills while you work at Culture Amp.