Senior Software Engineer
Umer
Builds the product features clients actually touch — shipped complete, edge cases and all.
Remote · Pakistan
Booked on active builds
Full-stack
Schema through interface
Edge cases
Handled, not deferred
Accessible
Keyboard and screen-reader paths
Profile
About Umer
Umer is the engineer who takes a feature from a ticket to something in production that holds up. He works full-stack across the Midwave AI stack: schema and API on one side, typed React and accessible interfaces on the other, tests around the parts that would hurt to break.
He is unusually good at the unglamorous half of a feature — empty states, error paths, slow networks, permissions, the thing that happens when a user does it twice. That is usually the difference between a demo and a product.
Focus areas
The happy path is the easy 60%. Shipping means the other 40% is handled too.
Engineering
How a feature gets built
Layer 01
Interface
- Typed, composable React components
- Every state designed: empty, loading, error
- Keyboard and screen-reader paths
- Reduced-motion variants
Layer 02
Feature logic
- Domain types before implementation
- Optimistic updates with real rollback
- Permission checks on both sides
- Idempotent actions and retries
Layer 03
Integration
- Typed API clients
- Timeouts, retries, and backoff
- Graceful degradation on failure
- Structured error reporting
Layer 04
Confidence
- Tests where regressions hurt most
- End-to-end cover on critical flows
- PRs small enough to review properly
- Refactors kept separate from features
Finish the feature
Done means the edge cases too. A feature that only works on the happy path is not shipped.
Fail loudly, recover quietly
Errors are reported with context and handled in the interface, never swallowed into a blank screen.
Small, readable PRs
Changes sized so a reviewer can actually reason about them — which is how bugs get caught early.
Leave it cleaner
Touch a messy area, tidy it a little — as its own commit, so the review stays honest.
Capabilities
Where the depth is
The work Umer is trusted with on an engagement, and how confident we are handing each of them over.
React & Next.js
93%Server and client components used where each one actually belongs.
TypeScript
92%Types that describe the domain, so bad states are unrepresentable.
APIs & integrations
89%Third-party services wired in with retries, timeouts, and real error handling.
Testing
87%Tests concentrated where a regression would cost the most.
Accessibility
88%Semantics, focus management, and reduced-motion handled as part of the build.
Way of working
How Umer works
01
Clarify the edges
Before coding, list the states — empty, loading, error, unauthorised, and the awkward ones.
02
Build the contract
Types and API shape first, so the interface and the backend cannot drift apart.
03
Implement and cover
The feature plus tests around whatever would be expensive to break later.
04
Polish the details
Focus order, keyboard paths, motion preferences, and the copy in the error message.
Toolbox
Day-to-day tools
Services