diff options
Diffstat (limited to 'martin-miller-resume.tex')
-rw-r--r-- | martin-miller-resume.tex | 74 |
1 files changed, 29 insertions, 45 deletions
diff --git a/martin-miller-resume.tex b/martin-miller-resume.tex index 0e7cb04..1944ee3 100644 --- a/martin-miller-resume.tex +++ b/martin-miller-resume.tex @@ -43,24 +43,19 @@ The World Model team develops software for distributing HD maps from the cloud to embedded applications and provides a C++ API for working with map and realtime pereception data in a unified manner. -I am involved in all aspects of software development from individual code contributions to setting the development roadmap to meet our department goals. I use my technical expertise to mentor developers on the team and establish best practices for production software development. - \begin{itemize} \itemsep -0.5em \vspace{-0.5em} % Compress items in list together for aesthetics -\item Create software roadmap -\item Designing and implementing a C++ API for accessing HD maps for use in online and offline applications. -\item Designing and implementing pipeline for retrieving and distributing map data in real time on embedded hardware -\item Manage a team of six developers -\item Establish test driven development as a best practice on the team -\item Participate in pair and mob programming with the team -\item Provide thorough review for junior developers -\item Mentor developers to take on design and review responsibilities. -\item Organize a book club for skill development -\item Apply agile approaches to development and planning -\item Work with management to establish goals and timelines for work -\item Work with other teams to prioritize deliverables to meet department goals -\item Share development best practices with other teams -\item Designing a B-spline library +\item Lead a team of eight developers (six direct reports) +\item Conduct interviews with software engineering candidates and make hiring decisions. +\item Create software development roadmap and set team development priorities. +\item Establish regular demo cadence with stakeholders to understand priorities and get rapid feedback. +\item Establish a teamwide standard for software quality that includes test-driven development and frequent pair programming +\item Conduct code reviews. +\item Ensure department and industry standards such as MISRA and Adaptive AUTOSAR are met +\item Contribute the production codebase in C++17 +\item Implement a B-spline library +\item Implement graph data structures and traversal algorithms +\item Utilize templating and metaprogramming (SFINAE) to generalize algorithms in our API \end{itemize} \end{rParSubsection} @@ -71,37 +66,29 @@ I am involved in all aspects of software development from individual code contri \begin{itemize} \itemsep -0.5em \vspace{-0.5em} % Compress items in list together for aesthetics -\item Provided high level guidance to a high performing team. -\item Consolidated the team onto two focused projects: The first was a ROS2-based research framework for in-vehicle and desktop based algorithm development. The second was an algorithm metrics framework. -\item Provided leadership oppportunities to engineers. Delegated scrum leadership to engineers and let them lead each other in the day-to-day work. -\item Established regular demos with stakeholders to solicit feedback and drive development priorities -\item Hosted an agile book club +\item Provided guidance to a high performing team. +\item Established two scrum teams to focus the team's efforts. +\item Identified project leads that were motivated and respected by their peers. +\item Initiated work on a ROS2-based research framework for in-vehicle data collection, testing, and offline resimulation. Set high level goals in bi-weekly sprint planning meetings. +\item Established regular demos with stakeholders to solicit feedback and drive development priorities. +\item Organized a book club for skill development \end{itemize} \end{rParSubsection} \begin{rParSubsection}{Ford Motor Company}{October 2017 -- December 2021}{Driver Assistance Research Engineer}{Dearborn, MI} - Worked primarily in C++ to develop and improve ADAS sensing algorithms. - \begin{itemize} \itemsep -0.5em \vspace{-0.5em} % Compress items in list together for aesthetics -\item Wrote multithreaded software for embedded targets. - \item Performed in-vehicle testing, data collection, and metrics development to drive improvements to our - algorithms. - \item Actively pursued improvements to the software development process - that increase code quality and development speed. +\item Re-wrote occupancy gridmapping algorithm for production. +\item Wrote portable C++11 code that builds in a Windows-based research framework and a Unix-based production framework without modification. +\item Wrote multi-threaded code to meet performance requirements. +\item Optimized code for embedded hardware. +\item Deployed Jenkins CI to automate code quality checks +\item Performed testing and data collection in-vehicle +\item Identified and fixed vehicle issues related to sensor calibration and GPS (OxTS RT3000) configuration. \end{itemize} - Led a multiyear project to re-implement our research occupancy gridmapping - algorithm for production. This is an algorithm that fuses radar, ultrasonic - sensors, and computer vision inputs to provide spatial information to ADAS - features for use in obstacle avoidance and path planning. The porting effort - was a total rewrite of the code to meet the hardware and software constraints - of the target embedded platform. The resulting codebase was one of the largest - in-house C++ projects delivered by our department. I played a key role in the - software architecture, implementations, validation, and optimization. - Awards: \smallskip @@ -116,14 +103,12 @@ I am involved in all aspects of software development from individual code contri \begin{rSubsection}{Aerospace Robotics and Controls Lab}{June 2013 -- July 2017}{Graduate Research Assistant}{Urbana, IL} \item Researched simultaneous localization and mapping (SLAM) techniques for a river environment. Fused camera and IMU data using an extended Kalman Filter (EKF). -\item Extended SLAM vision measurement model to incorporate reflections of objects in a river. +%\item Extended SLAM vision measurement model to incorporate reflections of objects in a river. \item Implemented multithreaded SLAM algorithm in C++ using Eigen and OpenCV. -\item Used campus computing cluster to tune EKF parameters. -\item Defined the requirements for the data collection platform's vision needs and identified hardware for purchase. +%\item Defined the requirements for the data collection platform's vision needs and identified hardware for purchase. \item Designed and constructed a custom trigger circuit for synchronizing the data collection platform's GPS and camera units. \item Wrote custom software to control camera trigger parameters, image resolution, and perform custom exposure control for challenging lighting in a river environment. \item Performed stereo camera and IMU calibration, which identified the transform between the IMU and cameras and provided the camera extrinsic and intrinsic parameters including lens distortion terms. -\item Developed infrared camera calibration technique for a standard checkerboard test pattern. \end{rSubsection} %------------------------------------------------ @@ -175,11 +160,10 @@ Bachelor of Arts in Middle East Studies \\ \begin{tabular}{ @{} >{\bfseries}l @{\hspace{6ex}} l } C++ & Daily usage of C++17, object-oriented programming, templating and Eigen. \\ -\textsc{Matlab} & Frequent usage for writing metrics and analysis scripts \\ -Docker & Test builds in Jenkins, setup ROS environment, server deployment. \\ -Linux & Expert. Daily professional and personal use. \\ Python & SLAM algorithm development using SciPy and OpenCV. \\ -In-Vehicle Testing & Collect data, troubleshoot, validate sensor calibrations. \\ +Docker & Test builds in Jenkins, setup ROS2 environment, server deployment. \\ +Linux & Expert. Daily professional and personal use. \\ +git & Proficient with most subcommands: merge, rebase, submodules, reset, log, etc. \\ \end{tabular} \end{rSection} |