# Mihai Serban — Software Engineer > Software engineer sharing insights on JavaScript, React, AWS, mobile development, and building products. Tutorials, deep dives, and project showcases. ## Blog Posts - [A 7K-Parameter Neural Router That Saved Me Money on AI Coding](https://mihaiserban.dev/blog/neural-llm-router-coding-assistant/): How I trained a 5,000-parameter linear head on top of Qwen-0.6B to classify coding requests by task type, routing cheap models to exploration and reserving expensive ones for complex builds. (2026-07-07) - [Replacing Orchestrator Agents: What arXiv Research Says About Context Bottlenecks and Better Alternatives](https://mihaiserban.dev/blog/replacing-orchestrator-agents-with-governance-worker-synthesis/): Orchestrator agent workflows break down on long-horizon tasks because a single context window becomes the hard ceiling. I researched 11 arXiv papers and replaced my orchestrator-minion architecture with a file-based governance-worker-synthesis system. (2026-07-05) - [Building a Design Pattern Generator for CNC & Laser Cutting](https://mihaiserban.dev/blog/building-a-design-pattern-generator-for-cnc-laser-cutting/): I built a web-based pattern generator to design perforated sheet metal patterns for my front gate. It exports SVG, PDF, and DXF — and runs entirely in the browser. (2026-06-09) - [Building Semantic Search Over a Knowledge Base](https://mihaiserban.dev/blog/building-semantic-search-over-a-knowledge-base/): Semantic search embeds query and documents into a shared vector space and retrieves by similarity, so paraphrase and synonymy are handled by construction. This is what the rest of this post is about. (2026-05-06) - [Cloning a Windows drive from Mac OS X using dd (Disk Destroyer)](https://mihaiserban.dev/blog/cloning-windows-drive-from-mac-os-x-using-dd-disk-destroyer/): Decided to upgrade upgrade my Windows drive on my dual boot Hackintosh. Here's how to do it from your Mac OS X drive using dd (Disk Destroyer). (2021-01-07) - [How to handle AWS SES bounces and complaints](https://mihaiserban.dev/blog/how-to-handle-aws-ses-bounces-and-complaints/): If you’re thinking of implementing AWS Simple Email Service for your product, you might find out that you need a flow to handle email… (2018-11-01) - [How to fix broken images in React.](https://mihaiserban.dev/blog/how-to-fix-broken-images-in-react/): In one of my recent projects we encountered many images which were missing from our S3 bucket. When I see something like this it just makes me sick 😫. (2018-10-24) - [ES6 cheatsheet  —  Arrow Functions](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-arrow-functions/): Arrows are a function shorthand using the => syntax. Arrow functions allow you to preserve the lexical value of this. (2018-10-20) - [ES6 cheatsheet  —  Async Await](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-async-await/): Async/Await is a new way to write asynchronous code. Previous options for asynchronous code are callbacks and promises. (2018-10-20) - [ES6 cheatsheet  —  Classes](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-classes/): Prior to ES6, we implemented Classes by creating a constructor function and adding properties by extending the prototype (2018-10-20) - [ES6 cheatsheet  —  Destructuring](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-destructuring/): Destructuring is a convenient way of extracting multiple values from data stored in (possibly nested) objects and arrays. (2018-10-20) - [ES6 cheatsheet  —  Generators](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-generators/): A generator is a function which can be exited and later re-entered. Their context (variable bindings) will be saved across re-entrances. (2018-10-20) - [ES6 cheatsheet  —  Getter and setter functions](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-getter-and-setter-functions/): Let's take a look at getter and setter functions within ES6 classes. (2018-10-20) - [ES6 cheatsheet  —  Helpful array functions](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-helpful-array-functions/): Dive into new array functions introduced in ES6 (2018-10-20) - [ES6 cheatsheet  —  Helpful string functions](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-helpful-string-functions/): Quick look at some helpful string functions introduced in ES6 (2018-10-20) - [ES6 cheatsheet  —  Map & WeakMap](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-map-weakmap/): Quick look into new Map & WeakMap introduced in ES6 (2018-10-20) - [ES6 cheatsheet  —  Modules](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-modules/): Prior to ES6, we used libraries such as Browserify to create modules on the client-side, and require in Node.js. With ES6, we can now directly use modules of all types (AMD and CommonJS). (2018-10-20) - [ES6 cheatsheet  —  Promises](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-promises/): Promises are one of the most exciting additions to JavaScript ES6. Promises are a pattern that greatly simplifies asynchronous programming by making the code look synchronous and avoid problems associated with callbacks. (2018-10-20) - [ES6 cheatsheet  —  Set & WeakSet](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-set-weakset/): A Set is a collection for unique values. The values can be primitives or object references. (2018-10-20) - [ES6 cheatsheet  —  Spread Operator](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-spread-operator/): The spread syntax is simply three dots: `...` It allows an iterable to expand in places where 0+ arguments are expected. (2018-10-20) - [ES6 cheatsheet — String Templates](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-string-templates/): Template Strings use back-ticks (``) rather than the single or double quotes we’re used to with regular strings. (2018-10-16) - [ES6 cheatsheet — Variable Declarations](https://mihaiserban.dev/blog/javascript-es6-cheatsheet-variable-declarations/): An introduction to ES6 variable declarations, differences between var, let, const. (2018-10-16) - [How I grew my Twitter followers from 500 to 1000 in just 12 days 👏👏👏](https://mihaiserban.dev/blog/how-i-grew-my-twitter-followers-from-500-to-1000-in-just-12-days/): An experiment on growing my twitter following. (2018-05-11) - [How to generate cryptocurrency time intervals using MongoDB Aggregation Framework and Node.js](https://mihaiserban.dev/blog/aggregate-mongodb-data-with-node-js-and-mongoose-cryptocurrency-financial-time-series/): Let's use MongoDB Aggregation Framework to track volume changes at 1/5/30 minutes intervals. (2017-08-23) ## Projects - [Blitzer.de](https://mihaiserban.dev/project/blitzer_de/): Objective-C, C++, SQLite - [Callsign](https://mihaiserban.dev/project/callsign/): ReactJS, Javascript, Redux, CSS3, docker, BABEL, D3.js - [Creative Navy](https://mihaiserban.dev/project/creative-navy/): ReactJS, Gatsby, CSS3, Javascript - [ELHO Sales Application](https://mihaiserban.dev/project/elho/): Objective-C - [ForeverMap](https://mihaiserban.dev/project/forevermap/): Objective-C, C++, CI/CD, Unit testing - [Geobrain](https://mihaiserban.dev/project/geobrain/): Objective-C, C++, OpenGL ES - [impetus](https://mihaiserban.dev/project/impetus/): ReactJS, NEXT.JS, Javascript, CSS3, CI/CD - [NextNomads](https://mihaiserban.dev/project/next_nomads/): Objective-C - [Scout Global](https://mihaiserban.dev/project/scout_global/): Objective-C, Swift, C++, CI/CD, Unit testing, mongoDB - [WeStyle](https://mihaiserban.dev/project/we_style/): Objective-C ## Pages - [About](https://mihaiserban.dev/about/): About Mihai Șerban — background, experience, and skills. - [Projects](https://mihaiserban.dev/projects/): Portfolio of software engineering projects across mobile, web, and backend. - [Bookshelf](https://mihaiserban.dev/bookshelf/): Books Mihai Șerban has read and recommends. ## Feeds - [RSS Feed](https://mihaiserban.dev/rss.xml/) - [Atom Feed](https://mihaiserban.dev/atom.xml/) - [llms-full.txt](https://mihaiserban.dev/llms-full.txt/): Full content for LLM consumption