Team Lead Interview notes
Career narrative
1) Difficult news: team switching to PostgreSQL from SQL Server - facts - listen -
2) Mistake as a manager: Luis performance not putting on a structured plan
3) Hiring mistake: Hiring Ryan as an associate - not great interview - hired as associate - was excellent - couldn't get him promoted - left
4) Disagreement with a peer: Cubic MNO team insisted that there was no priority
5) Bug you fixed: MNO only allowing suspend for terminate - take the mno long time to fix - correaltion id -
6) First six months: set up team with clear values and goals, set them up with everything they need, clear documentation and links for developer setup
7) Clean code/coding standards: if you've ever worked in a kitchen, the first thing they tell you is: clean as you go. SOLID REPR pattern repository pattern solution structure Security, Efficiency, Effectiveness and Usability
8) Leading: Servant Leadership - Ken Blanchard - Gardener metaphor - clear goals - one minute praise, one minute redirect
9) Discuss a failure: use automatic logout in AE
10) Discuss an innovation: Creating the Service List Analyzer tool which combine analyses from Azure, SonarCloud, NewRelic, etc.
11) Discuss a time a team member did not agree or pushback: Emy's fundamental dislike for AI. - get stupider, lose control, bad for the environment
Agreed guidelines for the use of AI
Junior Engineer on their first day - treat AI as a junior with the lowest permissions possible
Understand the code
Never lose control
Keep the interesting stuff - root-cause/debugging and architecture decisions - human-led
Also use for PRs and documentation
Two security incidents with using AI:
a) downloading a malicious NPM package
b) exposure of an API key
12) Leadership challenge: Motivating and leading a team through a redundancy process
- Get them all to write references on each other's LinkedIn
- Get them to help each other than help the company
- wall of wins
- shout out
- what I learned
13) Difficult news
sql server to postgre - need delete partitions - only available in sql server enterprise
redo work
redo rate limiting
redo termination queued - delayed service bus event with correalation id
kill your darlings
When I need to communicate a difficult decision or a change in direction, I try to be upfront about the facts first, listen to the team's perspective, and then agree a clear path forward together, rather than just issuing a directive.
A real example: we'd already built Session History on SQL Server. Partway through, I identified that PostgreSQL's partitioning capabilities were a better long-term fit for how that data would scale, and that consolidating Session History onto the same database as our Subscriber table — rather than splitting it across SQL Server and PostgreSQL — would give us more consistency and less operational overhead going forward. That meant asking the team to change direction on work they'd already completed.
I was upfront with the team about why — I walked them through the partitioning limitation and the consistency argument, and I was honest that this was a call I was making based on what we'd need long-term, not a reaction to something being done wrong. There was real pushback — understandably, nobody likes being told to redo completed work — and I made sure to actually listen to that frustration rather than just push through it. Some of the concern was about timeline impact, so we talked through it together and agreed a realistic plan for the rework rather than me just setting a deadline unilaterally.
In the end, the team came round to the reasoning — the argument was that it was better to make the change now, while the cost was contained, than to inherit the same problem at a much larger scale later, when it would be far more expensive and disruptive to fix. That's ultimately what won people over: not just the technical reasoning, but being honest that the short-term pain was worth avoiding a bigger long-term one.
14) Team building story - setting out goals and values etc
15) Kafka - 6 independent Kafka consumer applications read real-time session records from MNO data feeds to Redis and PostgreSQL
16) Poor performing - set clear goals, expectations and milestones. find issue - set milestones and plan
17) Scaling SM / SQL to Postgre: Biggest issue was storage - set up partitions - past, current and future - avoid bulk delete as slow
- delete partitions is free with PostgreSQL
- delete partitions only available in SQL Server Enterprise edition, which is $15,000
18) Subscriber Management - greenfield project - consolidating several old services - connects OEM with MNO
- REST API for patch state
- dispatches notifications to OEM callback url
19) New feature requirement: Wake up SMS - senior to breakdown - team estimate - moved tech debt and low priority to next quarter
20) Good bug finds: bug in AutoEntry - email in
21) AutoEntry: AE - set up processes, TDD, Code reviews, release process, stand ups.
GDPR implementation, Fixed Price Subscriptions, IDP OAuth2 BFF pattern,
22) Run Show and Tell imitative across the department. Give feedback on dry run.
Walk me through your CV / career progression
Why the move from IC to EM — what does that mean day-to-day for you?
Always felt a leader in the team. I don't think leadership requires a title. - go to leadership story
Why are you looking now? (redundancy — keep it brief, factual, forward-looking)
We are going through a restructuring, I'm being proactive, I'm likely to be on a potential list as I've only been there two and a half years.
What's your proudest achievement at Cubic Telecom?
Building an open, collabative team. This started by exercise deciding team values and goals to give them ownership.
Following the philosophy of student leadership.
Why this role / why us?
The product is something similar I've worked on before
Where do you see yourself in 3-5 years?
Still at Gong, hopefully there is career progression opportunities.
Technical
=========
SubscriberManagement is a strategic new service which consolidates and replaces two older services: Sim Management, Service Profile Service. It owns the subscriber lifecycle and service-plan handling for the Subscriber Management domain — receiving MNO adapter events, persisting subscriber state, dispatching notifications to OEM callback URLs, and exposing a REST API for session, subscriber, and service-plan queries.
7. Why DDD/CQRS/Event Sourcing for this system — what problem did it actually solve?
CQRS was important to separate the read and write database and for efficiency
Event sourcing is standard in Cubic
8. Walk me through a time contract testing (PactNet) caught a real breaking change
contract testing tests the interface, not the business logic
the Broker's real job is threefold: store contracts, store verification results, and answer the can-i-deploy question — it's not itself doing the matching; the provider's test run against the pact is what does that. The Broker is the coordination/visibility layer across teams.
1) Service A writes consumer tests describing what it expects when it sends the command (and/or what it expects the resulting event to look like)
2) Running those tests generates a pact file (the contract)
3) A publishes that pact file to the Broker
4) Separately, B's CI pipeline pulls that pact from the Broker and runs verification — it actually executes the interaction against B's real code and checks whether B's real behavior matches what A expects
5) B publishes the verification result (pass/fail) back to the Broker
9. Why both Kafka and Azure Service Bus — what's each one responsible for?
It comprises six independent Kafka consumer applications that read real-time session records from MNO data feeds and persist them to two shared stores: Redis (latest session per APN per subscriber) and SQL Server (session history for retainable APNs). It runs as Docker containers on Azure Container Apps. It has no NServiceBus dependency and no HTTP surface. The entire runtime is a Kafka-to-store write pipeline.
Each of the six applications is a .NET BackgroundService extending a shared base class (ProcessRealtimeSessionsSyncServiceBase<TMessage, TService>). All follow the same processing pipeline but consume different Kafka topics with MNO-specific message formats.
Inbound (Kafka) SASL_SSL to Confluent Cloud
Outbound (Redis) Connection string
Outbound (SQL Server) Connection string
Kafka Streams is a lightweight client library for building real-time, highly scalable, and fault-tolerant applications and microservices where input and output data are stored in Apache Kafka clusters.
10. How did you handle scaling to 30M vehicles — what was the first bottleneck you hit?
we discovered that SQL Server was insufficient to maintain the number of records we would record, therefore we became the first team in Cubic to use PostgreSQL.
The big issue was dealing with the number of sessions that we were storing. So we split them into monthly partitions whereby there would always be a past (last month), current (current month) and future (next month) partition. Sessions would be split into partitions by month and year. On the first of every month the past partition would get dropped and a new future partition would take it's place, thus the current partition would automatically become the past partition and the future the current. These were turned on and off via APNs that were required.
11. Talk me through a production incident you owned — root cause, resolution, what changed after
Situation:
"In Subscriber Management, we integrate with a lot of different MNO plugins, each with their own capabilities. One MNO didn't support a proper termination flow for SIMs — only suspend. Functionally that's meant to achieve the same thing, an offline SIM, but it broke one of our business rules: a suspended SIM can be reactivated, a terminated one can't. So when we sent a terminate command to that MNO, we'd always get a suspend event back — and that meant a user could reactivate a SIM that should've been permanently terminated."
Task:
"The real fix was on the MNO's side — they needed to build proper termination support — but that could take months, and we couldn't leave a compliance gap open that whole time. So I needed a way to distinguish 'this is really a terminate' from 'this is really a suspend' using only the event the MNO gave us, which looked identical either way."
Action:
"The solution was to attach a correlation ID to the outgoing command that flagged it as a terminate-intent. When the suspend event came back, instead of trusting the event type at face value, we checked it against the correlation ID from the original command. If it matched a terminate-intent, we updated our internal domain state to terminated — not suspended — regardless of what the MNO's event literally said. Our API then enforced reactivation rules based on our own internal state, not the MNO's event type, so reactivation was correctly blocked."
Result:
"That closed the compliance gap immediately, without waiting on the MNO's roadmap. And it ended up becoming a general pattern — anywhere we hit a capability gap with an MNO plugin, we had a template for decoupling our internal domain state from what the external system's events literally told us, rather than trusting third parties as the source of truth for our own business rules."
Kafka
Disk/retention pressure — topic retention misconfigured, running out of disk, or losing data before consumers caught up
It is important to monitor topic retention vs topic use and understand by region and apn which topics are relevant.
Bug in AutoEntry about Emailed invoices getting processed but not paid for. Proactively found.
Adding parallel foreach to increase credit processing rather than rebuilding workflow architechture.
12. What's in your C# coding standards doc, and how did you get the team to actually follow it?
Agreed design patterns: repository pattern and solution structure. Coding styles and design patterns. Agreed validation, single request classes. REPR pattern (one class per endpoint) over traditional controllers, FastEndpoints and Mininal APIs.
Losely coupled, high conhesion. Concise, clean code. Important for new joiners and to maintain standards.
Both patterns are architectural, not framework-specific — repository pattern maps directly onto Spring Data JPA, which if anything productizes it more heavily than most .NET implementations. REPR's underlying idea — one class per operation instead of fat controllers — isn't branded 'REPR' in Java the same way, but it's the same discipline as vertical slice architecture, and frameworks like Javalin lean into it naturally.
13. How do you approach API versioning / backward compatibility with OEM consumers?
We have a version number, but this is a new service
14. Give a concrete example of Servant Leadership in action — not the philosophy, an actual moment
Getting teams to agree values and goals
One minute praise
One minute redirect: stating facts and reiterating values and goals
15. Tell me about a hiring decision that didn't work out
Ryan Talbot did an interview, but showed certain gaps for a software engineer, was hired as an associate software engineer, but then turned out to be excellent and working as at least a mid level engineer level. Couldn't get him promoted despite our best efforts and then he left.
16. Tell me about managing a low performer
I write up assessments at the end of each week to identify common patterns for improvement and to feed into the bi-weekly impact meeting.
Luis code was not following agreed coding standards.
17. Describe a time you disagreed with your CTO or a peer — how'd you handle it?
We needed a change to another service that was not in our control. This was a greenfield project and we needed one MNO service to be working.
We were told by the TL that was no capacity in his team to fix the service not in the upcoming quarter or the quarter afterwards.
No capacity often actual means no priority.
Reframe it as something that would benefit them.
Offered to do the work, but they had to maintain and own the merge.
Escalate to my manager to highlight two competing priorities earlier that we had a dependency.
18. Walk me through the staff engineer proposal — what resistance did you hit, how'd you land it?
19. How do you run OKRs / growth plans with your team?
OKRs are set at a department, team and personal level. Through the weekly assessments, knowledge, skill gaps are noticed. Growth plans are defined and reworked to fill such gaps.
20. What's your first 30/60/90 days plan if you got this role?
Agree values and goals. Agree standards. Agree processes.
Gap-probing
21. Any Java experience? (be ready with the honest-gap + fast-ramp bridge)
The OOP fundamentals — encapsulation, inheritance, polymorphism, interfaces — are essentially identical between Java and C#, syntax aside. Where I'd need ramp-up time is JVM-specific tooling and ecosystem — build systems, dependency injection frameworks, JVM performance tuning — not the language paradigm itself.
Conceptually very similar
DI: Spring v built in DI Container
ORM: Hibernate v Entity Framework
LINQ v JPQL
Concurrency: ExecutorServices v Async/Await
Build/CI tooling: requires learning curve
Testing: JUnit v xUnit/NUnit/Moq
Null safety: Optional<T> v nullable
Factory method: An interface for creating an object. Allows subclasses to alter the type of objects being created. Other creational methods are Abstract Factory, Builder (car builder), Prototype (clone).
22. What's your Rust/GCP/BigQuery exposure?
23. How comfortable are you leading a team on a stack you haven't used in production?
My pattern across stack changes has been that the paradigm — OOP, async, cloud-native patterns, testing discipline — transfers, and the delta is always tooling and ecosystem specifics, which I've ramped on repeatedly across telecoms, fintech, and e-learning stacks
Curveball / self-awareness
24. What's a mistake you made as a manager and what did you learn?
Luis was hired as a mid level, but believed he was a senior. He wasn't working at a senior level. I fed the gaps back to him. There were further incidents where his productivity was slow and he held projects up. He needed help, after that he left. My mistake was not outlining the expectations more clearly.
For some proactive developers, this sort of feedback is enough. They don't like to be micromanaged.
This sort of simple feedback of just pointing out gaps has worked in the past for me.
the mistake was giving feedback on the gap without pairing it with a concrete, structured improvement plan
I told him clearly where the gap was, but I didn't turn it into a structured plan — no defined timeline, no explicit support like pairing, no regular checkpoint separate from general 1:1s. The feedback was accurate but it landed as a verdict, not a path forward. By the time productivity issues were blocking projects, there wasn't a shared plan to point back to, and he left.
I then switched to these more regular weekly assessments
25. What's the AI-augmented dev workflow (Claude Code/MCP pipeline) actually doing — walk me through it like I'm sceptical
26. Tell me about a time you had to influence a team or person you had no direct authority over
I run a Show and Tell initiative across Software Engineering. A monthly presentation for the whole department where engineers can present ideas and initiatives.
As part of this, I review submissions and each presenter must undergo a dry run a week before to accept any feedback and fine tune.
27. How do you handle a stakeholder (OEM/MNO-side or internal) who keeps changing requirements late in a cycle?
This happened in the last sprint when there was addition during the cycle that a Wake Up SMS feature was required.
We looked how this could be accommodated. We going to need a senior engineer a day to research and break down the ticket.
Then we need the team to estimate the work. Then we could see how this could be accommodated.
We had some lower priority tech debt and tickets in the final sprint that could be delayed until the next quarter.
I was then able to shift lower priority feature work into the last sprint and next quarter so that we could work on the new feature asap.
28. Describe a time you had to say no to a request from leadership or a stakeholder — how did you handle it?
I never say no to leadership or a stakeholder, I give them the facts and the options.
29. How do you keep multiple external partners (OEMs) aligned when they have conflicting priorities or timelines?
Prioritization / delivery
30. Tell me about a time you had to deprioritize something the team cared about, for business reasons
Tech debt in the above question -
31. How do you decide what to build vs. what tech debt to pay down, given limited sprint capacity?
Our team maintains five services, mostly inherited. As the engineers comes across tech debt, we create tickets in the backlog and flag them by priority. If it is not urgent, in the next quarterly planning, we estimate and schedule the tech debt work for that quarter. This will be by negotiation with Product.
Also the inclusion of tech debt in the last sprint can serve as a useful buffer.
32. Describe a time a deadline was unrealistic — what did you do?
33. How do you handle scope creep mid-sprint or mid-project?
With the announcement of the redundancies it created a lot of delay to the project so we had
Sometimes developers go off on a solo run.
I was on holidays for two weeks. I left the running of the sprint to the senior engineer.
One of the mid level engineers who is very ambitious and very technically strong. I was really pushing for her promotion. But she went on something of a solo run with trying to tackle some tech debt that was out of scope for her feature ticket. The tech debt update led to a load of bugs being introduced and spill over from the sprint. That is not something I would have encouraged had I been running the sprint. Please stay withing the scope of the ticket.
Without micromanaging, the person running the sprint needs to be engaged with what work is taking place on each ticket.
I want real detail on each call about what they did yesterday and what they are doing today. That is so I can catch scope creep.
Culture / team health
34. How do you build trust with a team you've just inherited or newly joined?
I'm due to change to a new team in September. Exercise to agree goals, values and processes. Gives them ownership.
Set out processes and expectations - clear goals and processes
35. Tell me about a time team morale was low — what did you do?
Redundancy - gave them two hours to start the week with a positive exercise every week to give each other a nice virtual hug.
Firstly, got them all to write LinkedIn referrals on each others profiles.
Secondly, wall of wins - each person writes down 2-3 things they're proud of shipping/building on the team, compiled into a shared doc or Slack channel. Doubles as CV/interview material for people job-hunting.
Thirdly, encourage the team to write a short note to your manager or skip-level about something a teammate did well. Recognition flowing sideways and up, not just top-down.
"What I learned from you" — each person writes one thing they picked up from a specific teammate. Personal, specific, and often surprisingly moving in a wind-down context.
36. How do you handle a strong personality on the team who's technically excellent but hard to work with?
There can be an issue of ego within developers, because we do amazing things and solve puzzles often in isolation.
Had this problem with a
It was important to give him a large project to chew on
Some people require more praise than others.
37. What's your approach to psychological safety — how do you know if it's actually working, not just a slogan?
Scenario / judgment (hypotheticals, not "tell me about a time")
38. If two senior engineers strongly disagree on an architectural approach and it's stalling a project, what do you do?
The architectural approach should be agreed in the planning stage. This happened when there was a disagreement with a switch from SQL Server to PostgreSQL.
Had to list out the benefits of the two scenarios
39. If you discover a production bug that's been silently causing bad data for weeks, walk me through your response
Create a incident with my manager.
Fix the bug
Fix the bad data
This happened in AutoEntry whereby there were credits
Credit reconcilaiton
40. If a new hire isn't working out within their first 90 days, what's your process?
It's important that the processes and standards of the group are clear.
Number of bugs coming back from QA
Productivity expectation based on story point.
Predictability must be high
Extra time to test each acceptance criteria before pushing to QA
Extra time to do documentation.
41. How would you handle a team member who's technically strong but consistently misses estimates?
Luis was this person. Missed estimates
Self-awareness / reflection
42. What kind of manager do you struggle to work well under, and why?
Only toxic managers
43. What feedback have you received from your own team that was hard to hear but useful?
We have retrospective at the end of each sprint.
44. What's something you've deliberately changed about your management style in the last year or two?
Become more organised with
Company/role fit
45. What do you know about our engineering culture, and what concerns you (if anything)?
46. How do you expect managing here to differ from Cubic Telecom?
47. What does success look like for you in the first 6 months?
Get the team set up with clear goals, values and standards.
Important to set up team with everything the need to succeed.
Documentation and links and onboarding so that any new team coming in or any developer picking up our service can get set up quickly.
Set up agentic workflows / AI - set up AI guidelines so that developers are always in control
Set up some cross team initiatives if they don't already exists - show and tell
Want to pick a handful of these to prep answers for now, or keep building out the list first and tackle answers as a batch later?
Questions:
Gong has offices all around the world. Is there much interaction with them? Where does each department lie?
What sort of level of usage of AI is there in Gong? Have you set up agentic workflows, PRs etc.?
Comments
Post a Comment