I'm Jason, a passionate software engineer with over a decade of experience across a broad range of software development areas. I specialize in embedded software engineering using C/C++, embedded DevOps, and Agile methodologies, with a background in full-stack web development. As a voracious life-long learner, I have a demonstrated ability to innovate, drive continuous improvement, and ensure successful outcomes through systems thinking and creative problem-solving.
Currently, I'm seeking a new role to further my growth as an engineer and team member. For several years, I have collaborated with control systems experts to develop software for systems that control traction, propulsion, charging, and other safety-critical applications. I have also focused on continuously improving the processes used in these projects. I thrive on the challenges posed by such projects and enjoy collaborating with engineers from a wide range of disciplines.
Outside of my work as a software engineer, I'm passionate about jiu-jitsu. I have been practicing jiu-jitsu for as long as I have been working with software, finding it a perfect physically-active complement to my career. Jiu-jitsu requires similar elements like intellectual curiosity, teamwork, and humility, while also countering the unhealthy aspects of spending long hours in front of a computer. When Iβm not tinkering with software or embedded systems, I am likely engaged in my jiu-jitsu practice.
I also greatly enjoy learning and sharing my knowledge with others. I'm involved in sponsoring university students for their senior projects, mentoring interns, and participating in industry advisory board meetings at my local university.
- π Β I'm currently working on personal R & D project for crafting embedded software that better accomodates change and making open source contributions.
- π¬ Β Ask me anything related to embedded C/C++, Rust, or embedded DevOps.
- π± Β I'm currently learning embedded Rust, monorepo patterns, and Hardware in the Loop (HIL) testing methods.
- π Next, I want to improve with embedded Linux using Yocto.
π Β Connect with me
My recently published articles:
-
A few months ago, I stumbled onto an excellent post about learning in public that made me reconsider how I have been learning to keep up with my field and further myself as a software engineering professional.
It took a while to decide how to proceed but Iβm moving along now, so here we go π
π Do it ugly in public, 2024-08-27.
My recent public work:
- Published an initial v0.1.0 release of a Rust embedded-hal driver for the PCB Artists SPL module.
- Published a v2.0.0 version of a simple landing page driven by the need for landing page placeholders for a few web ventures I have going on at the moment.
- Recently resurrected my personal site located at jasonpscott.com.
- Embedded C/C++ and Rust.
- Python, especially in the context of embedded dev and DevOps.
- Reusable embedded software (read: loosely-coupled to vendor, hardware, etc.).
- Off-target testing of embedded software.
- Embedded DevOps (GitHub Actions, Jenkins, Docker).
Additional Languages
Backend
Cloud Services
Database
Embedded
Frameworks
Frontend
Tools
Platforms
- Released open source projects including a simple landing page and a Rust embedded-hal driver for a SPL sensor.
- Crafted embedded software for safety-critical applications like battery-charging, traction, and vehicle control.
- Patched production embedded software to fix devices in the field.
- Introduced containerization to the embedded software development processes at two organizations, which solved the "it works on my machine" problems.
- Pioneered off-target unit testing for embedded software projects in two organizations, which dramatically improved the safety, security, and quality, of the software while reducing patches in production.
- Led development and implementation of CI workflows for embedded DevOps in two organizations, which dramatically reduced the number of defects escaping detection, reduced the code complexity, and improved documentation, code coverage, and collaboration.
- Natively build embedded software on the build machine for simulation.
- Use Python to run simulations with embedded C/C++ modules.
- Test embedded software off-target.
- Build embeddded software in Docker containers.
- Build CI pipelines for embedded software.
- Support multiple microprocessors from different vendors with a single codebase without it being a nightmare.
-
Work-Through1: The Embedded Rust Book (repo).
- Since the release of the pricing for the functional safety-certified version of Rust, Ferrocene, I anticipate the adoption of Rust for embedded and safety-critical applictions will accelerate. It seems far less costly for licensing, tooling, and process development than for safe C/C++, especially for small to midsize organizations.
-
Embedded Software Examples (private repo - ask for more info):
- I've pioneered cross-platform embedded software development and off-target unit testing at two organizations but have been inspired by innovative engineers like Phillip Johnston of Embedded Artistry, Jacob Beningo, and John T. and Wayne T. Taylor of Patterns in the Machine to go much farther. This repo is an ongoing personal R & D project to develop and refine methods for cross-platform, -vendor, -compiler, -architecture, and even -language, development for crafting embedded software that better accomodates change than the current typical methods.
-
Dr. Anna Koufakou and Jason Scott. 2020. Lexicon-Enhancement of Embedding-based Approaches Towards the Detection of Abusive Language. In Proceedings of the Second Workshop on Trolling, Aggression and Cyberbullying, pages 150β157, Marseille, France. European Language Resources Association (ELRA). [repo]
- TensorFlow and Scikit-Learn-based experiments written in Python comparing the efficacy of several novel methods for improving natural language processing (NLP) with convolutional neural networks.
Anyone working with embedded software inevitably winds up with a collection of development boards. I thought it would be fun to share my collection.
- LoFive R1.1 (RISC-V)
- dsPIC33CH Curiosity
- XMEGA-A3BU XPLAINED (worked with assembly for the first time ever many years ago on this)
- Raspberry Pi Zero W
- Raspberry Pi 1 (an original with only 26 pins manufactured in 2011, not even listed on the website)
- Raspberry Pi 3 Model B
- Raspberry Pi 4 Model B
- LaunchPad C2000 F28069M
- LaunchPad C2000 F28379D
- LaunchPad Sitara AM243x (very cool - and fast!)
π± My GitHub Data
π¦ 275.5 kB Used in GitHub's Storage
π 1,509 Contributions in the Year 2024
πΌ Opted to Hire
π 33 Public Repositories
π 46 Private Repositories
I'm an Early π€
π Morning 663 commits βββββββββββββββββββββββββ 27.17 %
π Daytime 1035 commits βββββββββββββββββββββββββ 42.42 %
π Evening 738 commits βββββββββββββββββββββββββ 30.25 %
π Night 4 commits βββββββββββββββββββββββββ 00.16 %
π I'm Most Productive on Monday
Monday 452 commits βββββββββββββββββββββββββ 18.52 %
Tuesday 341 commits βββββββββββββββββββββββββ 13.98 %
Wednesday 333 commits βββββββββββββββββββββββββ 13.65 %
Thursday 408 commits βββββββββββββββββββββββββ 16.72 %
Friday 200 commits βββββββββββββββββββββββββ 08.20 %
Saturday 403 commits βββββββββββββββββββββββββ 16.52 %
Sunday 303 commits βββββββββββββββββββββββββ 12.42 %
π This Week I Spent My Time On
ποΈ Time Zone: America/New_York
π¬ Programming Languages:
Rust 4 hrs 56 mins βββββββββββββββββββββββββ 86.25 %
Markdown 47 mins βββββββββββββββββββββββββ 13.73 %
TOML 0 secs βββββββββββββββββββββββββ 00.02 %
I Mostly Code in C
C 7 repos βββββββββββββββββββββββββ 17.50 %
JavaScript 6 repos βββββββββββββββββββββββββ 15.00 %
Python 6 repos βββββββββββββββββββββββββ 15.00 %
Batchfile 1 repo βββββββββββββββββββββββββ 02.50 %
Shell 1 repo βββββββββββββββββββββββββ 02.50 %
Last Updated on 10/11/2024 04:07:16 UTC
Footnotes
-
The term "work-through" is what I've come up with for instances of my practice of working through examples, books, tutorials, etc., to keep up with the software industry and continuously improve my skills and knowledge. β©