Giter Site home page Giter Site logo

balsa's Introduction

James Abel

Engineer (hardware, software) | Technical Team Manager
Redwood City, California, United States

Email | LinkedIn | Website

Summary

Engineer experienced in software and hardware architecture and development. Skilled in cloud architectures, computer architectures, digital signal processing, machine learning, application analysis, performance analysis and optimization, design automation, and simulation. Experienced in managing technical teams (10-20 engineers). Currently developing in Python and C/C++, with experience in many other languages.

Co-organizer of local Python meetup (SF Python) and regional conference (PyBay). Creator and contributor to several Python open-source projects.

Experience

Aclarion (formerly Nocimed)

VP of Engineering
May 2018 - Present

  • Implemented Signal Processing and Machine Learning algorithms using Magnetic Resonance Spectroscopy (MRS) data to aid in the treatment of Chronic Low Back Pain (CLBP).
  • Architected and developed the Nociscan-LS cloud-based product for the medical industry using AWS.
  • Interfaced into cloud medical imaging systems (Ambra).
  • Worked closely with Regulatory Affairs to ensure product compliance with US, EU, and UK regulations.
  • Generated IP and Patents for applying Machine Learning to Magnetic Resonance Spectroscopy (MRS) data.
  • Developed primarily in Python and C/C++.
  • Both individual contributor and manager of a small technical team.
  • Drove engineering planning, execution, and delivery. Presented and obtained buy-in to C-Suite and Board of Directors.
  • Responsible for entire production stack.

Computer Engineering Consultant
July 2016 - May 2018

Intel Corporation

Principal Engineer
February 1988 - June 2016 | Santa Clara, CA

  • Led hardware and software architecture projects, design automation, simulation, modeling, tracing, and optimization.
  • Developed and analyzed software workload tracers for CPU and platform simulators.
  • Managed a technical team of ~20 engineers, establishing engineering quality standards.

Principal Engineer
2012 - 2016 | Santa Clara, CA

  • Chief Tracing Architect, responsible for software workload tracers.
  • Utilized machine learning for workload analysis and improvements.
  • Led cross-Intel initiatives on tracing and simulation.

Principal Engineer
2011 - 2012 | Austin, Texas

  • Focused on performance and power improvements for future Atom cores.
  • Analyzed industry-standard benchmarks and ISV applications.
  • Developed new tools and analysis techniques.

Principal Engineer
February 2002 - 2011 | Chandler, AZ

  • Delivered performance optimizations for key software applications.
  • Drove new instruction definition and performance improvements into Intel products.

Sr. Software Engineer
January 1997 - January 2002

  • Optimized multimedia and signal processing applications.
  • Implemented a Dolby Digital decoder using MMX™ Technology.

Sr. Design Engineer
January 1991 - January 1994

  • Designed a single-chip communications product targeting wireless communications.

CAD Engineer
January 1988 - January 1991

  • Developed behavioral models of embedded cores and automated test software.

GenRad Corporation

Hardware Design Engineer
January 1985 - January 1987

  • Designed automated test systems for micro-processor based adapter boards, systems, and SCSI disks.

Dynacomp

Hardware Design Engineer
January 1983 - January 1984

  • Designed single-board microcomputer systems based on the 68000 processor.

Education

Arizona State University
Master’s Degree, CS · (1991)

Bradley University
BSEE · (1983)

Top Skills

  • Hardware Architecture
  • Computer Architecture
  • Debugging

Certifications

  • Machine Learning with Python

Publications

  • MMX-enabled Dolby Digital decoder

Patents

  • Machine Learning for biomarkers using spectral analysis
  • Image processing using unaligned memory load instructions
  • Sequencer address management
  • Reducing peak spectral error in inverse Fast Fourier Transform using MMX™ technology
  • SIMD integer multiply high with round and shift
  • Function coprocessor

balsa's People

Contributors

gh-mrice avatar jamesabel avatar mrice-nocimed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

balsa's Issues

optionally provide traceback

Do a traceback.format_exc() on error or above, with an option to turn this off.
In GUI mode, display a 2nd dialog box with the traceback.

tolerate not having tkinter

The embedded Python interpreter (which is currently only available for Windows) does not include tkinter and there is currently no straight-forward way to install it (there is no "ensuretkinter" like there is "ensurepip"). So, we can't rely on tkinter being present. As a workaround, in order to at least not raise a "module not found error", add this code:

  • put a try/except around the "import tkinter"
  • in the GUI code, do not use tkinter if the "import tkinter" failed
    Of course, with this workaround we'll lose the ability to pop up error dialog boxes. But it's better than not being able to run at all. Hopefully services like Sentry will be sufficient for us to view the error messages.
    In the longer term, try to lobby Microsoft to add tkinter in embedded Python.

add a 'turn off sentry I'm doing development right now' env var

It's tempting to turn off Sentry during development and then forget to turn it back on. Need a simple way of turning it off during development. Clearing the DSN is a pain, since you then have to set it back to the correct (somewhat long) value string. Probably do something like use an env var:

set BALSA_DEV=TRUE

and use

balsa_dev = bool(distutils.util.strtobool(os.getenv('BALSA_DEV', 'FALSE')))

then:

use_sentry=not balsa_dev

Make balsa tkinter threadsafe

In python 3 the tkinter module is technically threadsafe, but there are caveats.

So it is worthwhile to make Balsa account for this, by using the mttkinter library, which replaces tkinter in memory and modifies the Tk class to uses a Queue.Queue object for events.

From the mttkinter library issues page...

Tk is not thread-safe, unless it is built with the thread-safe flag. However, the Tcl-interpreter must also be built with the thread-safe flag to ensure thread-safety for Tkinter.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.