Database fiscal year in review: 2020/2021
19 Jul 2021
Table of Contents
Time for a performance check-in, and I realized I might as well brag publicly about some things I did in my database work this past year.
Public speaking
- Presented at work on the topic of APIs.
- Presented at Cactusforce, a Salesforce conference, on the topic of APIs.
- Featured guest in an episode on the Salesforce Developers podcast, on the topics of database integration and APIs.
Training & documentation
- Helped cross-train colleagues on Salesforce and Jitterbit.
- Interviewed the ERP team and massively documented its ecosystem’s components, for the benefit of colleagues with cloud, security, web, etc. expertise. My hope is that although I did not get as technically deep hands-on as I would have liked to in AWS (I’m no sysadmin yet), my documentation provided the context needed for non-ERP-experts to have productive system design & improvement dialogues with ERP experts that will lead to better security, reliability, and availability.
- Contributed articles to the internal knowledge base, as well as sending around some charts by e-mail, to help front-line support staff triage issues and get them to the right specialized team.
- Shepherded “runbooks” for major system upgrades, including following through on the little things like validating that the mailing list didn’t fail on someone covering a task for the first time who’d just been given mailing list permissions (but there was no way to confirm it except in prod).
Coding
- Refactored old Salesforce codebases for quality & peformance in anticipation of the migration from one org to another. Refactored for Table-Driven Trigger Management (TDTM), replacing nested
if
statements with short-circuitif-return
&if-continue
statements, and breaking business logic out into the kinds of “service class; could be called from any context” patterns found in Andy Fawcett’s book. A similar clean-up refactor from last year paid dividends this year when a “major change” in sales rep assignment only required changing a few lines of code this January. And oh my word, are the unit tests nicer now. - Matured my style around structuring Python and PL/SQL code to facilitate reuse and modifiability as the world demands more and more integrations between older databases and newer JSON-based REST APIs. Particularly useful was
json_object_t.parse()
, and its associatedget_Number()
,get_String()
, etc. - This bragbook isn’t about my web adventures, but darnit, I got a lot more comfortable in JavaScript & ES6 this year – particularly with the cramming I had to do on an awesome freelance consulting gig that involved a lot of medium-difficult (but best-practice) concepts in Gatsby. Sadly, I can’t show those off here – it’s a secret, per the contract – but I’ve gone from zero to intermediate with GraphQL fragments, I’m more comfortable with arrow functions every day, etc.
- (Need someone to break your tools, improve your docs, & make starters to illustrate concepts for newbies? Hit me up.)
Audio-visual
- Managed to show up & help wire some conference rooms w/ new A/V equipment without catching COVID-19
- Got pretty decent at livestream lighting.
Blogging
See the archives for everything, but particularly with respect to data manipulation (as opposed to my web hobby), here’s a quick tour of things I blogged about:
- Salesforce CCI & Salesforce ETL & Marketing Cloud crazy ideas
- Python: API off-by-one errors & API rate limiting
- Oracle: Anonymous PL/SQL subquery from a file; Anonymous PL/SQL to write a CSV from SQL, PL/SQL nested cursors, ORA-29283, Oracle dates
- Checking Have I Been Pwned for password breaches
- Git squashing
- Injecting passwords into code from AWS, played with Terraform (1, 2), SSH keys
- Renaming a plugin in Instructure Canvas with its API