Jacob Beningo is a thought provoking writer on embedded software and product development.

He has professionally published over 100 articles, sharing his experience and insights into developing robust software, decreasing costs, time-to-market and successfully launching products. Below is a list of Jacob’s articles that have been published by third parties. Don’t forget to check-out his blog too!

EDN.com Published Articles

Prototype to production – A hands-on series
Debugging the Cortex-M MCU
Speed development of IoT devices
Getting Started with Micro Python
The hidden world of MCU start-up code
Beautify firmware to ease development
5 simple steps to create an abstract data type in C
Software startup checklist gives quality a head start
How well do you know your debugger?
7 uses for a static code analyzer
Hands-on review Synergy S7 starter kit – First look
Don’t ship merely functional systems
10 Tips On Engineering Notebooks
Clean up reusable software’s API
To do your best, know your tools
Beware this integration nightmare
Modernize your engineer’s notebook
5 reasons to use component based firmware
RTOS or bare metal – five decisive factors
5 Tips for speeding firmware development
5 Tips for using callbacks with interrupts
5 tips for building connected devices
5 tips to make sensors simpler
Defensive programming mitigates unforeseen problems
5 Tips for driver design
5 Tips for designing interfaces to reusable software modules
Using Micro Python for real-time software development
7 Tips for documenting embedded code with Doxygen
USART vs UART: Know the difference
Use virtual machines to ease firmware development
Create a stack monitor in 7 easy steps
Isolated USB-to-UART converter builds in 20 minutes for $20
5 Engineering Lessons from Pluto
8 tips for squashing bugs using ASSERT in C
7 Tips for debugging embedded software
Include a remote update boot loader: 5 reasons why
7 tips for writing portable C code
5 lessons on embedded software modeling
5 tools that help make Python talk to USB
5 tips for designing a smart watchdog
7 cardinal sins of embedded software development
Summer reading list for embedded developers – 2015
Tune up your embedded software design processs
5 forbidden C features that aren’t (necessarily)
Weighing the costs: BOM versus NRE
10 Tips for designing a HAL
10 must-have development tools that (mostly) won’t strain the budget
7 lessons for embedded developers from ESC Boston 2015
7 takeaways on embedded security
7 steps to reusable debounce (and other) code
7 tips for designing a robust Bootloader
Confessions of a low power addict
10 Questions to ask during code reviews
Don’t give in to the quality, speed, cost tradeoff
7 Silent Project Killers
10 tips for commenting C code
7 tips for creating a reliable embedded system
Creating effective embedded software resolutions for 2015
10 tips to accelerate your engineering career
7 Steps to Writing a Simple Cooperative Scheduler
Using conditional complexity to test embedded software
Mastering the embedded software design cycle
7 Tips for Using Interrupts
Low-cost development, Part 1 – The Freescale Kinetis-L
Survival tech – Weathering the winter storm
Fundamentals of MCUs – A free online workshop
The ARM Connected Community – Connecting engineers with solutions
10 Tricks for Documenting Embedded Software
Bootloader design for microcontrollers in embedded systems
A review of “Making Embedded System”
10 tips for mastering version control systems
A hardware engineer’s guide to becoming a software expert
Turn a smart phone into a signal generator
10 tips for a successful engineering resume
10 tips for a successful engineering resume
10 tips for maximizing battery life
10 steps to selecting a microcontroller
The Secrets to Becoming a Great Programmer
10 C Language Tips for Hardware Engineers
Function pointers – Part 3, State machines
10 software tips for hardware engineers
Function pointers – Part 2, Task Scheduling
Function pointers – Part 1, An introduction
Differentiating yourself as an engineer
Pointer arrays – Part 2, Timer driver configuration tables
Developing reusable device drivers for MCUs
Pointer arrays – Part 1, A timer driver
Using the static keyword in C
ESC 2012 Boston Part 3 – Behind the Scenes
ESC 2012 Boston Part 2 – test-driven development
ESC 2012 – Boston Part 1
Time is of the Essence
Creating Configuration Tables to Initialize Peripherals
Using pointer arrays to map peripherals
A few pointers part 3
A few pointers part 2
A few pointers part 1
Intro to Embedded Basics
Embedded Basics

DesignNews.com Published Articles

Developing a Scalable Firmware Development Environment
The World’s Most Dangerous Device Is …
7 Skills Every Engineering Grad Needs to be Successful
Chaos Reigns Firmware Development. Why Does It Have to Be That Way?
Renesas Synergy: A Peek Under the Hood
Born an Engineer, Always an Engineer
Do You Need an RTOS? Yes, and Here Are 7 Reasons Why
Overcoming 5 Challenges with Over-the-Air Updates Using MCUs
Tricks of the Trade: Writing Portable Optimizations in C
Can MCU Suppliers Get Embedded Developers Off the Ground Floor?
What Is the Electric Imp, and Why Embedded Developers Need to Know
5 Advantages of Using Micro Python for Embedded Software Programming
Qualified HALs Are Opening Up Faster Firmware
Build a Working Embedded Design Workbench for Less Than a Grand
DN Webcast Preview: Writing Portable and Robust Firmware in C
Hardware, Sadly, May Be Easier than Software
Why Hardware Is, Indeed, Easier Than Software
Counterpoint: Why Is Hardware So Easy and Software So Hard?
5 Tips for Remotely Updating an Embedded System
A History of Firmware and Its Silent Revolution Today
10 Pain-Free Steps to Configuring an Interrupt Controller
7 Takeaways Surrounding Embedded Security
Mastering Embedded Software Development through the Processor