
Andrew Schenko developed core rendering and performance features for the OsmAnd-core repository, focusing on map visualization, stability, and cross-platform compatibility. He engineered robust map data loading and cancellation mechanisms, optimized symbol and label rendering, and improved terrain elevation handling using C++ and OpenGL. His work included concurrency-safe GPU resource management, shader caching, and dynamic style-driven data filtering, addressing both mobile and automotive contexts. By refactoring algorithms and enhancing resource management, Andrew reduced rendering latency and visual artifacts, resulting in smoother navigation and lower crash rates. His technical depth is evident in the breadth of geometry, graphics, and asynchronous programming solutions delivered.

October 2025 OsmAnd-core monthly overview: Delivered targeted rendering and shader stability improvements that directly improve map performance, navigation smoothness, and visual stability across devices. Work focused on robust visibility/frustum computations, terrain elevation rendering stability, and OpenGL shader robustness, all contributing to lower rendering latency, fewer visual artifacts, and easier maintenance. Key outcomes included a faster, more accurate global visibility calculation across multiple projections, reduced flicker in terrain elevation rendering, and cleaner shader code with improved error handling and logging. Collectively, these changes enhance user experience during map navigation and reduce support overhead by preventing common rendering-related issues.
October 2025 OsmAnd-core monthly overview: Delivered targeted rendering and shader stability improvements that directly improve map performance, navigation smoothness, and visual stability across devices. Work focused on robust visibility/frustum computations, terrain elevation rendering stability, and OpenGL shader robustness, all contributing to lower rendering latency, fewer visual artifacts, and easier maintenance. Key outcomes included a faster, more accurate global visibility calculation across multiple projections, reduced flicker in terrain elevation rendering, and cleaner shader code with improved error handling and logging. Collectively, these changes enhance user experience during map navigation and reduce support overhead by preventing common rendering-related issues.
September 2025 focused on rendering quality, performance, and stability across OsmAnd-core and OsmAnd-iOS. Key work included experimental spherical map layer work (globe rendering with a flatEarth toggle and related rendering adjustments) that was subsequently reverted to stabilize visuals, along with targeted performance and stability improvements. Implemented per-zoom OBF data caching and OpenGL shader caching to reduce runtime processing and shader compilation, stabilized polygon label rendering to prevent blinking and improve multi-label visibility, and on iOS added shader cache management with a batching cap of 8 to improve throughput. These efforts deliver smoother map interactions, lower GPU/CPU overhead, and more reliable label rendering, enhancing business value and user experience.
September 2025 focused on rendering quality, performance, and stability across OsmAnd-core and OsmAnd-iOS. Key work included experimental spherical map layer work (globe rendering with a flatEarth toggle and related rendering adjustments) that was subsequently reverted to stabilize visuals, along with targeted performance and stability improvements. Implemented per-zoom OBF data caching and OpenGL shader caching to reduce runtime processing and shader compilation, stabilized polygon label rendering to prevent blinking and improve multi-label visibility, and on iOS added shader cache management with a batching cap of 8 to improve throughput. These efforts deliver smoother map interactions, lower GPU/CPU overhead, and more reliable label rendering, enhancing business value and user experience.
August 2025 (2025-08) focused on delivering core performance and reliability improvements in OsmAnd-core. Key features delivered include robust cancellation of map data loading and tile processing, along with targeted resource loading optimizations and macOS build compatibility updates. These changes improve user responsiveness when queries are aborted or the map view changes and streamline resource loading, while maintaining stable builds on macOS with the latest clang. Impact: Reduced wasted processing and network/IO, faster and more predictable tile responses, and smoother cross-platform development and CI on macOS.
August 2025 (2025-08) focused on delivering core performance and reliability improvements in OsmAnd-core. Key features delivered include robust cancellation of map data loading and tile processing, along with targeted resource loading optimizations and macOS build compatibility updates. These changes improve user responsiveness when queries are aborted or the map view changes and streamline resource loading, while maintaining stable builds on macOS with the latest clang. Impact: Reduced wasted processing and network/IO, faster and more predictable tile responses, and smoother cross-platform development and CI on macOS.
July 2025 monthly performance summary: Strengthened map rendering reliability and symbol rendering quality across OsmAnd-core and OsmAnd-iOS, focusing on stability fixes, symbol subsections management, rendering performance, terrain elevation correctness, and improved render organization on iOS.
July 2025 monthly performance summary: Strengthened map rendering reliability and symbol rendering quality across OsmAnd-core and OsmAnd-iOS, focusing on stability fixes, symbol subsections management, rendering performance, terrain elevation correctness, and improved render organization on iOS.
June 2025 OsmAnd-core (osmandapp/OsmAnd-core) performance and stability summary: Overview: Delivery focused on stabilizing rendering paths, improving dynamic update behavior, and optimizing symbol handling. The work enhanced map visual fidelity under dynamic changes, reduced crash risk during animation workflows, and tightened the performance/maintainability of the rendering subsystem. Business value centers on more reliable map rendering for end users, faster update cycles, and lower ongoing maintenance costs. Key features delivered: - Symbol rendering redraw refactor to ensure symbols redraw correctly when the map changes and to optimize update intervals and resource management (commit 6c0818a06c3ec360ddc1dec2b48e0782b7393362). - LiveUpdate rendering improvements: enlarged bounding box for LiveUpdate queries and improved identification of live update data to prevent omission of relevant objects (commits fcfba4a04563a554d57eb1f45b96f81bb3083721 and 56ce647ea23e59c78fe41d4858d093dcb65b78df). - Code cleanup and minor performance optimizations: removal of unused variables and caching to speed up text ordering in symbol collections (commits 2ed78135d312e9a260786f6251a67446fa6fc6aa and 0050fa84f4f83b538dfc4c14afa46935504e88df). Major bugs fixed: - Map Marker Rendering Under Suspended Rendering: fixed rendering of map markers when rendering is suspended; ensures VectorLine and MapMarker are handled correctly to improve map visual accuracy (commit 5966482b9abaada08e1d378cf8071b758622f3d9); followed by related patch in a revert (commit fe323c397d25a167fd267f7a85d14fec9445b924). - Symbol updates on resource changes: ensure the map is invalidated and symbol updates are triggered to reflect latest symbol information (commit 73ac7cfd3b857c3e1d25d7bf32fe935b61a5e90a). - Crash prevention during marker animations: add guard to only request renders when the view has started, preventing crashes during marker animations (commit 0f0de42746739f6545a757845eaa9a144dd87471). - Deadlock fix in map marker creation: resolve deadlock by ensuring consistent handling of position type in inflateSymbol (commit aed86f6df31e1036690d943055bb34ea7d37d302). Overall impact and accomplishments: - Increased visual fidelity and consistency for map rendering under dynamic conditions, improving user experience and trust in map data. - Lower crash rate related to marker animations and rendering paths, contributing to higher app stability in production. - Improved performance and maintainability through targeted code cleanup and symbol/text ordering optimizations. Technologies/skills demonstrated: - Deep debugging of complex rendering pipelines, including marker, symbol, and LiveUpdate flows. - Concurrency-aware fixes (guards, invalidation, and avoidance of deadlocks). - Performance optimization through caching and refactoring for efficient redraws. - Symbol lifecycle management in response to resource changes and updates.
June 2025 OsmAnd-core (osmandapp/OsmAnd-core) performance and stability summary: Overview: Delivery focused on stabilizing rendering paths, improving dynamic update behavior, and optimizing symbol handling. The work enhanced map visual fidelity under dynamic changes, reduced crash risk during animation workflows, and tightened the performance/maintainability of the rendering subsystem. Business value centers on more reliable map rendering for end users, faster update cycles, and lower ongoing maintenance costs. Key features delivered: - Symbol rendering redraw refactor to ensure symbols redraw correctly when the map changes and to optimize update intervals and resource management (commit 6c0818a06c3ec360ddc1dec2b48e0782b7393362). - LiveUpdate rendering improvements: enlarged bounding box for LiveUpdate queries and improved identification of live update data to prevent omission of relevant objects (commits fcfba4a04563a554d57eb1f45b96f81bb3083721 and 56ce647ea23e59c78fe41d4858d093dcb65b78df). - Code cleanup and minor performance optimizations: removal of unused variables and caching to speed up text ordering in symbol collections (commits 2ed78135d312e9a260786f6251a67446fa6fc6aa and 0050fa84f4f83b538dfc4c14afa46935504e88df). Major bugs fixed: - Map Marker Rendering Under Suspended Rendering: fixed rendering of map markers when rendering is suspended; ensures VectorLine and MapMarker are handled correctly to improve map visual accuracy (commit 5966482b9abaada08e1d378cf8071b758622f3d9); followed by related patch in a revert (commit fe323c397d25a167fd267f7a85d14fec9445b924). - Symbol updates on resource changes: ensure the map is invalidated and symbol updates are triggered to reflect latest symbol information (commit 73ac7cfd3b857c3e1d25d7bf32fe935b61a5e90a). - Crash prevention during marker animations: add guard to only request renders when the view has started, preventing crashes during marker animations (commit 0f0de42746739f6545a757845eaa9a144dd87471). - Deadlock fix in map marker creation: resolve deadlock by ensuring consistent handling of position type in inflateSymbol (commit aed86f6df31e1036690d943055bb34ea7d37d302). Overall impact and accomplishments: - Increased visual fidelity and consistency for map rendering under dynamic conditions, improving user experience and trust in map data. - Lower crash rate related to marker animations and rendering paths, contributing to higher app stability in production. - Improved performance and maintainability through targeted code cleanup and symbol/text ordering optimizations. Technologies/skills demonstrated: - Deep debugging of complex rendering pipelines, including marker, symbol, and LiveUpdate flows. - Concurrency-aware fixes (guards, invalidation, and avoidance of deadlocks). - Performance optimization through caching and refactoring for efficient redraws. - Symbol lifecycle management in response to resource changes and updates.
May 2025 OsmAnd-core: Delivered rendering stability and performance improvements, enhanced debugging metrics, and tightened resource management. Focused on robustness of the rendering pipeline, EGL thread lifecycle, and improved visibility into tile rendering metrics to accelerate troubleshooting and quality.
May 2025 OsmAnd-core: Delivered rendering stability and performance improvements, enhanced debugging metrics, and tightened resource management. Focused on robustness of the rendering pipeline, EGL thread lifecycle, and improved visibility into tile rendering metrics to accelerate troubleshooting and quality.
April 2025: OsmAnd-core delivered critical stability improvements, reliability fixes for OBF cache and map rendering, ANR reduction in marker animation pause, and Java bindings enhancements for QPair via SWIG. These changes improve rendering accuracy, stability under optimized OBF reads, and cross-language binding capabilities, delivering tangible business value in app reliability and developer efficiency.
April 2025: OsmAnd-core delivered critical stability improvements, reliability fixes for OBF cache and map rendering, ANR reduction in marker animation pause, and Java bindings enhancements for QPair via SWIG. These changes improve rendering accuracy, stability under optimized OBF reads, and cross-language binding capabilities, delivering tangible business value in app reliability and developer efficiency.
March 2025 OsmAnd-core monthly summary: Delivered high-value performance improvements, rendering enhancements, and stability fixes. Focused on business value such as faster map rendering, richer coordinate grid capabilities (including MGRS), and streamlined map data loading via style-driven OBF filtering, resulting in improved user experience and reliability.
March 2025 OsmAnd-core monthly summary: Delivered high-value performance improvements, rendering enhancements, and stability fixes. Focused on business value such as faster map rendering, richer coordinate grid capabilities (including MGRS), and streamlined map data loading via style-driven OBF filtering, resulting in improved user experience and reliability.
Concise monthly summary for 2025-02 focusing on OsmAnd-core features and bug fixes, with emphasis on business value and technical achievement.
Concise monthly summary for 2025-02 focusing on OsmAnd-core features and bug fixes, with emphasis on business value and technical achievement.
January 2025 Monthly Summary for OsmAnd-core: Focused on stabilizing GPU resource handling, refining rendering accuracy, and improving code quality. Overall, delivered improvements that reduce concurrency issues, enhance map rendering fidelity near coastlines, and streamline maintenance responsibilities.
January 2025 Monthly Summary for OsmAnd-core: Focused on stabilizing GPU resource handling, refining rendering accuracy, and improving code quality. Overall, delivered improvements that reduce concurrency issues, enhance map rendering fidelity near coastlines, and streamline maintenance responsibilities.
December 2024 OsmAnd-core monthly accomplishments focused on rendering stability, performance, and cross-layer visibility improvements. Key features delivered include exposing the native core bitness (32/64) to the Android wrapper and implementing visible-area driven polyline simplification and symbol path optimizations to reduce rendering load. Major bugs fixed include relief map symbols blinking (correcting surface zoom level calculations and zoom-state handling) and OpenGL atlas map detail rendering math fixes to prevent division-by-zero and ensure correct detail distance for high-detail tiles. The work also addressed concurrency considerations in map layer GPU resource handling to improve stability under multi-threaded rendering. Overall impact: smoother, more scalable rendering for dense/high-detail maps, better device compatibility, and a more robust rendering pipeline. Technologies demonstrated: native C/C++, OpenGL rendering, Android NDK, multi-threaded resource management, and cross-language integration.
December 2024 OsmAnd-core monthly accomplishments focused on rendering stability, performance, and cross-layer visibility improvements. Key features delivered include exposing the native core bitness (32/64) to the Android wrapper and implementing visible-area driven polyline simplification and symbol path optimizations to reduce rendering load. Major bugs fixed include relief map symbols blinking (correcting surface zoom level calculations and zoom-state handling) and OpenGL atlas map detail rendering math fixes to prevent division-by-zero and ensure correct detail distance for high-detail tiles. The work also addressed concurrency considerations in map layer GPU resource handling to improve stability under multi-threaded rendering. Overall impact: smoother, more scalable rendering for dense/high-detail maps, better device compatibility, and a more robust rendering pipeline. Technologies demonstrated: native C/C++, OpenGL rendering, Android NDK, multi-threaded resource management, and cross-language integration.
Month: 2024-11 — OsmAnd-core: Delivered enhancements to map styling fidelity, optimized Android Auto rendering, and stabilized heightmap rendering across zoom levels. These changes improve styling accuracy, reduce startup/render latency in automotive contexts, and broaden compatibility of heightmaps, contributing to a more reliable user experience and stronger product value.
Month: 2024-11 — OsmAnd-core: Delivered enhancements to map styling fidelity, optimized Android Auto rendering, and stabilized heightmap rendering across zoom levels. These changes improve styling accuracy, reduce startup/render latency in automotive contexts, and broaden compatibility of heightmaps, contributing to a more reliable user experience and stronger product value.
October 2024 monthly summary for OsmAnd-core: Delivered critical UI rendering and map styling fixes that enhance reliability and user experience for core map rendering.
October 2024 monthly summary for OsmAnd-core: Delivered critical UI rendering and map styling fixes that enhance reliability and user experience for core map rendering.
Overview of all repositories you've contributed to across your timeline