Tim Savoy
Resume & Digital Portfolio
Welcome to the professional portfolio of Tim Savoy. This site provides an overview of my background, qualifications, and career highlights for potential employers, clients, and professional contacts.
Explore the About page to learn more about my experience and education, or visit the Contact page to get in touch.
Learn More
Preparing for a Technical Interview: My Study Plan
Technical interviews in the Australian software industry have shifted noticeably over the past few years. Companies in the Surry Hills startup corridor and the Melbourne CBD engineering hubs are now running structured loops that mix live coding, system design, and behavioural conversations, often compressed into a single afternoon.
I have been putting together a structured study plan for the next round of interviews I plan to attend, and writing it down helps me stay honest about my progress. Whether I end up chatting with teams at a fintech in Sydney or a scale-up in Brisbane, the same fundamentals apply, and a clear routine makes the difference between scrambling and showing up calm.
Why I'm resetting my preparation
Australian employers tend to value pragmatism. Roles at places like Atlassian, Canva, REA Group, and the big four banks all ask practical questions about real code rather than abstract puzzles, so my preparation needs to reflect that. I am not chasing exotic algorithm tricks; I am rebuilding muscle memory around the patterns I will actually use on the job.
A second reason for a structured plan is fatigue. It is easy to grind through problem sets for three hours, feel productive, and then forget half of it a week later. Spaced repetition, mixed with projects, is what actually sticks. I am also building in time for behavioural reflection, because most loops here include a culture round that asks about collaboration, conflict, and delivery under pressure.
The foundation: refreshing core concepts
Before touching new problems, I went back to the fundamentals. I revisited sections on async patterns, memory models, and database indexing that I had not touched since my last round of interviews. I treated this as a confidence-building week, not a heroic one.
To keep things organised, I set up a simple weekly split that rotates between language deep dives, computer science fundamentals, and applied problem solving. Mornings are for reading and note-taking, afternoons are for coding. The table outlines the key resource mix I am leaning on this cycle, chosen for variety rather than volume.
| Resource type | Example | Best for | Cost |
|---|---|---|---|
| Interactive platform | Exercism, LeetCode | Pattern drills, daily reps | Free tier available |
| Conceptual reading | Designing Data-Intensive Applications | System thinking, trade-offs | Paid book, free articles |
| Mock interviews | Pramp, peer mocks | Real-time feedback | Free with peers |
| Project work | Personal side projects | End-to-end ownership | Free (time cost) |
| Recorded lectures | MIT OCW, university archives | Deep conceptual gaps | Free |
The mix matters because each format targets a different weakness. Reading builds vocabulary, coding platforms build reflexes, and mocks reveal blind spots that solo study hides.
Algorithm and data structure drilling
The core of any technical loop is still algorithms and data structures, so I am running a 12-week rotation through the usual suspects: arrays and hashing, two pointers, sliding windows, trees and graphs, dynamic programming, and a sprinkle of greedy and backtracking. Each topic gets about a week, with two days reserved for review.
Rather than racing through easy problems, I slow down on mediums. I write the solution, then close the editor and rewrite it from scratch the next morning. This is where an Australian-style discipline helps: rather than chasing a high daily count, I aim for two solid problems a day, fully explained in comments, and revisited a week later. If I cannot solve a medium after 40 minutes, I read the editorial, then redo it the next session without peeking.
I also keep a small notebook of patterns, not solutions. Notes like "graph BFS versus DFS when you need shortest path" or "when to reach for a monotonic stack" go in. Over time, this becomes my personal reference sheet, which is far more useful than any single problem I solved.
System design preparation
System design rounds in Australia often focus on practical scale rather than fantasy numbers like a billion users. I am working through classic exercises such as designing a URL shortener, a notification service, and a payments ledger, then extending each design with Australian-specific considerations: timezone handling across AEDT and AEST, regional failover, and payment rails like BPAY and the New Payments Platform.
I spend the first half of each session sketching the high-level diagram on paper before touching any tooling. The second half is spent reasoning about bottlenecks, caching, and consistency trade-offs. I am also reading public engineering blogs from local teams, because they reveal what is genuinely on the radar here: idempotency in payment systems, observability on lean teams, and the regulatory realities of operating inside APRA's perimeter for finance-adjacent roles.
Behavioural rounds and workplace fit
Behavioural interviews can be underrated, especially by engineers who would rather debug a thread pool than talk about feelings. Australian workplaces tend to be relatively flat and direct, so the rounds favour concrete answers over polished corporate phrasing. I am preparing eight stories that cover ownership, conflict, delivery under pressure, learning from failure, helping a teammate, cross-functional collaboration, an ambiguous project, and a technical disagreement resolved well.
Each story follows a tight structure: context, task, action, result, and a line about what I learned. I rehearse them out loud, ideally with someone who will push back on vague claims. The trick is to be honest without oversharing. Saying "we shipped it, but I underestimated the migration risk and here is how I would do it differently" lands better than a story where everything went perfectly.
Logistics, time zones, and the final week
Loops are often run remotely, and Australian time zones are not always friendly to overseas panels. AEST is UTC+10 and AEDT is UTC+11, which means a Melbourne afternoon interview can land at 3 a.m. for a San Francisco-based interviewer. I plan around that by confirming scheduling early and offering slots that suit both sides, plus a backup window in case the original falls through.
In the final week, I taper rather than cram. Three light problems on Monday and Wednesday, a mock on Thursday, and a full rest day on Saturday. I also prep the boring logistics: a clean background for video, a working microphone, a quiet room, water within reach, and a backup laptop on standby. The goal is to walk into the loop with no avoidable friction.
Practical habits that have helped me:
- Keep a single notebook for patterns, not for solutions.
- Schedule two mock interviews per fortnight, even when they feel awkward.
- Rotate topics weekly so old material stays warm.
- Block the night before an interview for sleep, not for last-minute review.
- After each loop, write down three things to improve before the next one.
If you are working through something similar, or thinking about hiring me, feel free to reach out via my about me page. I am open to conversations about software roles across Sydney, Melbourne, Brisbane, and remote-first teams operating out of Australia.