Hire a freelance web developer
Post the job and read proposals from engineers who build the software a company runs on — internal tools, dashboards, portals and the APIs behind them. Ingenium is the marketplace and holds the contract; the engineer you hire writes the application.
Post a web development jobThe web work that is hardest to buy
Not the marketing site. The internal tool that replaced a spreadsheet nobody trusts, the dashboard showing a production line what it did this shift, and the portal a customer logs into to find out where their order is.
Most of this work now lands on one stack, and for defensible reasons. TypeScript end to end, so a field renamed on the server breaks the build instead of breaking a page in front of a user. React for the interface. Next.js for routing, server rendering and the API routes that sit between the browser and the data. Node on the server. A REST API is still the usual contract between the front end and whatever holds the records, and a written contract — an OpenAPI document, or at minimum shared types — is what lets the two halves be worked on without one developer blocking the other. None of that is fashion; it is what keeps a tool changeable a year after it was delivered.
An internal tool is a genuinely different product from a public website, and hiring for it as though it were the same is the usual mistake. It has a small, known set of users who open it every day for years, and no acquisition funnel to optimise. Nobody has to be persuaded to use it; they have to be able to get through two hundred records before lunch. So the quality bar moves: keyboard navigation, tables that sort and filter the way a spreadsheet does, bulk actions, forms that validate against the same rules the server enforces, permissions that match how the organisation actually works, an audit trail of who changed what, and sensible behaviour when something fails. A tool that is pretty and slow will be abandoned for the spreadsheet it replaced.
Dashboards look like the easy half and are not. The chart library is a weekend; the hard part is everything behind it. Where the numbers come from, how they are aggregated, what a time range means when the plant runs night shifts across midnight, which timezone the server thinks it is in, how often the page refreshes without hammering the database, what the screen shows when a data feed has been down for an hour, and whether a figure someone will make a decision from is actually correct. A dashboard that is confidently wrong is worse than no dashboard, and a developer who starts by asking about the data rather than the layout understands that.
That point sharpens in an engineering business, where the data usually originates somewhere else entirely — a historian, a SCADA system, an ERP or MES, a fleet of devices in the field. The values arrive at an awkward rate, in raw units somebody has to scale, with gaps where a gateway was offline, and with timestamps from a clock that may not agree with yours. Reading them often means OPC UA, MQTT, Modbus TCP, a nightly file drop or somebody else’s API with no documentation. If your dashboard or portal has to read from a plant system, say so in the job post: it is the difference between a front-end job and a front-end job with a real integration inside it, and it changes who should be proposing.
The rest is the unglamorous part that decides whether you still have a working tool in two years. Responsive layouts, because the same screen gets opened on a phone on the shop floor, a wall-mounted display and somebody’s laptop. Authentication, single sign-on and roles. Database migrations. Environments and deployment, including on-premise when the data is not allowed to leave the site. Error reporting, backups and monitoring. And documentation good enough that a second developer can take over — which, on a freelance engagement, is a deliverable rather than a courtesy.
What a web job usually covers
Naming the ones you need turns “we need a web developer” into something an engineer can actually price.
Internal tools
The replacement for a spreadsheet or a paper process: records, forms, tables, bulk edits, roles and permissions, and an audit trail. Judged on how fast a daily user can get through their work, not on how it photographs.
Dashboards and reporting
Queries and aggregation, time ranges that respect shifts and timezones, charts, drill-down, exports and scheduled reports — plus honest behaviour when a feed is stale or missing.
APIs and integration
Designing a REST API someone else can build against — auth, pagination, errors, versioning — and the connectors to systems that already hold the data: ERP, MES, a historian, device telemetry, or a nightly file drop.
Customer portals
Accounts and roles for people outside the company: order or job status, documents and drawings, uploads, notifications, and a support path. The part where security assumptions stop being internal.
Front-end build
React components against a design or an existing system, responsive layouts, accessible forms, and the loading, empty, error and permission-denied states that make up most of a real interface.
Deployment and handover
Environments, CI, database migrations, monitoring and error reporting, backups, and documentation that lets the next developer — or your own team — carry on without the author.
Stack and interfaces
Worth naming your existing stack in the job post. Most of these transfer, but “we are already on Next.js and PostgreSQL” removes a week of argument.
Front end
- React
- Next.js
- TypeScript
- Tailwind CSS
- Vite
- TanStack Query
- Redux / Zustand
- Recharts / ECharts / D3
- WCAG accessibility
Back end and data
- Node.js
- Express / Fastify
- Next.js API routes
- PostgreSQL
- MySQL
- SQL Server
- Prisma / Drizzle
- Redis
- TimescaleDB / InfluxDB
APIs and access control
- REST
- OpenAPI
- GraphQL
- WebSockets
- OAuth 2.0 / OIDC
- SAML single sign-on
- JWT sessions
- Role-based access
Build and run
- Docker
- GitHub Actions
- Vercel
- AWS
- Azure
- nginx
- On-premise deployment
- Sentry
- Playwright / Vitest
Where engineering data arrives from
- OPC UA
- MQTT
- Modbus TCP
- Historian exports
- ERP and MES APIs
- CSV and file drops
- Device telemetry
Framework and service names are the tools the work is done in. An engineer’s experience with them is a fact about their history, not a partnership with or endorsement by any vendor.
Hiring it, and doing it
The same page serves two readers. One is deciding who to trust with a running machine; the other is deciding whether the job is worth a proposal.
What to look for in a web developer
This is the most crowded corner of freelancing, and a portfolio of attractive marketing sites tells you almost nothing about whether someone can build a tool your team will depend on.
- TypeScript end to end, and a reason for the stack rather than whatever they always use
- Examples of tools with real daily users, not only landing pages
- Questions about where the data comes from and how it is timestamped, before questions about the design
- Care about the unhappy paths: empty states, failed requests, slow queries, a feed that stopped
- Authentication, roles and an audit trail treated as part of the build, not a later phase
- Code and documentation a second developer could take over — maintainability is what you are buying
If you build web applications
A client reads your profile before they message you, and Ingenium requires it to be complete before you can send a proposal or accept an offer.
- “Web developer” is the most crowded label there is — put the stack and the domain in your skills instead
- If you have built against plant data, a historian, an ERP or device telemetry, say so; it is far rarer than React
- Show tools with users rather than template sites, and say what the users actually did with them
- State whether you take on the back end, the database and deployment, or front end only
- Skills, resume, job history, education, hourly rate and work schedule are all required before you can apply
- A client has to open the conversation — an invite to a job, a message, or an offer
How you hire a web developer here
Ingenium is a marketplace, not an engineering firm. It does not do the work — it is where the job is described, proposals are compared, and the contract and the money are held once terms are agreed.
Post the job
Describe the scope, the equipment involved and the site, and post it under Software Engineering. Posting is free. You can also invite a specific engineer to the job, or message one from their profile.
Read the proposals
Engineers who do this work reply with their rate and how they would approach it. Messaging is open from the moment a client starts the conversation, so the scope can be argued out before anyone commits.
Send an offer
An offer sets the payment model and the terms. Fixed price is split into milestones; hourly is invoiced weekly from logged time. The model is chosen when the job is posted and cannot be swapped later. A saved card is needed before an offer can go out.
Run the contract
An accepted offer becomes a contract with a shared work diary, tasks, time entries, comments, invoices and expense claims. Funds are held by Stripe and released when the client accepts the work.
Which payment model fits
Fixed-price milestones suit a defined build — an agreed screen list, a named integration, a portal with a written feature set — and the right first milestone is almost always the data model and the API contract, because everything after it depends on them being right. Hourly suits two cases: ongoing work on a tool that is already live and changing, and the discovery phase where what the tool should do is still being argued out with the people who will use it. The model is chosen when the job is posted and cannot be switched afterwards, so the usual shape is a fixed-price first version and then a separate hourly job for everything that follows.
The full flow from posting a job to getting paid covers both models and where the money sits in between. Everything a contract carries — time tracking, milestones, messaging, invoices, payouts — is listed on the features page. Or create an account and post the job.
Usually part of the same project
These jobs tend to arrive together. One engineer sometimes covers two of them; sometimes it is two contracts.
Your next engineer is one click away
Connect with the best freelance engineers and streamline your projects with our integrated management tools.
New here? Sign up for Free