👋 About Me
🎯 Position: Embedded Software Engineer
📍 Location: Shenzhen/Guangzhou/Foshan (Negotiable)
🌸 Status: Available for Opportunities
✨ Core Strengths
Why Choose Me?| Strength | Highlights |
|---|---|
| 🔧 Engineering Practice | 2 complete embedded projects (Environmental Monitor + Self-Balancing Robot), independently responsible from hardware selection to software architecture |
| 📚 Technical Documentation | 90+ technical blog posts, each originating from real-world problems, consistently delivering high-quality original content |
| 💻 Code Quality Awareness | Pursuing code standards in blog solutions and projects, emphasizing readability and maintainability |
| 🎯 Rapid Learning Ability | Self-taught STM32, MQTT, PID control and successfully delivered projects; currently learning FreeRTOS/ESP32 |
| 📖 Documentation Skills | Structured design documents + API specifications + test reports, reducing team collaboration costs |
🎓 Education
University of South China | Electrical Engineering | Bachelor's Degree | 2021.09–2025.06
Relevant Coursework: Microcontroller Principles & Applications, Microcomputer Principles & Interface Technology, Automatic Control Principles, Analog/Digital Electronic Technology
Language Skills: English CET-6 (Proficient in spoken English)
🛠️ Technical Skills
Programming Languages
C- Proficient in struct encapsulation, pointer operations, state machine programming
- Understanding of memory management and data structure design
- 60+ LeetCode Algorithm Solutions covering linked lists, two pointers, dynamic programming, and other core algorithms
MCU Development Platforms
STM32 Series- Proficient in SPL/HAL development
- Familiar with timer interrupts, DMA, watchdog, and other peripheral drivers
- Understanding of register configuration and interrupt systems
- Capable of low-level driver development
Communication Protocol Stack
Basic Protocols- UART (Modbus RTU), I2C (Software/Hardware), SPI
- Understanding of circular buffer and state machine parser design
- MQTT Protocol (QoS0/Topic Subscription/Asynchronous Processing)
- OneNET Cloud Platform Integration (Object Model Data Reporting/Command Delivery)
- ESP8266 AT Command Set (Non-blocking Communication Architecture)
Hardware Skills
PCB Design- JLC EDA, independently completed double-layer board design and soldering debugging
- Capable of schematic design and component selection
Development Toolchain
IDE & Debugging- Keil MDK, STM32CubeMX, PlatformIO
- Git Version Control, VOFA+ Serial Oscilloscope
- Structured Design Documents (System Architecture/API Specifications/Test Verification)
- Docusaurus Static Website Development and Technical Blog Operation
💼 Project Experience
1. 🏗️ Real-Time Environmental Monitoring Terminal | Independent Development | 2025.02–2025.05
Technical ArchitectureMulti-sensor data acquisition system based on STM32+ESP8266, enabling real-time monitoring of environmental parameters such as PM2.5, noise, temperature and humidity, with stable cloud upload to OneNET platform
- MCU: STM32F103C8T6 (72MHz, 20KB RAM, 64KB Flash)
- Sensors: PMS7003 (UART+DMA), XM7903 (Modbus RTU), DHT11
- Communication: ESP8266 WiFi Module (AT Commands + State Machine Parser)
- Cloud Platform: OneNET (MQTT Protocol)
Hardware Design & Stability Assurance
- Independently selected and integrated multiple sensor types, designed watchdog + Flash log abnormal recovery mechanism
- > 99% success rate for 24-hour continuous operation
- Analysis of Sensor Data Acquisition Interrupt Deadlock
Task Manager
- Non-blocking task manager based on time-slice round-robin scheduling (data acquisition/upload/alarm)
- Over-limit audible/visual alarm, remote threshold configuration via mobile APP
Resource Optimization & Performance Improvement
- Optimized code to fit firmware within 64KB, resolving startup anomalies
- PM2.5 response time ≤ 2s, noise measurement error < 1dB
Non-blocking Communication Architecture
- Designed circular buffer + state machine parser for ESP8266 asynchronous communication
- Asynchronous UUR frame processing ensures data integrity and UI fluency at 115200bps high speed
- Complete Circular Buffer Implementation
- AT Command Communication Response Strategy
- ✅ Scheduled data upload success rate > 99%
- ✅ Supports remote configuration and real-time alarms
🔗 Repository: https://github.com/Eureka12138github/My_UGP
2. ⚖️ Self-Balancing Robot Control System | Independent Development | 2025.12–2026.01
Technical ArchitectureTwo-wheel self-balancing robot based on STM32, achieving 200Hz real-time attitude estimation and three-loop cascaded PID control, validating control theory and engineering practice capabilities
- MCU: STM32F103C8T6 (72MHz)
- Sensor: MPU6050 (6-axis IMU, software I2C driver)
- Motor Driver: TB6612FNG (PWM speed control + encoder feedback)
- Control Algorithm: Positional PID, Cascaded PID, Incomplete Derivative + Variable Speed Integral + Friction Compensation
Attitude Estimation Algorithm
- Complementary filter fusion of accelerometer and gyroscope data
- 200Hz timer interrupt real-time calculation, static angle error ±2°
Three-Loop Cascaded Control
- Upright loop (PD) + Speed loop (PI) + Steering loop (PI) cascaded control
- Introduced incomplete derivative + variable speed integral + friction compensation algorithms
- Resolved high-frequency oscillation and startup jitter issues
Modular Architecture Design
Configuration Layer (Macro Definitions/Pin Management)
↓
Driver Layer (Peripheral Drivers, Portable Across Projects)
↓
Application Layer (Business Logic & Algorithms)
Clear three-layer core dependencies, supporting cross-project driver reuse
- System Layer: delay, timer, iwdg, and other basic functions, relatively independent
- Tool Layer: PID algorithms, circular buffers, and other universal components, used across layers
Third-Party-Free OLED Menu Framework
- State machine manages multi-level pages, Flash usage only 2.3KB
- Supports online tuning of 9 sets of PID parameters with Flash persistent storage
Debugging & Optimization
- VOFA+ serial oscilloscope for real-time waveform analysis
- Optimized filter cutoff frequency and sampling period ratio to improve system robustness
- ✅ Achieved stable standing for 30+ seconds
- ✅ Anti-interference capability: quickly recovers balance after light push
🔗 Repository: https://github.com/Eureka12138github/Self-Balancing-Robot
3. 📝 Technical Blog System | Independent Operation | 2025.05–Present
Tech StackStatic technical blog based on Docusaurus v3, recording learning trajectory and technical accumulation, published 90+ articles
- Framework: Docusaurus v3 (React/MDX)
- Deployment: Vercel + GitHub Pages dual environment
- Features: Algolia Search, Giscus Comments, Chinese-English bilingual i18n
Performance Optimization Practices
- Developed batch image compression script to improve loading speed
- Multi-environment deployment script (Vercel/GitHub Pages one-click switch) with SSH auto-configuration support
- CSS animation GPU acceleration optimization to improve starfield rendering performance
🌟 Technical Insights
Circular Buffer Design & Implementation
In embedded development, circular buffers are core components for serial communication and sensor data acquisition. I deeply analyzed two classic implementation approaches:
| Approach | Principle | Use Case |
|---|---|---|
| Flag Version | Uses full flag to distinguish empty/full | Priority on 100% capacity utilization |
| Slot Version | Sacrifices one slot to distinguish empty/full | Saves metadata storage |
- Opaque Pointer structure hiding improves encapsulation
- Static instance pool management completely avoids dynamic memory allocation
- Dual-write mode support (non-overwrite/overwrite modes)
📖 Read Full Article: Circular Buffer Implementation
Embedded Debug Log System Design
For embedded system debugging, designed a modular log system based on conditional compilation:
#ifdef ONENET_DEBUG
#define ONENET_LOG(fmt, ...) \
UsartPrintf(USART_DEBUG, "[ONENET] " fmt "\r\n", ##__VA_ARGS__)
#else
#define ONENET_LOG(fmt, ...)
#endif
- ✅ Zero runtime overhead (preprocessor directly removes code)
- ✅ Modular switches for flexible control
- ✅ Retains diagnostic capabilities for issue reproduction
📖 Read Full Article: Embedded Debugging Techniques
Serial Communication Architecture Philosophy
Deep understanding of engineering trade-offs in serial port transmission methods:
| Application Scenario | Recommended Approach | Reason |
|---|---|---|
| Debug Printing | Blocking Polling | Simple and direct, deadlock indicates problem location |
| Protocol Communication | Interrupt + Circular Buffer | Avoids UI freezing, timely response |
| High-Speed Data Stream | DMA | Zero CPU load, high throughput |
Core Principle: Control flow should be synchronous, data flow should be asynchronous
📖 Read Full Article: Serial Communication Details
AT Command Communication Response Strategy
When using ESP8266 for AT command communication, clearly distinguish between two types of behaviors:
- 🔧 Command Channel (e.g., WiFi connection, TCP establishment): Must wait for explicit response (OK/ERROR)
- 📡 Data Channel (e.g., sending sensor data): Return immediately without waiting for "SEND OK"
Unified handling of asynchronous responses through main thread synchronous blocking (with timeout) + main loop non-blocking state machine, achieving a robust and fluent communication architecture.
📖 Read Full Article: AT Command Communication Insights
📚 Continuous Learning & Growth
Current Focus
- 🔥 FreeRTOS: Task scheduling, message queues, semaphore mechanism source code analysis
- 🔥 ESP32-S3: IoT application development (WiFi+BLE dual mode)
Next Steps
- 📖 Embedded Linux Driver Development (Character Devices/Device Tree)
- 📖 RT-Thread RTOS Source Code Analysis & Porting
- 📖 Deep Understanding of Operating System Principles (Process/Thread/Memory Management)
Learning Methodology
Encounter problems in practice → Deeply analyze principles → Output technical articles → Internalize into knowledge system
Every blog post originates from challenges encountered in real projects, and every summary represents a reconstruction and sublimation of knowledge.
💬 Contact Me
If you're interested in my resume or would like to discuss technical issues further, feel free to contact me through the following channels:
- 📧 Email: yeyuyong.job@qq.com
- 🐙 GitHub: Eureka12138github
💡 About This Website:
This is not just my technical blog, but a true record of my learning journey. Every article originates from problems encountered in practice, and every summary represents deep internalization of knowledge.
To Hiring Managers: If you've read this far, thank you for your patience. I fully understand that I don't come from a top-tier university, but I believe: continuous learning enthusiasm + solid engineering practice + systematic summarization ability = a reliable team member. I look forward to the opportunity to meet with you!