Software Engineer
Role details
Job location
Tech stack
Job description
Develop and engineer a sophisticated, multi-platform 3D rendering software program for interior design applications, integrating real-time and photorealistic rendering pipelines, material processing, and cross-engine synchronization to deliver accurate, high-performance visualizations across multiple platforms. Design and optimize a hyper-realistic rendering software engine involving advanced texture workflows, ensuring consistent integration across different materials and rendering conditions (e.g., metallic edges) applying software engineering practices and methodologies. Implement custom GLSL/HLSL shaders for hyper realistic materials as part of a WebGL/OpenGL real time rendering pipeline. Engineer and maintain integrations with complementary software systems such as AutoCAD and 3ds Max SDKs to enable accurate CAD/BIM model ingestion into the company's visualization software. Profile and optimize CPU/GPU frame time, identifying bottlenecks such as draw-call overhead, overdraw, state changes, and shader cost; apply batching/instancing and render-queue optimizations where appropriate. Leverage and optimize GPU resources for real-time rendering, including texture/mipmap strategies, memory budgeting (VRAM awareness), and asset optimization to maintain stable performance of our software program on target hardware. Architect and enhance next-generation 3D rendering pipelines using physically-based rendering (PBR) techniques and, where applicable, real-time ray tracing. Integrate and develop high-performance 3D rendering software solutions using Babylon.js, JOGL/OpenGL and JavaFX 3D. Enhance legacy Java-based 3D graphics software programs ensuring top-tier performance expected from modern graphics software. Implement concurrency and distributed rendering components using Java RMI and ObjectDB to support scalable workloads. Collaborate with cross-functional engineering teams and clients, effectively communicating technical solutions and ensuring alignment with product goals.
Requirements
ALL REQUIREMENTS: Bachelor's degree or foreign equivalent in Computer Science, Engineering, Engineering Technology or related field. 4 years of Java experience in commercial software development. 4 years of experience with Java multi-threading and concurrency. 3 years of experience developing and optimizing 3D rendering software. 3 years of experience with graphics APIs or frameworks such as Babylon.js, JOGL, OpenGL, WebGL. 3 years of experience with GPU rendering concepts, including pipeline stages, depth/blending, draw calls, overdraw, and GPU resource usage. 2 years of experience with GLSL, HLSL, or equivalent shader programming. 2 years of experience with PBR materials and rendering workflows. 2 years of experience with rendering performance profiling and debugging. 1 year of experience with Java RMI and ObjectDB, or equivalent technologies.