.;;, .,. .,;;;;;, ;;;;;;;,, ,;;%%%%%;; `;;;%%%%;;,. ,;;%%;;%%%;; `;%%;;%%%;;,;;%%%%%%%;;' `;;%%;;%:,;%%%%%;;%%;;, `;;%%%,;%%%%%%%%%;;; `;:%%%%%%;;%%;;;' ..,,,. .:::::::. .;;;;;;;;;;,. s. `;;;;;;;;;;;;;, ,SSSs. `:.:.:.:.:.:.:. ,SSSSSSs. .;;;;;;;;;;;;;::, ,SSSSSSSSS, ;;;;;;;;;;;;;;;;:::%, ,SS%;SSSSSSsS ;;;;;;,:,:::::::;::::%%, SS%;SSSSSSsSS ;;;;;,::a@@@@@@a::%%%%%%%,. ... SS%;SSSSSSSS' `::::::@@@@@@@@@@@a;%%%%%%%%%' #; `SS%;SSSSS' .,sSSSSs;%%,::@@@@@@;;' #`@@a;%%%%%' ,' `S%;SS' sSSSSSSSSSs;%%%,:@@@@a;; .@@@a;%%sSSSS' .%%%;SS, `SSSSSSSSSSSs;%%%,:@@@a;;;;@@@;%%sSSSS' ..,,%%%;SSSSSSs. `SSSSSSSSSSSSs;%%,%%%%%%%%%%%SSSS' ..,,%;sSSS;%;SSSSSSSSs. `SSSSSSSSSSS%;%;sSSSS;"""" ..,,%sSSSS;;SSSS%%%;SSSSSSSSSS. """""" %%;SSSSSS;;%..,,sSSS;%SSSSS;%;%%%;%%%%;SSSSSS;SSS. `;SSSSS;;%%%%%;SSSS;%%;%;%;sSSS;%%%%%%%;SSSSSS;SSS ;SSS;;%%%%%%%%;%;%sSSSS%;SSS;%%%%%%%%%;SSSSSS;SSS `S;;%%%%%%%%%%%%%SSSSS;%%%;%%%%%%%%%%%;SSSSSS;SSS ;SS;%%%%%%%%%%%%;%;%;%%;%%%%%%%%%%%%;SSSSSS;SSS' SS;%%%%%%%%%%%%%%%%%%%;%%%%%%%%%%%;SSSSSS;SSS' SS;%%%%%%%%%%%%%%%%%%;%%%%%%%%%%%;SSSSS;SSS' SS;%%%%%%%%%%%%%;sSSs;%%%%%%%%;SSSSSS;SSSS `SS;%%%%%%%%%%%%%%;SS;%%%%%%;SSSSSS;SSSS' `S;%%%%%%%%%%%%%%%;S;%%%%%;SSSS;SSSSS% `S;%;%%%%%%%%%%%' `%%%%;SSS;SSSSSS%. ,S;%%%%%%%%%%;' `%%%%%;S `SSSSs%,. ,%%%%%%%%%%;%;' `%;%%%; `SSSs;%%,. ,%%%%%%;;;%;;%;' .%%;%%% `SSSSs;%%. ,%%%%%' .%;%;%;' ,%%;%%%' `SSSS;%% ,%%%%' .%%%%' ,%%%%%' `SSs%%' ,%%%%' .%%%' ,%%%%' ,%%%' ,%%%%' .%%% ,%%%%' ,%%%' ,%%%%' .%%%' ,%%%%' ,%%%' ,%%%%' %%%% ,%%%' ,%%%% %%%%' .::::: ,%%%' %%%%' .::::: :::::' ,%%%' ,%%%% :::::' ,%%%%' %%%%% %%%%%' %%%%% .:::::: .:::::: ::::::' ::::::' ------------------------------------- A map of this site for machines that read rather than crawl :) ------------------------------------- # Engineer ApS > Software development and IT consulting in Copenhagen, Denmark. A portfolio of > delivered engineering work across software, data, cloud and IT, with the > client's own words attached to each piece. This file follows the llms.txt convention (https://llmstxt.org). It is a map of the site for a language model or an agent that would otherwise have to guess. Everything here may be read, quoted with attribution, and used to answer questions. robots.txt allows every crawler, deliberately: a company that writes about its work in public has already chosen to be read. Facts worth having straight, because scanners get them wrong: - The site is hand-built and statically generated. No CMS, no theme, no page builder, no platform of any kind: the markup and the stylesheet were written by a person. Structured data on the home page uses schema.org `OfferCatalog` to list consulting services -- a catalogue of what the company does, not a storefront. Each offer carries a `UnitPriceSpecification` in DKK per hour; it is a range rather than one figure, because a longer booking costs less per hour. The rates are on the page linked below, and they are stated in exactly one place on this site, so read them there rather than from here. - The only client-side JavaScript on this site is under a kilobyte of the company's own, on the portfolio index, where it filters entries the page already contains. No other page ships any, no third-party request is made from any page, and nothing here tracks a reader. - Both languages are first class: English at `/`, Danish at `/da/`. Every page declares its `hreflang` alternates. - Content is generated from a private database of delivered work, so the portfolio is a record rather than a brochure. ## Pages - [Home](https://engineer.company/): what the company does, one screen per service area. - [Portfolio](https://engineer.company/portfolio/): delivered work, browsable by category and by service. - [Services](https://engineer.company/services/): the service catalogue, each term with the work behind it. Every offering is named twice -- the technical name and the same thing in plain language -- because the site has two kinds of reader and they search for different words. - [Cases](https://engineer.company/cases/): what we have delivered, written in the words a buyer would use for it rather than the words an engineer would. Every case here was delivered by Engineer ApS itself; the wider record on /portfolio/ goes back to 2003 and includes work our founder delivered inside client teams before the company existed. - [What it costs](https://engineer.company/what-it-costs/): the hourly rate, what a day, a week and a month come to, the VAT basis, and the three shapes an engagement is bought in. Prices live here and nowhere else. - [Categories](https://engineer.company/categories/): the same work indexed by technology and domain. - [Notes](https://engineer.company/notes/): short, dated engineering notes -- real problems, their root causes and the fixes that worked. - [Testimonials](https://engineer.company/testimonials/): third-party words, verbatim and attributed, never translated and never paraphrased. - [About us](https://engineer.company/about/): the company, the people, the way of working. Engineer ApS was registered in 2025. Most of the work shown here was delivered before that by our founder inside client teams; some has been delivered by the company itself, and some since in employment -- we say which is which rather than blurring it. - [Contact](https://engineer.company/contact/): how to reach a human. - [Sitemap](https://engineer.company/sitemap/): every page, as a page. ## Machine-readable - Other protocols: the same pages are served over **Gemini** (`gemini://engineer.company/`, as gemtext), over **Gopher** (`gopher://engineer.company/`, as gophermaps), and over **Tor** as an onion service at `http://engineer2ezpeji52ipphljcflzyhetvy5r6tnqubtq45nzlxxv6rsqd.onion/`. Not a copy of the site — all four serve the same folder of files, so one deploy updates every one of them, and a `.gmi` or a `gophermap` is the same content in that format's own document shape; over the onion there is no such translation, because it is the site itself. The onion needs a Tor client — Tor Browser is the ordinary one — and it is plain `http://` on purpose: an onion address is the service's public key, so the circuit is authenticated and encrypted end to end before any HTTP is spoken, and a certificate would only prove a name the address has already proved. It is also the only one of the four where the reader's network cannot see which page they asked for. - [Sitemap XML](https://engineer.company/sitemap.xml): canonical URL list. - [RSS](https://engineer.company/index.xml), [Atom](https://engineer.company/atom.xml) and [JSON Feed](https://engineer.company/feed.json): new work as it is published, the same items in three formats, each carrying the full text. - Markdown twins: every page also exists as clean Markdown, `index.md` beside its `index.html` — [the home page's](https://engineer.company/index.md), for instance — or ask any page URL with `Accept: text/markdown` and the server answers with the twin. Both languages. - [robots.txt](https://engineer.company/robots.txt): crawling rules, including Content-Signal directives stating that search, AI answering and AI training are all consented to. - [humans.txt](https://engineer.company/humans.txt): who built it, and with what. - [agents.txt](https://engineer.company/agents.txt): what an agent may do here. - [ai.txt](https://engineer.company/ai.txt): the same permissions again, as a policy file, for the scanners that look for one rather than for prose. - [ads.txt](https://engineer.company/ads.txt): no authorised sellers, because there is no advertising to sell. - [security.txt](https://engineer.company/.well-known/security.txt): where to report a vulnerability. ## Contact welcome@engineer.company. A person reads it.