HNHacker News
TopNewBestAskShowJobs

StellarScience

189 karma · joined June 1, 2022

Stellar Science | Hybrid (USA) Albuquerque NM, Washington DC (Tysons VA), Dayton OH | Full time, interns/co-ops | U.S. citizenship required | https://www.stellarscience.com

Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: space situational awareness (monitoring the locations, health and status of on-orbit satellites), image simulation, high power microwave systems, modeling and simulation, laser systems modeling, AI/ML including physics-informed neural networks (PINN), human body thermoregulation, computer vision and image processing, high performance computing (HPC), computer aided design (CAD), and more. All exciting applications and no CRUD. We emphasize high quality code and lightweight processes that free software engineers to be productive.

Experience: Except for interns, we currently require a Bachelors degree in physics, engineering, math, computer science, or a related field. Masters or PhD is a plus. (Roughly 25% of our staff have PhDs.)

Technologies: Lots of C++23, Qt 6.9, CMake, git, OpenGL, CUDA, Boost, Jenkins. Windows and Linux, msvc/gcc/clang/clangcl. AI/ML and analysis projects use Python and C++. Web projects use Java and Typescript/React. We're a bit behind the curve on developer AI adoption, and we're okay with that.

Apply online: at https://www.stellarscience.com/careers/.

submissionscomments
StellarScience··on We Are Sorry to Inform You (2005)
We've adopted single entry / single exit except for short functions (< 10-15 lines), where all the returns are clearly visible at once. It seemed to placate both sides, and it allows you to write that simple 'findFoo' function that returns 'foo' as soon as it finds it.
StellarScience··on C#: IEnumerable, yield return, and lazy evaluation
This is indeed an amazing feature, and good languages copy ideas from each other. I believe C# has had this for years. C++ just got it with C++20 coroutines, though it still takes some work to use since std::generator didn't make it into C++20.

Lest folks think this is a new feature, it was invented by Barbara Liskov in her CLU language, as explained in this 1977 paper: https://web.eecs.umich.edu/~weimerw/2011-6610/reading/liskov... (PDF, see section 4.2.)

StellarScience··on C#: IEnumerable, yield return, and lazy evaluation
This incredibly powerful facility is also available in C++20 with coroutines. 'yield return' is written as 'co_yield'. Also since "iterator" means something else in C++, this special usage of coroutines is called a "generator".

'co_yield' makes iterators/generators super easy to write as shown in this article. But also it enables great abstraction/encapsulation for where you want to provide an interface allowing callers to iterate over elements, without exposing the underlying container type.

(Note that 'std::generator' is not yet officially standardized, but with a little work we're using Microsoft's 'std::experimental::generator' across platforms, compiling with clang and gcc. Alternatively, I hear the cppcoro library is pretty great.)

StellarScience··on Ask HN: Who is hiring? (June 2022)
Stellar Science | Hybrid USA Washington DC, Albuquerque NM, Dayton OH | Full time, internships/co-ops | U.S. citizenship required | www.stellarscience.com

Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: computer vision and image processing, space situational awareness (monitoring the locations, health and status of on-orbit satellites), metamaterials design, image simulation, high power microwave systems modeling and simulation, computational electromagnetics (CEM), human body thermoregulation, laser systems modeling, high performance computing (HPC), computer aided design (CAD), and more. All exciting applications and no CRUD. We emphasize high quality code and lightweight processes that free software engineers to be productive.

Experience: We typically look for Bachelors degrees in computer science, physics, engineering, math, or a related field, and also hire Masters and PhDs (roughly 30% of our staff have PhDs.)

Technologies: C++20 with coroutines and generators, Qt 6, CMake, Boost, Jenkins, git, OpenGL, CUDA, OpenSceneGraph. Windows and Linux, msvc/gcc/clang/clangcl, Visual Studio 2022 or any productive IDE. Some projects also use Python, Java, or Javascript.

Apply online at https://www.stellarscience.com/careers/.

← PreviousPage 4 of 4