Search real stories by role, salary, location, source of hire, interview process and what finally worked. Use these stories to understand the market before your next application or offer negotiation.
I was not looking for a job when I found Picnic. They appeared in a long article about startups working on food waste in Europe, and the mission interested me immediately. The article explained how their model reduces the surplus and the spoilage that cost traditional supermarkets so much. The details are what convinced me: a concrete operational problem with measurable impact. I stopped and read the whole article. No recruiter message had ever made me feel like that, so the same evening I went to their careers page and applied for a senior software engineer role.
The process was thorough and well organised. Five interview rounds sounds like many, but Picnic clearly knew what each stage was for. There was a technical screen early, about systems design, which I liked because it went directly to the substance instead of spending an hour on trivia. The later rounds included the engineers I would work with, and the conversations felt honest. People told me about real trade-offs they had made and real mistakes they had learned from. The thing I remember most is that they promised to go from application to offer in four weeks. They did it.
The offer was 70,000 EUR for a full-time job in Amsterdam, on site. Moving to the Netherlands was a big decision, but when the offer arrived I had already imagined myself there. I took the offer.
I'd been looking for new opportunities for about a month when I showed up to a Kotlin meetup in Toronto one February evening, cold enough that half the room still had their toques on, mostly to get out of the apartment and talk shop with other Android developers. The turnout was decent, maybe thirty people, and I ended up next to an engineer from Wattpad during the break. We started comparing notes on Compose Multiplatform, on state management and some of the rougher edges with shared UI logic across platforms. A five-minute chat stretched to nearly an hour. We swapped contacts before we left, and I didn't think much of it beyond a good networking moment.
About a week later he messaged me out of nowhere. A senior Android Developer position had just opened up internally, and he asked if he could put my name in. I said yes immediately. I'd done some light research on Wattpad before: Toronto-based, product-focused, reasonably sized engineering team. It looked encouraging. Over the next five weeks or so I went through six applications in total for other roles while this one moved forward, but the Wattpad process was by far the most structured and engaging. Three rounds. A hiring manager screen where we talked about my experience with production-scale Android apps and what I wanted next. A technical live-code session where they handed me a real recursive layout bug they'd actually hit in production, and that one kept me on my toes because the fix wasn't obvious until I traced the measurement pass carefully. Then a team panel with three engineers that felt more like a genuine conversation than an interrogation.
The offer landed about a week after the final panel, thirty-eight days after that initial meetup conversation. It came in at CA$125,000. I pushed back once, citing market rate for senior Android work in the GTA. They came back with CA$130,000. I said yes.
I had been working as an iOS engineer in Lisbon for three years, and I wanted a company with a more interesting design system. In my free time I was building a small open-source UI library: three custom controls that I had wanted for years and finally made. About 800 lines of Swift, well documented, with a sample app.
I published it in late autumn. I posted about it on Twitter, put it on the iOS subreddit, and emailed a few iOS newsletters, including a small one called Lisbon Mobile that maybe two hundred people in the mobile developer community here read. The editor wrote about it the next week.
The lead engineer at a Lisbon software company saw that newsletter. He sent me a DM on Twitter the same day. They had been looking for an iOS engineer for about six weeks and the search was not going well. Would I like to talk?
I did. The call was thirty minutes. He had cloned the library, built it, and used one of the controls in a personal project. His questions were about specific decisions I had made: why I used a particular pattern for state management, why one control had that API. We disagreed about one thing. It was the kind of conversation I had wanted to have for two years.
The first formal round was a coding test with two of their senior engineers. A small refactor of real code from their product, two hours. I delivered a clean implementation, plus one small extension they had not asked for, because I thought it made sense. They said the extension was the part they liked.
Round two was a code review session. They sent me a piece of their code before, and asked me to be ready to review it. I came with ten comments. About half were correct, two were wrong, and three started a discussion that used the rest of the hour. Good interview.
Round three was a culture round with the head of product and the lead designer. It was less an interview and more a conversation about how the team worked and what success meant there.
The offer was €50,000 base. I asked for €54,000 and explained my current salary and the cost of relocation. They came back at €52,000 and a small relocation payment. I said yes. Seven weeks of searching, nine applications. Eight of them I sent before the newsletter wrote about the library. The ninth was this company, and I applied formally after the call with the lead engineer, which was more paperwork than a real application.
The library is still open source. I should write more of them.
I graduated in the spring and walked straight into one of the roughest hiring markets I'd seen described in any of the forums I was reading to prep. It didn't dent my optimism at first. I built a spreadsheet, set up job alerts across a few major boards, and started firing off applications. Over about three months I sent close to 200: tailored cover letters for some, quick-apply submissions for others when the listing was clearly a long shot. The rejections came in waves, sometimes five or six in a single afternoon, and a few roles just went silent after a first-round screen.
I made it to the interview stage at five companies. Four ran the standard process: a recruiter call, then one or two rounds of timed algorithmic problems. I'd been grinding practice problems for weeks, but there's a specific kind of pressure that hits when you're solving a graph traversal question while a stranger watches a timer count down, and I didn't always perform the way I knew I could. Those four ended without an offer. By month two the weight of it was getting to me. I was refreshing my inbox more than I should have, second-guessing whether I'd picked the right field at all.
The fifth company was different from the first message. The listing mentioned a project-based interview format, which I almost scrolled past because I assumed it was marketing language. It wasn't. The interviews were conversational. We walked through real engineering decisions, talked about tradeoffs I'd navigated in my capstone project, and got into how I approached debugging something I'd never seen before. It felt less like a performance and more like a preview of the actual job. The offer came in on-site, full-time, at 72k, with relocation assistance, profit sharing, and unlimited vacation. After months of quiet rejections, the relief was physical. My honest takeaway: keep applying through the noise, but pay close attention to the companies whose process actually gives you room to show what you can do.
I wasn't job-hunting. I'd been at my previous company for two years as the second DevOps hire. I liked the team. The infrastructure was a mess, but a manageable mess, and I'd been making it less of one every quarter.
A former colleague, a fella I'd worked with five years earlier at a very different company, had moved to a Dublin cloud company eight months prior as the engineering manager for the platform team. We'd kept in touch, loosely. On a Monday morning in late autumn he messaged me on Slack: "we're hiring a senior DevOps person for my team, you'd be perfect for it, can we talk?"
I said yes out of curiosity. I had no plans to leave and was happy to hear what they were doing.
The first call was him, forty-five minutes. No formal recruiter screen. He walked me through the team, the stack, the on-call rota, the salary band, the team's biggest current pain (a Kubernetes upgrade that had been deferred for six months), and what they hoped to ship next quarter. By the end I knew more about the role than about any job I'd interviewed for that year.
Round two was the head of platform and one other senior engineer. Sixty minutes, set up as an infrastructure design conversation. They presented a real problem they were working through, how to handle blue-green deployment for a stateful service with a managed database, and asked me to think out loud. I'd thought about versions of it before. We disagreed on one specific point about traffic shifting, and the conversation got more interesting there.
Round three was an "incident response" round with two engineers. They walked me through a real outage from two months earlier, slowly, runbooks open, and asked what I'd have done at each decision point. There were a few places I'd have gone differently. I said so. They were sound about it.
The final round was twenty minutes with the CTO. He asked two real questions: what would make me leave a company, and what would make me leave this one specifically. I told him.
The offer arrived the next morning. €82,000 base. Same as their advertised band, no negotiation needed, because they'd told me the band on the first call and asked whether it worked for me. I'd said yes then. I said yes again now.
The whole process, from first Slack message to signed offer, was fourteen days. It worked because every round was someone who'd actually read about me, had a clear question they wanted answered, and respected my time. The recruiter screen never happened. No take-home. No gimmicks. It was the best interview process I've been through. The reason it worked was that someone inside was vouching for me from the start.
I applied to about 80 roles over two months, and League was the only company that responded with a take-home before any call.
Most of the applications went through job boards. I'd built a small spreadsheet to track them, partly because I knew I'd lose count otherwise, and partly because I wanted to look back later and see whether any of it was working. The honest answer was: not really. About 12% of applications got an automated rejection within 48 hours. About 6% got a recruiter screen. Most of the rest just disappeared.
League's take-home arrived in week six of the search. It was a pleasant surprise. Most companies don't reply for two weeks, then ask for forty-five minutes of pleasantries before they'll talk about the actual role. League sent a real anonymized dataset, asked four questions, and gave me a week to send back the answers in whatever format made sense.
The dataset was patient appointment data. A few hundred thousand rows, a handful of dimensions. The questions weren't trick questions. They wanted to know whether I could find the obvious thing first, whether I'd notice the less obvious thing after that, and whether I'd write up my findings so a non-analyst could read them.
I spent two evenings on it. About four hours in total. Most of that was writing. The analysis itself was straightforward, but the writeup needed to be tight. I sent back a six-page PDF with the four answers, a few caveats about the data quality, and a one-paragraph summary up top.
They moved me to a video interview the next week. Two analysts on the call, both of whom had read the writeup carefully. The questions were about what I'd left out and why. One of them asked, gently, whether I'd noticed an outlier I hadn't mentioned. I had, and I explained why I'd left it out. He said that was the answer he was looking for.
Round two was with the head of analytics. Less technical, more about how I worked with PMs and how I'd push back if asked to produce a number that didn't tell the whole story. We had a real, slightly uncomfortable conversation about a project where I'd been asked to do exactly that, and what I'd done about it.
The offer arrived three days later. CA$66,000 base, at the lower end of the band they'd quoted in the recruiter screen. I asked for the higher end, citing the depth of the take-home process and a competing offer that was close in cash but worse on scope. They came back at CA$70,000. I took it.
The thing I think mattered most: the take-home was a filter for how you communicate. The technical work was easy. The writeup was the test. Every analyst I've worked with since has said something similar about hiring. They want someone who can explain the answer to a stakeholder who doesn't care about the query.
When the Microsoft offer came in for a software engineer role in Redmond, my instinct was to say yes on the spot. I'd wanted to work there for a long time, and seeing the number in my inbox made me want to say yes immediately. I made myself slow down. Instead of replying that afternoon, I opened a fresh document and started logging everything: every email, every phone call, every number on the table. That habit alone changed how I handled the whole conversation.
The initial package was a 109k base, a 120k stock grant vesting over four years, and a signing bonus that looked generous but had room to move. I knew it had room because I had a second process running in parallel with another company. It was a real second process, not a line. That concurrent interest drove everything that followed. When I told the Microsoft recruiter I needed time to think, it wasn't a line. I had something else to weigh. That credibility shifted the dynamic. The recruiter stopped treating the offer as a formality and started treating it like something that might fall through.
I went through five interviews total before reaching this stage, so by the time the offer landed I had a good sense of how badly the team wanted to fill the role. I used that quietly. I never named a number first. Never said anything like "I was hoping for at least X." I only shared that I had competing interest and that the current package made it a hard call. Over two or three rounds of back-and-forth the base moved from 109k to 117k, the stock grant climbed from 120k to 130k, and the combined signing and start bonuses reached 35k. None of those movements needed me to be combative or even particularly assertive. What they needed was patience, preparation, and a refusal to anchor myself low by speaking first.
I'd been open to a move for a few months when a specialist cloud recruiter got in touch on LinkedIn with a role that was worth reading past the first line. A Dublin cloud company was rebuilding their Azure platform team from the ground up, and they wanted a senior architect who'd designed for scale. The recruiter had done their homework before messaging me. The pitch was specific, the timing was right, so I agreed to an exploratory call.
Within the first week I'd had an initial screen with the recruiter and moved into the interviews themselves. Over the next two weeks I went through five rounds. The early stages were conversational: culture fit, broad technical background, how I handled stakeholder communication on large infrastructure projects. Then it got harder fast. The hardest piece was a 90-minute whiteboard session all about multi-region failover. They handed me a realistic, messy scenario and expected me to reason through trade-offs out loud, justify my decisions, and push back on constraints that didn't make sense. It was hard, and I respected that. Right after that came a written architecture document, to be back inside 48 hours. I spent most of those 48 hours on it. The whiteboard and the take-home together made it clear they were serious about hiring someone who could do the work. While all this was running, I kept a few other applications moving, eight in total across the month, partly to keep perspective and partly to make sure I had real alternatives if negotiation went sideways.
The initial offer came in at €105k base. I countered, walked them through my reasoning without being aggressive about it, and fair play to them, they moved to €120k. On top of that they agreed to a Dublin relocation package and a sign-on bonus, which mattered since I was moving cities. The equity was modest and I knew that going in, but the cash was the strongest number I saw anywhere in that search. I accepted twenty-eight days after that first LinkedIn message.
8Applications
5Interviews
4 weeksSearch length
RecruiterSource
Move closer to your next job offer
Get expert help with your CV, interviews, salary negotiation and job search.