# Charles Strahan > Principal Software Developer Location: Dallas, Texas, United States Profile: https://flows.cv/charlesstrahan Hello, I'm a Principal Software Engineer with over 15 years of experience designing, developing, and implementing software solutions. Throughout my career, I have demonstrated a strong technical proficiency in full stack software development, as well as exceptional problem-solving and analytical skills. I have a passion for creating efficient and effective software solutions that meet the needs of users and businesses alike. My experience includes leading development teams, overseeing projects, and providing technical guidance to junior developers. In addition to my technical skills, I also possess strong communication and leadership abilities, which enable me to collaborate effectively with cross-functional teams and stakeholders. I am dedicated to continuous learning and keeping up with the latest technological trends to ensure that my skills remain relevant and up-to-date. Overall, I am committed to delivering high-quality software solutions that meet or exceed expectations, and I look forward to leveraging my expertise to help drive success in any project or organization. ## Work Experience ### Staff Software Engineer @ FullStory Jan 2023 – Jan 2024 Staff Software Engineer on Mobile Enablement Team. Worked across the full stack, from mobile data capture in Rust to server-side data pipelines in Go, in addition to UI work in TypeScript. Paid down long standing technical debt through my own initiatives across many languages (Go, Rust, TypeScript, Java, Objective C) and many build systems (Bazel, Groovy/Android, CMake). Gave demos of our team's work during our regular show-and-tells, and also presented on my own topics of interest at our monthly lunch-and-learn. ### Principal Software Engineer @ Blueshift Jan 2021 – Jan 2023 I am a member of the Data Science team and I report directly to Manyam Mallela, the Chief AI Officer & Co-Founder. As a Principal Software Engineer my insight and expertise are called upon to identify, communicate and execute new engineering initiatives. I take point on challenging engineering problems such as architectural design, feature implementation, and the scaling of our services (in terms of both throughput and stability) to meet our performance targets; whenever possible, I delegate and provide guidance to promote growth in the team. I also share my knowledge and architecture reviews/postmortems through internal talks and written documentation. When I joined, I took ownership of the core product recommendation service (written in Rust) that feeds our customers' marketing campaigns, responsible for each product of every marketing email/sms/etc that is ultimately sent out. Work primarily consists of optimization and feature enhancement of the interpreter (our customers' recommendation schemes are expressed as code written in Plasma, an interpreted language of our own design). By capturing new metrics and performing additional profiling, I made large reductions to memory use, significantly increasing concurrent throughput -- ultimately allowing us to use smaller EC2 instances, thus reducing our compute expense. I rewrote the parser (originally written in Ruby) and overhauled the interpreter so we could provide the precise line/column where errors occurred, allowing us to more quickly respond to any issues. I would be happy to expound on profiling, optimization, availability, caching and other topics relating to my work. I additionally contribute to other systems where my expertise in debugging, systems architecture and implementation could be best leveraged. A few of the technologies used: Rust, Ruby, Elixir, Kafka, Pulsar, AWS. ### Senior Software Developer @ Decipher Technology Studios Jan 2015 – Jan 2021 | Alexandria, Virginia Leading design and implementation of core security and HTTP/gRPC proxy components within our service mesh: Designed, documented and currently managing a team responsible for the roll-out of Zero Trust Networking infrastructure. We are implementing SPIFFE (Secure Production Identity Framework for Everyone), leveraging SPIRE within our Kubernetes/OpenShift clusters for X.509 key issuance/rotation. Lyft's Envoy L7 proxy is used for TLS termination in a sidecar configuration, using its SDS API to push certificates to each service's respective sidecar. All service-to-service communication is secured (in terms of both authentication and authorization) via mTLS. Intra-mesh communication is subject to RBAC policies based on the service's SPIFFE-ID. Designed and implemented an extended version of the Envoy proxy, empowering our developers to write Envoy extensions (e.g. filters) entirely in Go, whereas vanilla Envoy requires writing C++. Implemented with C++ and Go, using Google's Bazel as our build system. As a testament to our ingenuity, Google has never wielded this confluence of technologies, as evidenced by our need to work around showstopping bugs in their software, which, 5 years since reporting, have yet to be resolved: https://github.com/bazelbuild/rules_go/issues/1486 As a fully remote employee, I leverage teleconferencing, team chat and shared documents to communicate my designs/specifications and tasking. As employee #5, I've worn many hats, including mentoring of interns, profound performance improvements to our Continuous Integration infrastructure, government contract work, and much more. I'd be more than happy to go into details if asked. ### Software Developer, Email @ LivingSocial Jan 2012 – Jan 2014 Design and implementation of our email infrastructure, written in Clojure. The system consists of a REST web service (for enqueueing email jobs and providing reports) and a high performance, concurrent mail injector (which works the jobs: rendering email templates, personalization, submission to our Mail Transfer Agent, etc). Also providing support and guidance for our internal email tools, which are Ruby/Rails applications that are clients of the aforementioned infrastructure. ### Lead Developer @ Adventure Pilot Jan 2010 – Jan 2011 Design and development of the iFly 700 software - GPS moving map software for pilots (WinForms application on Compact Framework 3.5). I implemented real time weather rendering via ADSB signal, pilot/elevation obstruction alerts, METAR parsing, etc. Check out the product description for more feature info; if you happen to be a pilot, and don't one an iFly, buy one. Now. It's really that awesome. ### Developer @ Atlantic Aviation Jan 2010 – Jan 2010 Responsible for the implementation and design of our custom CRM software (written in C#, WPF for UI and WCF for SOAP web services). Full-stack development. I also lead brown bag lunch sessions where we discussed techniques to improve the quality of our code. A few of the topics I covered: * Improving testability through inversion of control, while moving away from global, mutable state. * Using aspect oriented programming techniques to abstract away vast swaths of manually copied, pasted and tweaked code (reduced the size of our code base by several 10 KLOC). * The benefits of expressing business logic in code, as opposed to stored procedures. * Using static analysis tools to track the quality of our code (NDepend, specifically). * Many miscellaneous patterns and practices, the core of which being the S.O.L.I.D. principles. ### Lead Software Developer @ BWC Photo Imaging Jan 2008 – Jan 2010 Designed and implemented a software suite for the administration and processing of photographic fulfillment services. Developed web services for order placement, graphical administrative utilities, and wrote the software that directed the entirety of the wholesale print output. I also supported the legacy system while developing it's replacement. Due to the instability of the existing system, I made several large improvements (mostly on weekends and week nights, to scratch my own itch): * The system had no support for multi-tenancy, so the existing solution was to run an instance per client, with a diverging forked repo per client. I abstracted the meaningful code differences and improved our configuration files to support the differences in settings, thus bringing us back to a single code base (but still single-tenant). * I removed the pervasive use of global, mutable state and implemented simple, functional parallelism; the result was a 20x increase in the order processing rate. Where an undetected fault over the weekend would, once recovered, require 10 hours to clear out the work queue, the improved system could process the entire queue in 30 minutes. As a bonus, the refactoring toward parallelism increased stability. I proposed (and implemented) many other projects that improved revenue, employee productivity and happiness. A particularly fond example is the accounting system I wrote; the existing Accounts Receivable workflow consisted of a shared excel spreadsheet of notes and contact info that was manually kept in sync with generated reports. I discovered this while chatting over lunch with my coworkers, and decided I could surely implement something better in just a couple weeks - so I did. The resulting accounting system provided up to date accounting info fresh from our POS system, with automated alerts on delinquent accounts. ### Service Bureau Specialist I @ GDSX, Ltd. Jan 2007 – Jan 2008 Travel industry software development for reservation QC, finishing, traveler correspondence, and CRM. Developed tools for internal use within GDSX for travel data parsing, retrieval and storage between third party mainframes and in-house SQL Server databases. ## Contact & Social - LinkedIn: https://linkedin.com/in/charlesstrahan - Website: http://cstrahan.com/ --- Source: https://flows.cv/charlesstrahan JSON Resume: https://flows.cv/charlesstrahan/resume.json Last updated: 2026-03-22