A coffee and catch up with… Jim, Junior Full Stack Developer
Hi Jim, tell us about yourself...
Hi, my name is Jim (or JJ as I am now affectionately known, cheers Toby) and I’m no longer a Junior developer.
I started at Street Group about 6 months ago as a Junior Full Stack Developer on the Street CRM team. At the time I was the only junior in a team full of seniors, which was quite intimidating at first. However, I needn’t have worried — everyone here is so welcoming and they helped me to settle in really quickly. Now 6 months later, I’ve somehow convinced everyone I’m not actually a Junior, so I think things are going in the right direction.
I’m now a proud member of the KVLT team (pronounced cult) which is way friendlier than it sounds, and isn’t really that cult-like at all — it’s just a happy little development team. Although I guess that’s what someone in a cult would say, to be fair.
Before Street, I worked in the Internet live radio streaming industry which taught me a heck of a lot about scaling systems and advanced web application architecture and it feels great to be bringing some of this experience to a growing system like Street.
We’re at a very exciting time right now where we’re starting to really up the pace getting new clients on board which means we’re going through all of the challenges of scaling a large codebase up to respond to this increased demand, keep on top of technical debt and ensure our clients are happy. More on this later!
This is already getting super long for an intro so here’s a quickfire round of other things about me:
- I’m a dog lover — I’ve got a husky called Kia who knows she’s the boss.
- I love road trips and driving in general — ask me about rotary engines and prepare to be bored for the next 25 years.
- Spider plant parent — I’ve somehow ended up with about a million spider plants, let me know if you want one (seriously, I’ve got no room left and they’re all still multiplying).
- Terrified of spiders — just no, nope, absolutely not.
What is your role within Street?
A day in my life is pretty different every day. There are a few constants though.
Daily Standup — 9.15 am
This is our time to say hi to the rest of the team and discuss what we’re up to for the day, discuss anything blocking our tasks and keep everyone in the loop. This usually ends up with us setting up some calls with each other throughout the day so we can catch up on a ticket or pair on particular things.
It’s a bit of a long-running joke that I just play on the Xbox all day but that isn’t true (I promise, just don’t look at my profile). After standup, it’s time to get down to business and continue with work from the previous day or begin a new task in the Sprint to help us get closer to the goal. Our tasks are usually pretty well refined and small enough so that you can get a few tickets done in a day which is really good for morale I find, as you’re getting that little dopamine reward of getting things done and merged in pretty often.
Coffee, lots of it
Working from home while everyone else you live with has to go to an actual place of work every day (what even is that anymore?) means you get unlimited access to the kettle with nobody else queuing up to use it. Bliss.
I spend a lot of time pondering the best solution to things, so my coffee breaks usually come at a time where I’ve stumbled upon a bigger technical challenge to overcome. It’s my time to figure things out and clear my head before getting stuck back in.
Other notable things that happen
It’s a quickfire round again! This time, it’s for the other things that might happen day to day depending on what day of the week it is:
Coffee buddies! Working remotely, it’s really important to keep in touch with members of the team you’ve not seen for a while or maybe haven’t met yet. We use Donut (a Slack add on) to automatically pair us up with another teammate to have a quick catch up call. This is one of my favourite things about working here — I’ve met so many people that I probably never would have spoken to otherwise as I still prefer to work remotely most of the time.
Technical Chapter! I’m not entirely sure where the name comes from, but this is where we discuss technical debt, challenges that are on the horizon and any general improvements we can make as devs to improve our quality of life. We keep track of this on our spreadsheet and this work usually gets factored into Sprints or picked up when we have a bit of slack time.
All hands! Each team takes turns to show/tell everyone in the company what they’ve been up to that week, whether it’s the devs showing off some new features, the sales teams reporting their figures for the week, or Shaun and Andre showing us their latest video masterpiece, it’s always great to be a part of.
Who do you work with on a daily basis?
As I mentioned before, I’m part of the KVLT team — one half of the Street CRM dev team. Right now there’s Matt (Senior), Kieran (Senior), Ste (Senior), Ethan (Junior — our newest recruit!) and me for the devs. We’ve also got Shaun (one half of the mobile dev team) and Andre (the other half). Last but not least, you’ve got Ben (Head of Product / Bungalow data), Jonathan (Product Owner) and Tom (Designer, also known as Teaspoon).
KPOP and the KVLT
Let’s just quickly address the elephant in the room which I snuck into the opening section.
We got our name, KVLT, from our resident troll, Toby, who likes to spend his days working on (or under) Bridge, our tool to easily migrate client data from other CRM’s into Street.
Apparently, the name KVLT has its roots in black metal and is used to describe people who like the genre or demonstrate their knowledge of the genre (which it’s probably safe to say, none of us have any knowledge of it). When the team split first occurred, Toby coined this name for us, so for balance, the other team got the name KPOP.
It’s been mentioned more than once that we need a new name, but I think it might be here to stay now.
What is your proudest moment?
Even though I’ve been here for a relatively short period of time, there’s already lots I’m really proud to say I’ve worked on and been a part of. I’m thankful that even as a junior, the team was still throwing the heavier work at me and not giving me the boring jobs that nobody else wants to do.
A couple of notable mentions before I get onto my proudest moment:
- Completed transaction workflow
When I first started, Street didn’t do much after a property changed hands.
However, we had big goals for how we wanted Street to behave, which required a lot of technical discovery sessions. At the time it was just me and Matt as the Street devs on the KVLT team and it was our task to assess two competing ideas brought forward from an unbiased standpoint to identify all of their pros and cons.
After assembling some concrete evidence to demonstrate each one’s effectiveness at achieving our goals, we put this forward to the rest of the team and based on this we selected an approach to pursue. We then began the work.
Matt and I co-authored about 50 PR’s, and with that, my first big technical challenge at Street was completed — with almost no disruption whatsoever to our clients. This is undoubtedly by far one of the most technically demanding projects I’ve undertaken.
- Not getting sacked at the end of my probationary period
I get pretty bad imposter syndrome sometimes so this was a huge relief! Jokes aside, given we all have regular check in’s with our Tech Lead on Street, Chris, I got feedback really often about how I was doing and we would set goals to make sure I was on the right track.
The actual proud moment from this was getting the promotion from Junior developer to mid-level, something I’d been aspiring to for a long time. This was a huge moment for me as it meant (to me) I’d finally made it into a career I’d been wanting to break into for a long time. A lot of late nights teaching myself how to code, building side projects, scouring MDN and Stack Overflow went into this so it was a huge confidence boost for me to finally get to this point.
That’s more of a personal career thing though, so on to my proudest moment at Street specifically…
- Refactoring the codebase to follow Domain-Driven Design
Since I started at Street, it’s been clear that we were growing out of the way we were doing things, which had sustained the project well over the years. However, with a new big arm of Street on the horizon, it was recently time to have a think about the longevity of the codebase.
I’d previously worked in a huge codebase that spanned multiple repositories, deployment strategies, languages, frameworks and development methodologies, so I have some experience working with a lot of different architectures. Well, enough to know most of the buzzwords.
I used to work with Ed in the same codebase, who is a bit of an oracle when it comes to stuff like this. He suggested that we have a look into Domain-Driven Design (DDD). I took it upon myself to do the research and figured out how it would work with Street, later on sharing all of this with the team so we could make a decision on how to proceed with it, or if we should look at something else.
This took the form of a “take over” of our Technical Chapter meeting, where I (with the help of Ed, Matt and Toby) had prepared slides, diagrams and confluence documentation giving an overview of what DDD is, and how we can apply it in Street.
I was still a junior at this point and I was presenting my findings to a Google Meet full of seniors and tech leads. Imagine being sat there with not even 2 years of experience under your belt (and not even 5 months at this company yet!), telling a group of seasoned professionals over a packed Google Meet session how we should re-architect our entire system.
The imposter syndrome was real. But for some reason, they were all on board with the idea. We got the business buy-in and we are actually in the latter half of getting this all done. We hope to have it all done in the next 4 weeks.
Getting that sort of opportunity to shape the future of a product like this despite my lack of on paper experience and short tenure this far — and for everyone to actually be up for it — was mind-blowing to me.
While this isn’t customer-facing at all, I think this one is my proudest moment because it undoubtedly (of the stuff I have worked on so far) has the most impact on the future of the product from a development perspective, ensuring we have a reliable system we can keep developing at a fast pace for many years to come.
One thing I’m particularly excited about is that we’ll be much better equipped to define our “core” responsibilities and ensure these are absolutely bulletproof so we can develop with confidence.
There’s a lot to cover here so I’ll stop there, refactoring to follow DDD probably deserves a blog post of its own!
What is the best thing about Street Group?
As cliche as it can be to say it, I love my job. The company culture is outstanding — despite joining in lockdown things were great right from the get-go and are only getting better now we can actually meet in person.
Personal development is a huge thing at Street Group and I feel like I’ve been slingshotted forward in my career. Our L&D budget is very generous, we’re compensated well and the regular 1–1’s we have with Chris (Street Tech Lead) are invaluable to me.
Then you’ve got complete transparency from Heather and Tom (Co-Founders) on how they’re running things and what the state of play is for the business. Nothing is a secret with them and they do truly default to open which is a huge breath of fresh air.
Last but not least, the team I work in directly really makes each day brilliant. KVLT is a collection of hilarious people with a wealth of shared knowledge in the world of development and Street, with a passion for getting shit done.
It’s an amazing thing to be a part of.