# Craig Rodrigues > Software Engineer, Golang Location: Santa Clara, California, United States Profile: https://flows.cv/craigrodrigues ## Work Experience ### Software Engineer, Golang @ Brambles Jan 2025 – Present | Santa Clara, California, United States ### Senior Go Platform Engineer @ QuickNode (We’re Hiring!) Jan 2022 – Jan 2023 * Wrote Terraform and Ansible to automate deployment of NATS messaging service. Deployed 8 NATS nodes in High Availability configuration across 2 AWS Regions, and 4 Oracle Cloud regions to increase robustness of QuickNode blockchain nodes * Wrote Golang code to implement JWT authentication to improve security of QuickNode Blockchain service * Wrote Golang code to implement 20+ REST API endpoints for a microservice accessing Postgres, with swagger docs auto-generated with go-swagger * Wrote Terraform to automate deployment of Elasticsearch ECK operator in 20 node Oracle Cloud Kubernetes cluster. Replaced deployment of Elasticsearch in VM's to save ~ $15K/mo in cloud costs ### Backend Golang developer @ Walmart Global Tech Jan 2020 – Jan 2021 | San Bruno, California, United States • Wrote Golang to integrate Walmart Torbit DNS load-balancer with Walmart's enterprise Active Directory cluster, allowing resources to be controlled via 1000+ Active Directory groups and 7000+ users. • Implemented Docker container to run 100+ Golang tests against Torbit, in a Jenkins workflow. ### Software Developer @ Twisted Matrix Labs Jan 2016 – Jan 2021 Twisted is a Python library which provides asynchronous I/O, and implementations of multiple network protocols such as DNS, SMTP, HTTP. This library is used in many Python projects and in multiple companies. I worked on a voluntary basis to port this library to Python 3. I contributed over 800 patches to Twisted to port to Python 3. Due to the volume of my contributions, ( https://github.com/twisted/twisted/graphs/contributors ), I was granted commit access to the Twisted code repository on GitHub. My contributions included (but are not limited to): ● fixing the use of Unicode versus byte strings in hundreds of places ● eliminating use of functions and language constructs which were valid in Python 2, but invalid in Python 3 ● updated many unit tests ● on Windows, ported the IOCP reactor to work on Python 3. This required updating C code which accessed the Win32 API, and interfaced with Python code via Cython. I also worked on improving some of the Continuous Integration (CI) testing of Twisted by: ● updating the Travis configuration, so that commits to the Twisted repository on GitHub would trigger tests running on Linux ● updated the Appveyor configuration, so that commits to the Twisted repository on GitHub would trigger tests running on Windows ### Member Of Technical Staff @ Portworx Jan 2018 – Jan 2020 | Los Altos, California Kubernetes Administration =================== - Set up a 6-node Kubernetes cluster running in VMWare ESXi with the following services used by the Portworx development team: Jenkins, Traefik, Minio, Sonatype Nexus, AnchorE. Used Traefik with HTTPS certificates from Let’s Encrypt to secure these services. All containers stored data on Portworx Persistent Volume Claim (PVC) storage. Jenkins automation ================== - Deployed Kubernetes Statefulset running Jenkins, which was used by a team of 20 developers with over 200 Jenkins jobs to test Portworx software. - Integrated Slack notifications, and JIRA bug creation with Jenkins jobs. Root-caused and fixed Jenkins JIRA plugin (written in Java) (https://github.com/jenkinsci/jira-plugin/pull/213/files ) needed due to changes in Atlassian's API. - Wrote Jenkins Pipeline in Groovy to: (1) check out Portworx code from Git, (2) build a Docker container with Portworx software, (3) Deploy Docker Portworx container, (4) run automated tests against Portworx container. Used by developers to self-serve test their branches before merging code. Automation ========== - Wrote automation in shell script to install Portworx in the following environments: Pivotal PKS, Amazon EKS, Red Hat Openshift 3/4 - Migrated over 100 Jenkins jobs to use the gotestsum utility to integrate "go test" results in JUnit XML test reports parsed by Jenkins. - Wrote automation code in golang to SSH into a cluster of over 70 VMware ESXi servers, and invoke the VMware CLI to to spin up VM's for automation testing. - Root-caused Openshift 4 storage problem with Portworx on Azure and Google Cloud ( https://bugzilla.redhat.com/show_bug.cgi?id=1747575 ), due to missing udev rules for storage device creation. Worked with RedHat to fix the problem. - Developed golang script to SSH into test system, parse C++ core file, and use gdb to print out stacktraces. Reduced time to root-cause bugs in Portworx C++ code by 30 %. ### Software Developer / committer @ The FreeBSD Project Jan 2004 – Jan 2019 Can commit to FreeBSD source code repository. Committed XFS file system implementation (read-only support only). Miscellaneous bug fixes in various parts of the FreeBSD source tree. ### QA Automation Engineer @ EverString Jan 2017 – Jan 2018 | San Mateo, California - Used the Protractor / Selenium library to write front-end web tests in Javascript for an Angular and React-based front-end based tests for an analytics web application - Used Python and Pytest to write tests for the backend - Used JMeter to do web load testing - Wrote Jenkins pipeline scripts to automate tests - Wrote Dockerfile to create a container specifically for running QA tests. - Wrote automated script to start a Docker container with an empty database, and then run a database migration script to test schema creation and migration. ### Lead Automation and QA Engineer @ Pi-Coral, Inc. Jan 2014 – Jan 2015 | San Jose, CA Automation ========== • use Python Fabric library execute commands over SSH to test an appliance • Used Python pytest library to write many test programs. Generated JUnit test output using pytest, and viewed the test results in Jenkins • wrote many Jenkins jobs to test the product. Used the Jenkins Job DSL Plugin to use a write a Jenkins job in Groovy that triggered multiple Jenkins job that triggered automation and testing scripts FreeBSD ======= • used a cluster of 20 FreeBSD bhyve virtual machines to test a distributed system. The bootup and installation of the VM's was automated through Python scripts, using Python's expect interface (pexpect) • used PCI passthrough to pass actual hardware devices directly to certain VM's, to facilitate hardware testing in a virtualized environment • wrote some test programs in C that used the SCTP protocol to send reliable datagrams between nodes on the system ### Storage Engineer @ iXsystems Jan 2013 – Jan 2014 | San Jose, CA ■ worked on TrueNAS and FreeNAS storage products ( http://www.freenas.org ) ■ performed FreeBSD development in userland and kernel ■ measured storage perfomance of TrueNAS using SPEC sfs2008 benchmark ■ set up Redmine ( http://www.redmine.org ) bug tracking system to replace legacy Trac bug tracking system. Redmine is a Ruby on Rails application. Fixed Trac to Redmine converter script, which is a Ruby script. ■ started a QA team for TrueNAS. Put together a test plan, and trained QA staff to test TrueNAS. ■ Set up Jenkins continuous builder to do daily builds of TrueNAS. ■ performed DNS and DHCP administration in a small network of lab machines used to develop and test TrueNAS ■ ported FreeNAS from FreeBSD 9.2 to FreeBSD 10.0. Took care of toolchain differences (gcc 4.2 vs. clang 4.2 which prevented compilation), makefile issues (make vs. bmake). Improved build time efficiency of FreeNAS software build by parallelizing build by use of poudriere tool for building FreeBSD ports. Used the "git rebase" operation to quickly port FreeNAS patches from FreeBSD 9.2 to FreeBSD 10.0. ### Member of Technical Staff @ Juniper Networks Jan 2008 – Jan 2013 | Sunnyvale, CA - Software Engineer, EX Switch platform team - worked on the Juniper EX switch platform - helped integrate NAND Flash File System developed by Semihalf ( http://semihalf.com ) for FreeBSD, into JUNOS - worked spanned kernel, userland, startup scripts, and file system unit tests - Build engineer on for the JUNOS network operating system, derived from FreeBSD. - Worked with John Birrell to implement jbuild, a modified FreeBSD make utility with hooks into the FreeBSD kernel to optimize the software build of JUNOS. - Presented work at BSDCan conference, Ottawa, Canada, May 2010: http://www.bsdcan.org/2010/schedule/events/198.en.html ### Principal Software Engineer @ Avid Technology Jan 2004 – Jan 2007 | Tewksbury, Massachusetts ■ Assisted team in integrating Avid software on third party IPV SpectreView video server. The IPV SpectreView software records video in MPEG-2 format. I helped integrate software to encapsulate the MPEG-2 video data in MXF metadata files, using the AAF Toolkit. Development was done in Linux using C++. ■ Performed sustaining engineering and bugfixing tasks on the Avid Mediacomposer video editor product in Windows using Visual C++. Focus areas were in import/export of video data using the MXF metadata format and the AAF Toolkit. ■ Worked on the Avid AirSpeed video server product: ■ Developed an On-Screen Display for AirSpeed in FreeBSD and C++. Based on user input from a front-panel with play/stop/record buttons, the program would pop up an On-Screen Display on the AirSpeed LCD. Menu selections such as Brightness/Contrast, were processed using the "Command" Design Pattern in C++. ■ Input commands from the front-panel were read in user-space from an input serial port, and commands to display the OSD were sent via an output serial port to a Techwell 8800 OSD. ### Senior Member of Technical Staff @ BBN Technologies Jan 2000 – Jan 2004 | Cambridge, Massachussets ■ Worked on the Quality Objects (QuO) project, a government-funded R&D project to develop and integrate Quality of Service techniques into CORBA-based middleware at Verizon's BBN Technologies division. ■ Performed Linux and Windows NT C++ development using the TAO CORBA ORB, and the ACE networking library. ■ Led and coordinated experiment activities for BBN's Unmanned Airborne Vehicle (UAV) Open Experimental Platform (OEP) for the DARPA Program Composition for Embedded Systems (PCES) program. ■ Performed systems integration of multiple technologies from DARPA subcontractors in industry and academia. ■ Wrote test plans and schedules for subcontractors to deliver and integrate technologies. ■ granted core CVS committer privileges to ACE/TAO CVS repository and committed following fixes: ■ identified and fixed POSIX pthread priority problems in TAO's RT-CORBA on Linux ■ enhanced ACE QoS API (AQoSA) and TAO Audio/Video Streaming Service ■ Performed low-level protocol analysis and system troubleshooting of RSVP and Diffserv QoS network protocols in the ACE and TAO libraries using the Ethereal protocol analyzer. Submitted to the Ethereal source tree the the capability to decode Real-time CORBA priorities values in GIOP headers. ■ Performed C++ TAO/CORBA development for the Joint Tactical Radio System (JTRS) project. Performed team mentoring for development team ■ Performed standards work at the Object Management Group (OMG) by attending the Real-time and Embedded Systems Workshops (RTWS), and promoting QuO QoS/middleware technologies at these meetings. Program committee member for RTWS in 2003. ### Member of Technical Staff @ GTE Laboratories (now part of Verizon) Jan 1999 – Jan 2000 | Waltham, Massachusetts ■ Worked on the Network Monitoring on the Web (Nemow) project, a project to monitor GTE's Global Network Infrastructure (GNI) telecommunications network at Verizon's Verizon Laboratories division. ■ Performed AIX Unix administration to ensure correct levels of compilers and system libraries were installed ■ Wrote an Inprise Visibroker CORBA process in C++ and Java to interface with legacy telecommunications systems and deliver real-time network alarms to system. Real-time alarms were obtained from legacy system over Unix named pipes and sockets. Historical alarms were obtained from Informix database. ■ Wrote a C++ program using RogueWave libraries to interface with a trouble ticketing system ■ Fixed a freeware C++ program Ethereal (a network protocol analyzer) so that it would compile and run under AIX. Needed to become familiar with GTK graphics toolkit, and AIX's Data Link Provider Interface (DLPI) ■ Wrote server programs in C++ and Java to integrate network management systems (Nortel INM and Netcool) with Nemow ### Software Consultant @ Pencom Systems Jan 1998 – Jan 1999 | Boston, Massachussets Software consultant for Pencom Web Works ### Software Engineer @ Thomson & Thomson Jan 1996 – Jan 1998 | North Quincy, Massachusetts Performed C, Java, and Perl web development under Solaris for Thomson & Thomson's first Web e-commerce service, SAEGIS. ■ Developed web-based search interfaces for Thomson's trademark and copyright databases in C, Java, and Perl under Solaris. ■ Wrote Netscape API (NSAPI) code to do custom user authentication from the Netscape Enterprise server and the Netscape Publishing System. ### Software developer @ Cyberplex Jan 1996 – Jan 1996 | Toronto, Ontario, Canada Web developer ## Education ### Masters in Information Technology Harvard University ### Bachelor of Applied Science in Chemical Engineering University of Toronto ## Contact & Social - LinkedIn: https://linkedin.com/in/rodrigc - Portfolio: http://crodrigues.org --- Source: https://flows.cv/craigrodrigues JSON Resume: https://flows.cv/craigrodrigues/resume.json Last updated: 2026-04-11