JOB SUMMARY:
The Senior Algorithm Software Engineer is responsible for playing a leading role on a team focused on the development of improvements and enhancements to transportation routing and scheduling algorithms. This person analyzes, designs, programs, and debugs algorithm enhancements. Presents technical documentation to the team and stakeholders. May interact with users to define systems requirements and/or necessary modifications. Experienced in object-oriented design, coding, performance tuning, and unit testing. The role will be about 75% development and 25% system maintenance and support. This person
must
also have solid communication and team building skills and must be able to participate in software design discussions and guide the architecture of the solution based on proven object-oriented design concepts, industry standard patterns, and best practices. Mentors, guides and aids the growth of less-experienced developers through leadership.
Location: DealerSocket,Bangalore
ESSENTIAL RESPONSIBILITIES AND DUTIES:
Design, implement, and troubleshoot complex algorithms
with a focus on both traditional and ML-based solutions.
Optimize the
performance and scalability
of algorithms for real-world applications, addressing computational constraints and trade-offs.
Conduct
algorithm tuning
, including parameter optimization and runtime efficiency enhancements.
Write clean, modular, and well-documented code in
C#, C++,
java
and
.NET
to ensure production-grade quality.
Logical data modeling
Object oriented design, coding, and unit testing
Authors and reviews technical requirements to ensure compliance with business requirements
Performs proper unit testing and software code writing (including automated unit testing)
Participates in the testing process through test review and analysis, test witnessing and certification of software
Participates in peer code reviews and develops skill level of others through mentorship
Live troubleshooting of customer production issues
Machine Learning-Specific Engineering:
Build and optimize
ML models and pipelines
, focusing on constraints like speed, accuracy, and interpretability.
Develop and test ML algorithms such as supervised, unsupervised, and reinforcement learning methods, tailored to specific applications.
Preprocess and analyze large datasets
, ensuring data quality, normalization, and transformation to suit algorithmic needs.
Debug and troubleshoot
model performance issues
, including overfitting, underfitting, and convergence problems.
Implement and optimize
feature selection/extraction methods
to enhance model accuracy and runtime.
Deploy ML models to production, ensuring robust integration into existing systems.
Advanced Performance and Tools:
Design and implement
custom loss functions
, regularization techniques, and optimization strategies.
Use profiling tools and frameworks to debug and enhance computational efficiency (e.g.,
TensorFlow Profiler, PyTorch Profiler
, or custom solutions).
Leverage
distributed computing frameworks
train and deploy ML models on large-scale datasets.
Build and maintain
simulation environments
to evaluate the behavior of ML and non-ML algorithms under varied constraints.
Collaboration and Research:
Collaborate with
data scientists
and
domain experts
to align algorithms with project requirements and expected outcomes.
Stay updated with advancements in ML frameworks, libraries, and research to integrate cutting-edge methodologies into projects.
Translate state-of-the-art research papers into practical and scalable software solutions
QUALIFICATIONS
:
EDUCATION:
Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or Mathematics
EXPERIENCE:
6+ years of applicable Software Development experience.
Product Based company experience is
Mandatory
KNOWLEDGE/SKILLS/ABILITIES:
Knowledge of common routing algorithms
Traveling Salesman
Dijkstra's Shortest Path First algorithm
Genetic Algorithms and heuristics
Analysis of algorithms
Logical thinking
Excellent interpersonal skills
Excellent written and oral English skills
Excellent working knowledge of logical data modeling
Excellent working knowledge of C#/C++ development environments and process
Versed in industry standard Software Development Life-Cycle (SDLC) process methodologies and Agile methodologies such as SCRUM
Knowledge of Agile practices
Transportation industry knowledge desired but not required
Experience mentoring less experienced developers
Approaches software development using industry standard concepts, practices, and procedures
Ability to work on multiple tasks simultaneously with various team members and/or other groups both internally and externally
Ability to effectively engage in self-directed time management and prioritization of workload
Ability to work independently to develop new skills as needed to support new products and applications
Ability to coordinate and oversee parallel efforts for multiple developers
Knowledge of relational databases and SQL
Performance of data structures