(804)-467-9906 swiley@swiley.net
Stephen Wiley
My objective is to secure a position in which I can contribute as part of a team of Disciplined Software Engineers working on challenging projects.
Technical Skills
Software Development
- C (GCC/clang, Ken/8c on plan9, avr-GCC, MPLab)
- C++ on Linux and Windows
- Golang and SQLite3
- Concurrent programming with goroutines, pthreads, win32
- Assembly (pic18, avr, 6507, Z80)
- Scripting languages (bash,awk,JavaScript,FORTH)
- Micro controllers (pic, at-mega, atxmega, some arm)
- python,tkinter,numpy,unittest,pyserial
- Instrumentation (valgrind) and GDB (with/without RSP)
- Always writes unite tests (jasmine, harnesses for embedded code)
- Parsers and Lexers from scratch and with parser generators (YACC) in multiple languages
Unix-like Environments
- Linux, Mac OS, OpenBSD, Plan9, and QNX
- Common Unix shell tools (busybox and GNU)
- OpenSSH, THTTPD, OpenSMTPD, dovecot
- Unix networking debugging and filtering tools (pf, tcpdump, inetd, nc)
- Buildroot and custom Linux based OSes with busybox
- Makefiles
- Both Git and Mercurial (RCS ci/co long ago)
- Asciidoc, Pandoc, LaTeX, GRoff, WikiML, LibreOffice
- XML starlet
- Docker and LBU (for personal computers)
- Bizarre configuration languages: GNU LD scripts, guile, XML/XSLT, uboot, device tree script
General Science/Engineering
- Lab Experience professionally and as a student
- LaTeX and LibreOffice Math Typesetting
- Molecular Dynamics with ASE and LAAMPS
- R and Matlab (octave) for University
- Decent understanding of DSP and schoastics
- Experienced with Xcircuit and Spice
- Some 3d CAD with OpenSCAD (for 3d printing)
- Verilog (ICEStorm)
Education
- Liberty University with BSCS and math minor 2015-2019
- Graduated high school in 2011
Work Experience
Consulting (February 2014- Present)
Consulting (February 2014- 2019)
Integrated Global Systems
- Developed control systems for materials lab
- Signal Processing (FIR filters)
- Developed dynamically auto configuring field bus for interacting with experiments
- Custom win32 and python apps for specialized hardware
- All calculations include documented mathematical analysis and arguments for correctness.
- Documentation and Schematic capture of existing equipment
Pseudo Anonymous Freelancer/Fiverr
- win32 C and Openssl Home directory cryptography tools
- Windows User space distributed delay tolerant file system written in C# with dokan
- OpenCV Gesture Recognizer
- Various simple Linux based firmware images
- atXmega USB-CDC Boot loader modification
Software Engineering Intern for Tridium/Honeywell (summers 2016,2017,2018)
- Rewriting Java GUIs in HTML5
- Worked on very disciplined agile team
- unit tests in jasmine
- WiFi regulatory compliance test firmware
(personally handed off to Underwriter's Laboratories)
- Examination of plastic deformation with finite element analysis software
- QNX and Linux Firmware image generation
- Porting software between (both ways) QNX and GNU/Linux
- Evaluation of QNX VPN software
- Evaluation of extremely small JVMs on arm micro controllers
Undergraduate technical intern for Phaethon Process Studios(July 2013 - November 2013)
- C# .net Symantec Workflow AWS API integration and UI design
- Development of DataFlow language
- Virtualizing Windows servers and remote Windows administration
Undergraduate technical intern for Verisign( June 2012 - December 2012)
- Debugged and fixed build system and features for C++ graphical remote desktop software.
- shell scripts to help coordinate VM management
- Modified Free-BSD FORTH boot loader scripts to allow booting an alternate kernel.
Embedded systems developer for G5/AKA laser-tag (August 2011 - March 2012)
- Pic18f based embedded systems (some in Assembly and some in C)
- Building area 900MHz radio network
- Automatic score typesetting on Linux with groff
- Co-Administrated and debugged MySQL database instance
- Supported and maintained customer facing systems
My favorite personal programming projects
- Sandbox game for Nintendo Wii, simulates a small 2d world using a large array of finite state automata.
- Scratch built ARM executive/monitor for cleaning robot (allows dynamically uploading application over Bluetooth without restarting.)
- Signal processing tools Written from scratch (not fast but fun)
- Simulation and testing harness (to support TDD) for LU VEX robot
- DNS client, LMTP server written in C.
- Self decrypting message generator in JavaScript
- Recursive Ascent (shift reduce using call stack) HTML parser/DOM in C
- Small browser written in C while waiting for Firefox to compile