1-on-1 Online Training with Live Instructor
Focus on the fundamentals, solve problems, and work on real projects.
Portfolio and skill oriented outcomes. No credentials granted.
Learn using Prospero for video chat, screen sharing, and coding.
Jr. Web Dev Track: $49 / week
Advanced Tracks: $99 / week
1-on-1 Online Courses with Live Instructor
- 24x 2-hour 1-on-1 classes with flexible scheduling
- 4 hours of class per week over 3 months
- In-depth on a particular subject; semi-custom content based on individual goals
1-on-1 Weekly Online Training with Live Instructor
- 2x 1 hour 1-on-1 classes per week with flexible scheduling
- No cohorts. Start immediately. No commitment. Weekly billing.
- Only pay for weeks you schedule class.
Junior Web Developer Track
Learn coding and web development with progressively biggers projects designed to prepare you for an entry level web developer job.
Senior Software Engineer Track
Focus on software architecture and practical modern, team-oriented skills and learning new skills like ML.
Chip Designer Track
Study digital design and verification at your own pace using open source tools. Focus on learning core domain knowledge and guiding develop of the next generation of web-based EDA tools. Now with FDSOI! (We are going to start working on FDSOI specific tools even before the PDK is ready.)
Future of Embedded Systems Track
Prepare for the future of embedded and operating system development by learning RISC-V and hardware-software co-design. Work on developing open source reference IoT software for silicon that doesn't even exist yet.
Register for Online Training
First Week Free: Try Weekly Training for a week free with no commitment.
Cancellation Policy: Cancel anytime and don't pay for additional classes.
Intro Software Engineering Courses
- Hello World / Fizz Buzz
- Conditionals / Logic / Booleans
- Game Project
Start with a quick, free online tutorial.
- HTML basics
- CSS basics
- Sending GET Requests
- Setting up domain, DNS, SSL, nginx, and node
- Handling GET Requests
- Sending POST Requests
- Handling POST Requests
- Database write
- Database read
- Website Project
Start with a quick, free online tutorial.
- Async Functions / Promises
- Event System
- Object Methods
- Array Methods
- String Methods
- Regular Expressions
- Web APIs
- Web App Frontend Project
Check out the course content and an example outline of the first few hours.
- CAP Theorem
- ACID vs BASE
- REST API Design
- Web App Backend Project
Advanced Software Engineering Courses
Software Architecture (multiple languages)
- Programming Paradigms
- Test Driven Development
- SOLID Principles
- 12 Factor App
- Continuous Integration / Agile
- Using Frameworks
- Evaluating Technologies
- Organizational Behavior
- Software System Design Project
Textbook: Clean Architecture: A Craftsman's Guide to Software Structure and Design, Martin, Robert
Practical Software Engineering Techniques (multiple languages)
- Style Guides
- Zen of Python
- Convention vs. Configuration
- Principle of Least Astonishment
- Open Source Contribution Project
Textbook: Code Complete: A Practical Handbook of Software Construction, McConnell, Steve
Textbook: The Pragmatic Programmer: Your Journey to Mastery, Thomas, David; Hunt, Andrew
Machine Learning (Python/TensorFlow)
- Python Refresher (optional)
- TensorFlow Basics
- Transfer Learning
- Machine Vision
- Natural Language Processing
- ML Hardware
- Image Classifier Project
- Hash Tables
- Big O Notation
- Computational Complexity Classes
- Intro to Set, Order, and Category Theory
- Chomsky Hierarchy
- Web Scale Project
Systems Programming (C)
- Hello World / Fizz Buzz
- Conditionals / Logic / Booleans
- Compiler Flags
- ELF / ABI / Calling Conventions
- Arduino Project
Semiconductor Design Courses
Digital Design (Verilog)
- Combinatorial Logic
- Intro to Verification
- Flip-Flops / Clock / Reset
- Gate Level Verilog
- Muxes / Buses
- Finite State Machines
- Calculator Project
Open Source VLSI (Verilog)
- Overview of Fabrication
- Overview of Design Process
- OSS Tools
- Writing Synthesizable Verilog
- Functional Verification
- Formal Verification
- Physical Domain Basics
- Power, Reset, and Clock
- Static Timing Analysis
- Timing Corners
- PPA Optimization
- SoC Module Project
Textbook: CMOS VLSI Design: A Circuits and Systems Perspective (4th Edition),
Weste, Neil; Harris, David
Formal Verification (System Verilog Assertions)
- Intro to Formal Property Verification (FPV)
- Assert, Cover, and Assume Statements
- Concurrent Assertions
- Properties and Sequences
- SMT Solvers
- Formal Equivalence Verification (FEV)
- Post-Silicon Debug
- Cache Project
Textbook: Formal Verification: An Essential Toolkit for Modern VLSI Design,
Erik Seligman, et al.
Computer Architecture (Verilog)
- Turing Machine / Von Neumann Architecture
- Accumulator Machines
- 6502 / 6800
- Classic RISC Pipeline
- DSP / VLIW
- Branch Prediction
- Low-Power 2/3 stage pipelines
- RISC-V Project
Textbook: Computer Architecture: A Quantitative Approach, Hennessy, John; Patterson, David
Textbook: The RISC-V Reader: An Open Architecture Atlas, Patterson, David; Waterman, Andrew
STEM Essentials for EE
- Solving linear equations
- Higher order functions
- Information Theory
- Scientific Method
- System Design Project
- Circuit Theory
- Semiconductor Devices
- Amplifier Project
Analog / Mixed-Signal Design (Magic/Tcl/PSPICE)
- Transistor Model
- Opamp Design
- Design Iteration
- Parasitic Extraction
- Mixed-Signal Design
- PLL Design
- ADC Project
RF Design (Magic/Tcl/PSPICE)
- Super Heterodyne Transceiver
- Power Amplifier Design
- Low Noise Amplifier Design
- RF Mixer
- Impedence Matching
- 915 Mhz Transceiver Project
Low Power Design (PSPICE/Verilog/Python)
- Clock Gating
- Clock Domain Crossings
- Async FIFOs
- Frequency Scaling
- Microarchitecture for Low Power
- System Architecture for Low Power
- Low Power ASIC Project
SoC Design (PSPICE/Verilog/Python)
- RISC-V System Model
- Memory Map Design
- Bus Design
- Cache Hierarchy Design
- I/O Design
- Clock Domain Design
- Multiprocessor Systems
- SoC Project
Semiconductor Tech Seminar: Overview of Post-Denard Scaling Era Technologies
- Advanced Packaging
- Wafer Processing
- Multiphysics Simulation
Primary Resource: semiengineering.com
Hardware / Software System Design Courses
PCB Design (KiCad)
- KiCad Basics
- BOM Costs
- Impedance Control
- Microstrip / Stripline
- Board Level Simulation
- Assembly and Testing
- Enclosures and Product Packaging
- Certification Process
- PCB Project
Firmware Development (C/Zig)
- Bare Metal Environment
- Super Loop
- Task-based RTOS
- Device Drivers
- Constrained Device Patterns
- Cross Compilation
- Firmware Project
RISC-V Assembly Programming (RISC-V Assembly)
- RISC-V ISA
- Memory Map
- WebAssembly Intro
- Platformer (Game) Project
Hardware Security (C/TLA+/SVA)
- Hardware CWEs
- Boot Vulnerablities
- Secure Update Patterns
- OTA Update Project
Textbook: Security Engineering: A Guide to Building Dependable Distributed Systems, Anderson, Ross
Compiler Design (Zig/Lox/C)
- Semantic Analysis
- Code Generation
- JIT Compilation
- Whole Program Analysis
- Compiler Project
Textbook: Crafting Interpreters, Nystrom, Robert
Operating System Design (Zig/Lox/C)
- Memory Management
- Process Management
- Operating System Project
- Simulation Environments
- Scope of Simulation
- Build Systems
- FPGA-based Development
- Triple Stack (App + System SW + HW)
- Hardware Generation
- Automated Verification
- Triple Stack Proofs
- Performance Envelopes
- Economics of Co-Design
- Scraping / ETL / API + PDK Wrangling
- ML for Datasheets
- IoT Project
Special Course: Verilog for Software Engineers
Learn the basics of chip design and verification using Verilog.
At the end of the course you'll have a tested design that is ready to tapeout on Skywater's 130nm process.
Project: Create a custom I/O module and integrate it into a RISC-V SoC design using open source ASIC design tools
About the Instructor
Steve Goldsmith is the founder and lead instructor of Aurifex Labs.
Steve worked for 6 years as a STEM tutor and Python coding teacher including co-founding Bay Area Summer Enrichment Camp where he taught Python to over 100 students.
Steve has developed games (Python/C++), audio software (C++), and web applications (JS/HTML/CSS).
For the past decade, he has been studying compilers, computer architecture, programming languages, and VLSI in pursuit of next generation general purpose computing.
Steve developed Prospero and is currently working on RISC-V cpu design and verification.
Steve is passionate about teaching coding and electrical engineering, has a BSEE from Wilkes University, and lives in Denver, Colorado, USA.
Pair programming web app. Video, screen sharing, code editor, whiteboard, and file system.
Open Source EDA tool; mostly a digital design place and route tool with a minimal set of standard gates, but you can draw all over it at various zoom levels. So it is really a high level design tool that can be used for floorplanning or bit-slice planning. The goal is to integrate with OpenLane, Skywater130 PDK, and other OSS EDA tools.
PSRAM and PRNG
Canonical Online Resources
Clean Architecture: A Craftsman's Guide to Software Structure and Design, Martin, Robert
Code Complete: A Practical Handbook of Software Construction, McConnell, Steve
The Pragmatic Programmer: Your Journey to Mastery, Thomas, David; Hunt, Andrew
CMOS VLSI Design: A Circuits and Systems Perspective (4th Edition), Weste, Neil; Harris, David
Formal Verification: An Essential Toolkit for Modern VLSI Design, Erik Seligman, et al.
Computer Architecture: A Quantitative Approach, Hennessy, John; Patterson, David
The RISC-V Reader: An Open Architecture Atlas, Patterson, David; Waterman, Andrew
Security Engineering: A Guide to Building Dependable Distributed Systems, Anderson, Ross
Crafting Interpreters, Nystrom, Robert
Matt Venn's Zero To Asic Course
Efabless Open MPW Shuttle Program
Skywater PDK - Open Source 130nm PDK
$375 / hr
VLSI / RISC-V Consulting
Services include: System Architecture, Microarchitecture, RTL Design,
Functional Verification, Timing Verification, Formal Verification, Physical Design, Board Design, and Hardware Security.
We are getting ready to tape out a 2-stage pipeline RISC-V design. We aim to be ready to provide comprehensive low-power SoC design and verification services by Q2 2023.
My ability to combine web development experience and VLSI domain knowledge to quickly develop web-based EDA tools is a unique value offering. We would love to engage with potential clients
as soon as possible to better understand the current needs of the rapidly changing semiconductor industry.
Embedded System / Linux Development (C/C++/Zig)
General Software Development (any language)
Full Stack Web Development (VanillaJS/NodeJS)
Debugging / Pairing (any language)
Need help debugging? We can help you get to the bottom of it; however deep the bottom is.
Quick Turnaround Web App Development
I will build a small web application (typically engineering oriented) designed for a single actual user (typically a technical SME).
See Chiptastic v0.1.
Delivery of a standalone web application of similar scope in 10 days.
It will be usable, i.e., not a prototype or proof-of-concept, but there will be bugs and workarounds. Data will most likely be stored as plain old JSON.
10 day deliverable: $25K
I can do a second iteration that fixes critical bugs and addresses workarounds that are in the user's path of flow. Delivered in 30 days.
Second iteration: $15K
These projects have been in development for years at this point and will be for years to come. Prices and business models are for design purposes; stong design, weakly held.
Aurifex Computer Family
The project that started and still drives Aurifex Labs. This has been in development for over a decade
and may well be in development another decade.
RISC-V deterministic, low-power cores for the cloud. 1U rack mount.
Can be custom built from standard log data on running production apps to
lower datacenter energy use or reduce latency.
Planned for the Aurifex Cloud.
A secure, collaborative desktop computer that let's you develop all the way down. Old school inspiration, but taking advantage of this new golden age of semiconductors.
Develop and debug datapaths like you would any other code without simulation and with real I/O.
A low cost browser-on-a-chip based laptop for education and everyday use. All roads lead here; the prize at the bottom of the cereal box.
No app store. Security and privacy oriented. Low cost 5G dumb phone with text, voice, maps, and email.
Security: FIDO2 MFA + peer video ID proofing
Networking: Low latency with video conferencing and collaboration in mind
Compute: uServer - 25 MIPS RISC-V, 16 MB ram
Storage: Deterministic latency, hardware based security
Aurifex IoT Studio
RISC-V Consumer/Industrial/AgTech IoT Platform
Matter+5G capable RISC-V IoT platform with secure lifecycle (development, test, provisioning, ota updates, and decomissioning)
Targeting 130nm, 90nm, 65nm, 45nm, 28nm, and 22nm processes.
Culinary schools teach knife skills, not how to use infomercial products. Learn the tech equivalent of knife skills from a live instructor.