How is it to work at Squarehead?
What Squarehead does
Squarehead develops advanced acoustic sensor systems combined with artificial intelligence. Our technology gives users a form of “super hearing” and is used to create situational awareness in defense, industry, and the maritime sector. In general, we turn complex audio environments into actionable insight.
Our main product is an array of 100+ microphones combined with advanced signal processing and smart algorithms that let us zoom in on sound from a specific direction. This allows us to detect and locate acoustic events like drones or anomalies, whether in the field or in the machine room of a boat.
Delivering these capabilities depends on close collaboration across disciplines, including hardware, software, product, operations and commercial teams. Thankfully, we have all our expertise and tools in-house, allowing us to be agile and maintain high quality when delivering real-world situational awareness.
This means lots of cool engineering challenges in real-time programming, audio, UX, C++, Rust, DSP, machine learning, TypeScript, React, concurrency, API design, GPU programming, media streaming, and more. The combination of super cool tech and a meaningful and important product is something many of us appreciate deeply.
Company structure
Squarehead has 8 departments, and the biggest ones are divided into small, focused, and autonomous teams (typically 3–5 people).
At Squarehead, everything is designed and built in Norway. In our Oslo office, hardware, software, and product development happen side by side, allowing all disciplines to collaborate closely and learn from each other. We even have a small production line in our headquarters that requires great tooling to work efficiently.
Engineering department
Our engineering organization has cross-functional feature teams focused on each particular market segment. These teams are supported by the embedded platform team, the core application team and the CI team. We also have a manufacturing tools team, supported by a hardware development team.
Each team is self-organising and takes responsibility for coordinating with others when needed. We prioritise direct communication and ownership. This enables us to focus on clear communication, short feedback loops, and getting things done.
We focus on doing what’s necessary to move work forward—no more, no less. That means minimal overhead, little need for micro-management, and a preference for lightweight processes over rigid frameworks. Instead of adding layers or rituals, we prioritize clear communication and getting things done. We use Linear to keep track of issues, and make it a point to keep our backlogs short.
Culture
We are a small, collaborative organisation where it is easy to talk to anyone and influence how we work. We aim to avoid unnecessary complexity, and most coordination happens through direct conversations or tools like Slack.
The atmosphere is friendly and supportive. We take the time to help each other, share knowledge, and solve problems together. By avoiding unnecessary pressure and stress, we create space for better work and continuous learning.
Engineering Tools
We use tools like git, GitLab, and Linear to collaborate and keep track of work. We also provide modern hardware (e.g. high-end laptops) and access to relevant software and a pragmatic approach to AI tools.
The backend code runs our embedded devices, which typically run on multi-core 64-bit CPUs, many also with a GPU (what does "embedded" even mean anymore?). These all run our own Yocto-based Linux operating system, and the backend code is written in C++.
It is important to us to use modern tools and techniques. We find this makes the code safer, and the work faster and much more fun! We use C++23, sanitizers, clang-tidy, clang-format, CMake, and Conan, and everyone can use whatever IDE they prefer. On Mac, we use the latest clang/llvm in macOS and Homebrew, on Linux we use the GCC that ships with the latest Yocto LTS, which we actively keep up to date.
The frontend code is written in TypeScript and React, and can be hosted both on our embedded devices and in separate apps. The apps are written in Rust with Tauri, and can run both on mobile devices and as desktop applications.
We use WebGL to create interactive and beautiful interfaces that can run anywhere, and responsive design to fit any device, mobile or other. For design and user experience, we use Figma.
Personal development
We support continuous learning across all roles.
For many employees, this means attending conferences, courses, or training relevant to their field. Teams also share knowledge internally through weekly presentations, workshops, hackathons, or informal sessions. Our employees are also encouraged to speak at conferences and we also host meetups at our office regularly.
We encourage initiative and try to create space for people to explore new ideas. Whether that’s exploring new technologies, improving processes, or developing new ideas.
For technical roles, this may include deep dives into specific topics or hackathons. For other roles, it may involve market insights, customer understanding, or operational improvements.
However, the most important learning happens through the work we do every day, and taking the time to do things properly, collaborate across disciplines, and help each other grow.
Squarehead is heavily involved in the local tech scene in Oslo. We're the main organiser and contributor to Oslo C++ Users Group, and are involved both with organising and speaking at NDC TechTown. Some of us also regularly speak abroad, at conferences like Meeting C++, C++ on Sea and CppCon.
Work / life balance
We typically work regular 37,5 hour weeks, with very little overtime, and a flexible work-day. Most of us prefer working from the Oslo office, but occasional remote work is completely fine.
Practical perks
Easy commute right next to the subway
Subsidised canteen
Weekly organised physical activity (chosen annually by employees)
Roof-top terrace for breaks and summer parties
Indoor bicycle and car parking
Wardrobe with showers