Skip to content
SparkTime, home
Off-Campus Placements With AI
Lessons
1 · Reality Check and Your Search Plan
2 · Building Credibility From Zero
3 · Resume and LinkedIn
4 · Finding Jobs Before the Crowd
5 · Applications and Referrals
6 · Online Assessments and DSA
7 · Company Research for Interviews
8 · Technical Interview Rounds
9 · Behavioral and HR Rounds
10 · Offers, Negotiation and Joining
11 · Rejection, Diagnosis and Momentum
Lesson 7 of 44

Lesson 7 · Building Credibility From Zero

Choose and Build a Project That Mirrors Your Target Companies

A project earns attention when it lives in the same problem space as the companies you want to join. This article shows how to read job descriptions and engineering blogs to find that space, how to pick a project with one genuinely hard part, how to scope it to three or four weeks, and how to build it with AI help while keeping the interesting decisions your own.

On this page

Key takeaways

  • Pick a project in the problem space of your target companies, not a generic clone. It gives interviewers something to ask about and gives you something to say about their work.
  • Find that space in their job descriptions, engineering blogs and products, then pick one hard problem from it.
  • Every project needs at least one decision no tutorial made for you, and a short note explaining it.
  • Scope to three or four weeks: a small working core first, then the hard part, then tests and measurement.
  • Use AI to explore options, explain errors and review your code. Make the core design decisions yourself and write them down.

Ask ten freshers what project to build and most will say an e-commerce site, a chat app or a clone of something famous. Those projects are not useless. Building one teaches a lot. But on a resume they all look the same, and they give an interviewer nothing new to ask about.

Now imagine a fresher applying to payments companies whose project is a small payment-retry service that never charges a customer twice, even when the network fails halfway through. An engineer at a payments company reads that line and recognises a problem their team deals with. The interview starts with a question the student is well prepared for, about a design they chose themselves. That is the difference this article is about.

What you will learn

#
  • The mirror technique: choosing a project from your target companies' problem space.
  • Where to find that problem space in public material.
  • How to choose one hard part and scope a project to three or four weeks.
  • Example projects by domain, including for services companies and non-development roles.
  • How to build with AI help while keeping the decisions yours.

The mirror technique

#

Pick three companies from the target group of your list (article 4). For each one, find out what technical problems they talk about publicly, then build a small project that lives in that problem space. Not a clone of their product, but something that shows you understand what makes their work hard.

Why it works:

  • Recruiters and engineers recognise it. A project in their domain reads as relevant without explanation.
  • It gives you better interview conversations. You can connect your design to theirs ("I handled retries with idempotency keys; I'd be curious how your team handles it at scale").
  • It feeds your "why this company" answer (article 29) with something real.
  • One project can serve a whole domain. A payments project is relevant to many fintech companies, not just one.

Finding the problem space

#

You need public sources only:

Source

What to look for

Job descriptions

The nouns: "payments", "reconciliation", "real-time tracking", "search", "notifications", and the stack named repeatedly

Engineering blogs

Problems they wrote about solving: retries, caching, rate limits, data pipelines, testing at scale

Conference talks by their engineers

The same, often in more depth

Their product, used as a customer

What has to be fast, correct or reliable for the product to work

Public repositories on their GitHub organisation

Libraries they built and the problems those solve

Collect five to ten bullet points per company. You will notice overlaps across companies in the same domain, and the overlaps are where your project should live.

Using AI to turn your notes into ideas

#

Paste your notes, not the company name alone. An assistant asked about a company from memory may invent its architecture or describe it as it was years ago.

Code
I am a fresher building one portfolio project for job applications.Here are notes I collected from job descriptions and engineering blog postsof three companies I am targeting:[paste your bullet points, with the source of each]My stack: [languages and frameworks I can already use].Time available: about [n] hours a week for 4 weeks.Suggest 3 project ideas that:1. Sit in the problem space my notes describe (quote the note each idea comes from).2. Have exactly one technically hard part that a tutorial would not solve for me.3. Can be built and deployed by one student in 4 weeks with my stack.4. Produce something a stranger can try through a link or a single command.For each: a one-line pitch, the hard part, what to measure, and what to cutif time runs short. Do not claim anything about how these companies buildtheir systems beyond my notes.

How to check the ideas: for each, ask whether you could explain the hard part to an engineer at one of those companies, and whether it fits four weeks honestly. If an idea needs three technologies you have never used, it is a reach; pick another or cut it down.

Example projects by domain

#

These are illustrations of the pattern, not a menu to copy. Your version should come from your own notes.

Domain

Project

The hard part

What to measure

Payments and fintech

A payment-processing service with retries

Never charging twice: idempotency keys, a state machine for each payment, safe retries after timeouts

Behaviour under simulated failures; duplicate charges prevented in tests

Delivery and logistics

An order-tracking service with live updates

Pushing state changes to clients (WebSockets or server-sent events), handling out-of-order events

Update latency; reconnection behaviour

Personal finance

A transaction categoriser for bank statement exports

Parsing messy formats, rules that can be explained, handling unknown merchants

Accuracy on a hand-labelled sample

Developer tools

A command-line tool that removes a real annoyance in your own workflow

Clean interface design, error messages, cross-platform behaviour

Time saved on a task you timed before and after

Content and social

A feed service with pagination and caching

Efficient pagination, cache invalidation

Response time with and without the cache

IT services targets

A well-built web application with authentication, REST APIs and a database

Clean structure, validation, error handling, tests and documentation

Test coverage; documented API

For services companies and many capability centres, the "hard part" can simply be quality: a complete, tested, documented application shows the discipline those employers value. For product companies and startups, the hard part should be a real technical problem.

For data, QA, support and DevOps roles

#
  • Data analyst: pick a public dataset from a domain your target companies work in (transport, retail, health), ask one concrete question, clean the data, answer the question with a dashboard and a one-page written finding.
  • QA or SDET: choose an open-source web application, write a test plan, automate the most important user journeys, and file one well-written bug report if you find a real bug.
  • Support: set up a small application on a Linux server, break it in realistic ways (a full disk, a wrong permission, a database connection failure), and write runbooks for diagnosing each.
  • DevOps: take your own or an open-source project and build a pipeline that tests, builds a container, and deploys on every push, with the configuration in the repository.

The "one decision no tutorial made" rule

#

If a project can be built by following a video step by step, it shows that you can follow steps. Every project on your resume should contain at least one decision you had to make yourself, with a trade-off you can explain:

  • Why a relational database instead of a document store, for this data.
  • Why retries use exponential back-off with a limit.
  • Why the cache expires after five minutes and not one hour.
  • Why you validate input at the API boundary instead of deep in the code.

Write each decision in a short DECISIONS.md file in the repository: the decision, the alternatives, and why. It takes ten minutes per decision and becomes your best interview preparation, because interviewers love "why" questions.

Scoping to three or four weeks

#

Students rarely fail by choosing too small a project. They fail by choosing one so large that it never ships. Scope in layers:

Week

Goal

Done when

1

The smallest end-to-end version

One request goes in, gets stored and comes back out, deployed somewhere

2

The hard part

It works for the normal case, and you have written down how

3

Edge cases and tests

Tests for the hard part's failure cases pass; the main bugs are fixed

4

Measurement and documentation

README, decisions file, measured numbers, demo link working

Have a "cut list" ready from the start: features you will drop if a week runs over. A deployed project with three features beats an undeployed one with ten.

Building with AI help, keeping the decisions yours

#

AI assistants speed up a project a lot. Keep them in the roles where they help without replacing your thinking:

Use AI for

Keep for yourself

Set-up, configuration, boilerplate, test scaffolding

The design of the hard part

Explaining an unfamiliar library or error message

Choosing between alternatives

Reviewing your code for bugs and missed edge cases

Writing the core logic

Suggesting test cases

Deciding what "correct" means

Drafting the README from your notes

The decisions file

Asking for debugging help well

#

When you are stuck, a good request includes what you have already tried. It saves the assistant from suggesting things you ruled out, and it forces you to think first.

Code
Context: I am building [one-line description] in [stack].Relevant code (only the parts involved):[paste code]The exact error and stack trace:[paste]What I expected to happen: [one line]What I have already tried and what happened: [list]What is the most likely root cause? Explain why before suggesting a fix.If my overall approach to this part is flawed, say so.

Read the explanation, then make the fix yourself. If the assistant's first answer does not work, tell it exactly what happened. Do not just paste the new error without context.

Students and free tools

#

Many developer tools have free tiers or free student plans, and GitHub Education gives verified students access to a bundle of developer tools, which has included GitHub Copilot. Terms, limits and what is included change often, so check each tool's current page before you build around it (as of October 2026).

A worked example

#

Lakshmi is targeting payments and fintech startups with a Java and Spring Boot background.

  1. Notes. Across three companies' job posts and blogs she finds "payment failures", "retries", "webhooks", "reconciliation" and "idempotency".
  2. Idea. A payment service that accepts payment requests, simulates a flaky payment provider, retries safely and sends webhooks to a merchant.
  3. Hard part. Ensuring a payment is never processed twice, even when the client retries after a timeout. She uses an idempotency key stored with a unique constraint and a state machine (created, processing, succeeded, failed).
  4. Scope. Week 1: create and fetch a payment, deployed. Week 2: idempotency and retries. Week 3: failure-case tests (duplicate requests, provider timeouts). Week 4: README, decisions file, measured behaviour under simulated failures.
  5. Cut list. A dashboard, refunds, multiple currencies.
  6. AI use. Project set-up and test scaffolding with an assistant; idempotency design and state transitions written herself and then reviewed by the assistant, which pointed out a race condition between two simultaneous requests with the same key. She fixed it with the database constraint and wrote that up as a decision.

That race condition became her best interview story: a real bug, found by review, fixed with a principled solution.

Common mistakes

#
  • Choosing a clone because it is familiar. Familiar to you also means familiar to every interviewer.
  • Choosing a project with three hard parts. One hard part, done well, is plenty.
  • No cut list. Without one, week four turns into week eight.
  • Letting AI design the hard part. Then the best interview topic belongs to the assistant, not to you.
  • Copying an example from this article without your own notes. The mirror technique works because the project connects to your targets.

Exercises

#

Exercise 1

Find the problem space

#

Here are notes from three job posts: (1) "Build reliable notification delivery across SMS, email and push"; (2) "Experience with message queues and retry mechanisms is a plus"; (3) "Own services that send millions of order updates to customers". Describe the shared problem space and one project idea with its single hard part.

Exercise 2: Fix the scope

#

A student plans: "A food delivery app with user, restaurant and delivery-partner apps, live tracking, payments, ratings, recommendations using machine learning, and an admin dashboard, in four weeks." Rescope it to something shippable, naming the hard part and the cut list.

Exercise 3: Write a decision

#

Write a DECISIONS.md entry for this choice: in a URL shortener, you generate short codes from a counter encoded in base 62, instead of random strings. Include the alternatives and why you chose this.

Exercise 4: Plan your project

#

Using notes from three of your target companies, run the idea prompt, choose one idea, and write a four-week plan with a hard part, a cut list and what you will measure.

Show solutionHide solution

Shared problem space: reliable, high-volume notification delivery: sending messages through several channels, retrying failures and not losing or duplicating messages.

Project idea: a notification service with an API that accepts "send" requests, puts them on a queue, and delivers them through pluggable channel adapters (simulated SMS and email providers that sometimes fail).

The single hard part: reliable delivery with retries: exponential back-off, a maximum number of attempts, a dead-letter queue for messages that keep failing, and no duplicates when a worker crashes after sending but before recording success.

What to measure: messages delivered, retried and dead-lettered under a simulated failure rate; delivery delay.

Exercise 2

Show solutionHide solution

The plan has at least five hard parts, which cannot fit in four weeks. Rescoped:

Project: an order service for a food delivery flow, with a single web client.

Hard part: order state and live status updates: an order moves through placed, accepted, picked up, delivered (or cancelled), and the customer's page updates live through server-sent events. Invalid transitions are rejected.

Week by week: (1) create and fetch orders, deployed; (2) the state machine plus live updates; (3) tests for invalid transitions and reconnection; (4) README, decisions file, measured update delay.

Cut list: separate restaurant and delivery-partner apps (simulate them with buttons on an admin page), payments, ratings, ML recommendations, a full admin dashboard.

The rescoped project is smaller, but it can be finished, deployed and explained in depth.

Exercise 3

Show solutionHide solution
Code
## Short codes: counter + base 62 instead of random stringsDecision: generate each short code by taking the next value of a databasesequence and encoding it in base 62 (0-9, a-z, A-Z).Alternatives considered:- Random 7-character strings: simple, but collisions are possible, so every  insert needs a uniqueness check and a retry on collision.- Hash of the long URL: the same URL always gets the same code (sometimes  useful), but truncated hashes can collide and need handling.Why this choice: a sequence never collides, so inserts need no retry loop,and codes stay short (7 characters cover over 3.5 trillion values).Trade-off: codes are predictable, so someone can enumerate links. That isacceptable for this project because links are not secret; if they were,I would use random codes and handle collisions.

The key parts are the alternatives and the honest trade-off. An interviewer will almost certainly ask "what is the downside?", and you have already answered it.

Exercise 4

Show solutionHide solution

Check your plan against these criteria:

  • Each idea quotes a note from your sources, so it really mirrors your targets.
  • You chose one idea with exactly one hard part, and you can state that hard part in one sentence.
  • Week 1 ends with something deployed.
  • The cut list has at least three items.
  • "What to measure" is concrete (a response time, a failure behaviour, an accuracy figure), and you know how you will measure it.

If any of these is missing, fix the plan before you write code. Article 10 covers the measuring in detail.

Where to go next

#

Keep reading

More in Career →
  • Guide · Career

    Interview Preparation and Mock Interviews with AI

  • Guide · Career

    Job Descriptions, Skill Gaps and Portfolio Projects with AI

  • Guide · Career

    A LinkedIn Profile That Gets Recruiter Messages