Karl Ostmo
kostmo@gmail.com | 650.404.7644
Problem solver, consensus builder, and full-stack programmer with 8 years professional software development experience in Silicon Valley.
Proficiencies
Programming languages: Python, Java, Haskell, Javascript, C, C++
Tech: Android, SQL, Linux, Google App Engine, 2D vector graphics, GUI toolkits (GTK, PyQT, SWT/Swing)
Other: clear, concise communication; data visualization
Work Experience
Current
Staff Software Engineer at Tesla, Inc., Palo Alto, CA
November 2010 - Present
Leadership
- Team lead for 4+ years on Build and Release infrastructure
- Team lead 2+ years in "data transformation tooling" projects
- Conducted 80+ phone screen/onsite interviews
- Mentored several interns/newhires
- Helped grow team from size of 1 (myself) to 8 developers
Responsibilities
- Product software
- overhauled system specification practices for accuracy, utility, traceability and visibility
- developed ergonomic, machine-readable data formats
- auto-derive software implementations (e.g. C code generation)
- facilitate data analytics
- maximize information sharing
- establish single-source-of-truth through build processes
- improve product runtime saftey through data hygiene
- minimize data maintenance burden
- vehicle telemetry
- system integration/interdisciplinary projects
- firmware signing and packaging for deployment
- product variant management
- Custom internal tools
- desktop GUI development
- custom internal web applications
- DevOps
- build system integration for new products
- build automation, performance optimization, reproducibility, hermeticity
- release management
- version control administration (SVN, Git)
- server administration (Jenkins, Bitbucket, etc.)
- Bitbucket plugin authorship
Major technical contributions
Undertook many projects that improved organizational velocity:
Build/release infrastructure
- Transitioned development infrastructure and processes from startup mode to scalable, sustainable practices
- Established build and release infrastructure from the ground up
- encompasses dozens of Electronic Control Units (ECUs) across multiple vehicle/stationary products
- used by hundreds of engineers daily
- continual efficiency improvements:
- parallelized build steps
- corrected build incrementality
- eliminated binary reproducibility issues
- simplified release versioning
- primarily implemented with SCons (Python)
- Migrated from SVN to Git for ~100 developers (2013)
- Bitbucket plugins/hooks and Jenkins jobs for maintaining repository hygiene
Software development practices
- Expunge derived artifacts from source control
- shaped developer practices through training, Git hooks
- eliminated major source of merge conflicts
- shepherded transition to downstream consumption of artifacts rather than repo content
- enabled by building requisite artifact hosting infra and inspection/comparison tooling
- Custom tooling for detecting build output changes and diffing artifacts
- Simplified maintenance and decreased error rate in data processing tools with functional programming, static types
CAN communications
Integrated automatic CAN network generation into build process
- Data hosted in Git for auditability and build reproducibility
- Designed ergonomic human-edited data files, implemented enforced normalization
- Low-level CAN details auto-derived from high-level specification
- automatic bus routing
- optimal message packing, wire representation
- Eliminated error-prone hand-maintenance and overspecification
Previous
- Freelance
- Android Developer
- Summer 2009 - Fall 2010
- Developed several applications for download or purchase on Android Market including a Flickr interface, Japanese study aid, Wikipedia editor, species taxonomy browser, and charting/graphing utility
- Designed and implemented database schema, multithreaded user interface, custom widgets and graphical components for each
- Integrated customer feedback into development cycle
- Purdue Rendering and Perception Lab, West Lafayette, IN
- Graduate Research Assistant
- August 2007 - May 2009
- Computer Vision: camera calibration, volume estimation
- Technology Assisted Dietary Assessment
- User interface design with GTK in Python, C, and C++
- Interfaced with Oracle and PostgreSQL databases from C++
- Realtime map tracking with OpenVG and OpenGL on Win32
- IBM Extreme Blue, Austin, TX
- Technical Intern
- Summer 2008
- Architected and implemented a multi-host webcam-based calibration and 3D reconstruction system (C++, OpenCV, GTK+)
- Assumed a leadership role in resolving project scope issues and delivering a successful product and conference presentation
- Hitachi GST, Rochester, MN
- Adv. Tech. Firmware Engineer
- 01/22/2007 - 08/10/2007
- Developed a graphical Discrete Event Simulator for hard disk seek algorithm prototyping
- Created animated algorithm illustrations and benchmark visualizations to demonstrate efficiency gains
- Implemented new algorithms in firmware, developed graphical testing suites in Python, Tcl
- NASA Jet Propulsion Laboratory, Pasadena, CA
- Engineering Intern
- 06/12/2006 - 08/18/2006
- Successfully implemented hardware drivers and tracking algorithms for a gimballed laser transceiver
- 06/13/2005 - 08/19/2005
- Developed instrumentation and control software for Subsurface Ice PRobe (SIPR)
- Co-developed new liquid level-sensing technology
- UND Housing Office, Grand Forks, ND
- Website Design and Consulting
- 06/2003 - 05/2005
- Apache configuration, database management and scripting
- Created cell phone text-message dining menu retrieval system
Education
Master of Science in Electrical and Computer Engineering
Purdue University, West Lafayette, Indiana
GPA 3.5/4.0
Graduated Spring 2009
Bachelor of Science in Electrical Engineering with Computer Science Focus
University of North Dakota, Grand Forks, North Dakota
GPA 3.85/4.0
Graduated summa cum laude December 2006
Coursework
- A.I.
- Computer Vision
- Probability Theory
- Digital Image Processing
- Biomedical Imaging Systems
- Electric and Magnetic Fields I & II
- Signals and Systems
- Control Systems
- Communications Engineering
- Microprocessor Hardware
- VHDL
- Electronics I & II
- Transmission Lines
- EMI / EMC
- Computer Graphics
Selected personal projects
- "Where's Waldo"-style social photo overlay game
- Android app in which users can segment a photo, provide clues, and challenge friends to find the clued regions.
- Uses the JTS library for segmentation
- Uses Google App Engine to store data
- Tilesaver
- A floor tiling optimization program written in Haskell.
- Given a floorplan, determines how many tiles
- Uses Clipper polygon clipping library
- Generates an SVG tiling visualization with the Diagrams library
Publications
- Ross Maciejewski, SungYe Kim, Deen King-Smith, Karl Ostmo, Nick
Klosterman, Aravind K. Mikkilineni, David S. Ebert, Edward J. Delp,
Timothy F. Collins. Situational Awareness and Visual Analytics for
Emergency Response and Training. IEEE International Conference on
Technologies for Homeland Security, 2008.