Frontend development in Chicago
Operations screens in Chicago get used for eight hours at a stretch by people who know exactly what they want. A trading operations desk, a freight brokerage floor or an underwriting team does not need a pretty landing page. It needs a table with thousands of rows that stays responsive, filters that remember themselves, keyboard shortcuts, and live updates that do not make the row you are about to click jump away.
We build those interfaces in React and TypeScript: virtualised tables, updates batched so the screen stays readable, and state kept in the URL so a colleague can open exactly what you are looking at. We test with real data volumes rather than twenty sample rows, and we sit with the people who use the screen before changing it.
Chicago's software buyers are mostly not startups selling to other startups. The city's economy rests on trading and derivatives, around CME Group and the proprietary trading firms that grew up beside the exchanges; on freight and logistics, because this is where much of the country's rail and trucking traffic meets; on insurance, from carriers to the brokers and agencies around them; and on manufacturing and distribution across the Midwest. These are established, profitable businesses, and a good deal of their software is older than some of the engineers who maintain it.
So the work is integration and modernisation more often than a blank page. Freight systems speak EDI and carrier APIs that disagree about what happened to a load. Insurers run on policy administration systems nobody wants to replace and everybody wants to build around. Trading firms keep their latency-critical code with in-house specialists, and buy the layer around it: risk and reconciliation reports, operations dashboards, internal tools and data pipelines. The strongest pitch in Chicago is rarely a rewrite. It is a clean, documented system built beside the old one, with work moved across one piece at a time.
Built In puts the average base salary for a software engineer in Chicago at around $133,000, and every employer in the city competes with the trading firms for the same engineers. The result is a familiar backlog: the carrier integration that has to be done properly once, the agency portal everyone complains about, the internal tools the engineering team is too busy to reach. Those are defined pieces of work, which suits an engagement. It starts with a fixed-price two-week piece, and the code belongs to you from the first commit.
We move our working day for Illinois. Four hours of every working day overlap with your morning in Central time, stand-up included, so calls, reviews and decisions happen live with the engineer who writes the code. Everything decided or discovered is written down in your repository and tracker, and runbooks and architecture notes are written as we go, so the system built beside the old one is documented from its first day.
We are the right fit for a defined piece of modernisation, an integration that has to be done properly once, or the internal tools your own engineers are too busy to reach. Senior capacity starts within days, the first piece is a fixed-price two-week engagement, and agencies serving Chicago's insurers can put the work under their own name.
Four ways this arrives.
We measure on real devices and real traffic first, not a lab score on a fast laptop. The fix is usually less JavaScript: a smaller bundle, images sized for the screen, and third-party scripts that stop blocking the first render.
A procurement checklist, a customer complaint, or a letter from a lawyer. We fix the causes rather than the line items: real buttons, labelled forms, focus that lands somewhere sensible, and automated checks in CI so it stays fixed.
Global state that everything reads, no types, and three versions of the same modal. We add TypeScript file by file, put tests on the flows that make money, and move shared pieces into one component library as screens are touched.
Usually for search visibility or first-load speed. We move it route by route behind the same URLs, so the old app keeps serving while the new one takes over, and nobody has to sign off a risky weekend cut-over.
A Next.js web app with five operational dashboards and Tableau reports rendered in place, without a second login.
Read the write-up →Asked by Chicago teams.
How do you work with teams in Chicago?+
We are in Bengaluru and move our working day for Illinois, so four hours of every working day overlap with your morning in Central time, stand-up included. Calls, reviews and decisions happen in that window. The rest of the work lives in your tools: messages in Slack, code in GitHub, tickets in Linear. The person on every call is the engineer who writes the code, so a question about the system gets answered by the person who built it.
Do you build for Chicago freight and logistics companies?+
Yes. The work is usually the layer that turns messy events into a shipment you can trust: EDI load tenders, status updates and invoices parsed into one event model, carrier tracking APIs reconciled against it, and proof-of-delivery photos from a field app that works offline. Around that sit the operations screens a brokerage floor uses all day, and the pipelines that turn loads and lanes into pricing and margin reports.
How does your rate compare to hiring in Chicago?+
Built In puts the average base salary for a software engineer in Chicago at about $133,000, before benefits and bonus, and you are competing with trading firms for that person. Our published rate is $35/hour, or $5,400 a month for an embedded engineer, with a $5,000 minimum. There is no recruiting time and no employment overhead, and work starts within days. A fixed-price two-week first piece at $2,800 lets you judge us on output.
Can you build alongside our existing systems rather than replacing them?+
Yes, and in Chicago that is most of the work. We read the old system, write down what it actually does, and build the new piece beside it. Work moves across one workflow at a time, with both running until the last piece lands, so the business keeps running without a cut-over weekend. We did exactly this on FM360, moving a pipeline across module by module rather than in one cut-over.
Do we need to move to Next.js?+
Not always. If the app sits behind a login and nobody finds it through search, a well-built React single-page app on Vite is simpler to host and easier to reason about. Next.js earns its keep when first load and search visibility matter, or when you want rendering close to the data. We will tell you which case you are before anyone rewrites a route.
Can you work from our Figma files?+
Yes, and we will ask questions about them. Designs rarely show the loading state, the empty state, the error, or what happens when a name is twice as long as the mock-up assumed. We raise those early and propose something, rather than inventing it quietly in code and leaving your designer to find out in review.
Will you build us a design system?+
We will build the one your product needs, which is usually smaller than people expect: design tokens, the components you actually use, and Storybook to show them. We extract it from the screens you already have rather than designing it in isolation, because a component library nobody migrates to is just a second way of doing things.
How do you handle accessibility?+
We build to WCAG 2.2 AA by default, test with a keyboard and a screen reader, and run automated checks in CI so regressions are caught before they ship. Automated tools find only part of the problem, so we also test the key journeys by hand: sign-up, checkout, and anything a user does every day.
Do you only do the front end, or the API as well?+
Either. A lot of front-end pain is really an API shaped for a different screen, and when that is the case we can fix both sides. If your backend team owns the API, we write down what the front end needs from it and agree the contract with them, rather than working around it in the browser.