Michal Nowakiewicz is a software engineer with five years of recent industry experience and a long history in backend systems spanning roles at Microsoft, MemSQL, AWS Aurora, and currently Ursa Computing. He brings deep C++ and systems expertise, evidenced by meaningful contributions to the high-profile Apache Arrow project—optimizing compute performance, refining hash tables and group-by execution, and improving thread-pool task handling. His background includes principal-engineer responsibilities on database and cloud teams, giving him a strong track record in scalable data systems and performance tuning. Based in Redmond, he combines academic rigor from a PhD in Computer Science with practical production experience shipping database and analytics features. Colleagues would note his focus on low-level correctness and efficiency, plus a knack for refactoring to reduce dependencies and improve maintainability. He’s comfortable in both research-led and product-driven environments, bridging complex algorithmic work with deployable engineering.
5 years of coding experience
10 years of employment as a software developer
Doctor of Philosophy (PhD), Computer Science, Doctor of Philosophy (PhD), Computer Science at Warsaw University of Technology
Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics
Role in this project:
Back-end Developer
Contributions:103 reviews, 19 commits, 22 PRs in 1 year 6 months
Contributions summary:Michal's primary contributions focused on improving the performance and functionality of the Apache Arrow project, specifically within the C++ codebase. They addressed issues related to thread pool tasks by refactoring to use FnOnce, which reduces dependencies. Additionally, the user implemented performance enhancements to the hash table used for group identification within the compute module and fixed an array offset issue in the GrouperFastImpl class. The user also added a new ExecNode for group by operations and supported dictionary arrays in hash join.
Apache Arrow is a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware. It also provides computational libraries and zero-copy streaming messaging and interprocess communication. Languages currently supported include C, C++, Java, JavaScript, Python, and Ruby.
Contributions:1 review, 3 PRs, 264 pushes in 1 year 10 months
memorypythonhierarchicalarrowdevelopment-platform
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.
Request Free Trial
Michal Nowakiewicz - Software Engineer at Ursa Computing