Custom software development
Applications built for a specific operational need, from schema to interface, with the reasoning documented as the system grows.

IT company · fereman.com
Fer Eman designs, builds and maintains software systems for organisations that need their technology to be dependable, understandable and cheap to change.
Custom applications, web platforms, integrations, cloud infrastructure, quality assurance, security-focused engineering and long-term maintenance.
Written enquiries
tiffanygriffin462@gmail.com
We are a software engineering practice. Our work is the unglamorous part of technology: careful design, readable code, honest estimates and systems that can be handed to someone else without a translator.
Projects arrive in different shapes. Some are new products with an empty repository. Others are systems that have been running for years and now need to do something they were never designed for.
In both cases the method is the same: understand the domain first, agree on what success looks like, then build in increments that can be reviewed while they are still cheap to change.
We prefer fewer moving parts over more. Every dependency, service and abstraction has to justify the maintenance it will require later.
The technical ground the team works on day to day. These capabilities combine differently depending on the system being built.
Typed, tested application code across the front end and the server, structured around the domain rather than the framework.
Relational schemas, migrations, indexing and query design chosen for the access patterns the product actually has.
Accessible, responsive interfaces that behave predictably on slow connections and small screens.
Service boundaries, queues, background processing and retry behaviour designed for partial failure.
Reproducible environments, deployment pipelines, observability and cost-aware infrastructure choices.
Unit, integration and end-to-end tests run in continuous integration so regressions surface early.

Fig. 01 — System map: services, storage and the paths between them.
Full descriptions at fereman.com/services
Applications built for a specific operational need, from schema to interface, with the reasoning documented as the system grows.
Product interfaces and internal tools delivered as web applications, with attention to accessibility, performance and state handling.
Flows, wireframes and interface systems developed alongside engineering so the design survives contact with real data.
Environments defined as code, deployment pipelines, monitoring and the operational routines that keep a service available.
Contracts between systems that already exist, including data mapping, error handling and safe migration of live traffic.
Incremental replacement of ageing components without stopping the business that depends on them.
Test strategy, automation and review practices that make the state of a release visible.
Authentication, authorisation, secret handling and dependency hygiene treated as part of ordinary development.
Architecture review, technology selection and written recommendations for teams deciding what to do next.
Ongoing updates, defect resolution and small improvements after the first release.

How we approach a project
Before any code, we describe the current situation in writing: what people do today, where the friction is, which systems are involved and what must not break.
A first release should be small enough to finish and complete enough to use. We separate what is essential from what can wait, and say so plainly.
Work is delivered in increments to a running environment. Decisions are revisited with evidence rather than defended because they were made earlier.
These are working rules rather than slogans. They decide what gets written, what gets deleted and what never gets added in the first place.

Six recurring stages
Stage 01
A written description of the problem and its context arrives by email. We reply with questions rather than a proposal.
Stage 02
Existing systems, data, users and constraints are examined. The output is a shared written understanding, not a slide deck.
Stage 03
Scope, sequence and technical direction are agreed. Risks and unknowns are named explicitly so they can be scheduled.
Stage 04
Development runs in short cycles with running software at the end of each one, deployed where the client can use it.
Stage 05
Automated tests, manual review and, where relevant, load or security checks run before a release is considered done.
Stage 06
Documentation, access and operational routines are transferred. Ongoing maintenance continues only if it is wanted.

Security, privacy and quality
Access control, input validation, secret management and dependency updates are handled as ordinary engineering tasks with the same review as any other change.
Personal data is treated as a liability to be minimised. We collect what a feature genuinely requires, keep it for as long as it is needed, and make deletion possible by design rather than by request.
Quality is measured by what a system does under pressure: on poor connections, with unexpected input, and when a dependency is unavailable. Those cases are written into the test suite instead of discovered in production.
The technical problems below recur across sectors. Domain knowledge is built during discovery with the people who do the work.
Scheduling, project tracking, document handling and client-facing portals where accuracy of records matters more than volume.
Catalogue management, order flows, stock synchronisation and integrations between storefronts and back-office systems.
Dispatch tools, status tracking, device-friendly interfaces for field use and reliable synchronisation over unstable networks.
Production data capture, reporting layers over machine data and interfaces designed for shop-floor conditions.
Course delivery platforms, progress tracking and content administration with clear roles and permissions.
Administrative and scheduling software built with strict data minimisation and access control.
Reconciliation tooling, reporting pipelines and integrations with accounting or payment providers, with auditability as a requirement.
Editorial workflows, structured content models and delivery interfaces that stay fast as archives grow.
Accessible services, transparent data handling and systems that remain maintainable on modest budgets.
Working with Fer Eman
Questions are answered by the engineers doing the work, without a layer of account management in between.
Architecture choices, trade-offs and rejected options are recorded so future changes start from context instead of guesswork.
Repositories, environments and documentation belong to the client from the beginning of the engagement.
Estimates state assumptions and unknowns. When something turns out larger than expected, that is raised early rather than absorbed silently.
Every project is built as if another team will maintain it, because eventually someone will.

Fig. 02 — Interface work is reviewed with real data, not placeholder content.

Fig. 03 — Application work and the infrastructure under it are planned together.
Company and contact information
Company
Fer Eman
tiffanygriffin462@gmail.com
Website
fereman.com
Useful enquiries describe the system involved, the constraints around it and the result you are aiming for. Replies are sent from the same address.