Sheldon Hull // Developer

Why a brag page?

It’s a way to show keep track of some key accomplishments I’ve achieved, almost like “levels-ups”.

While I’m starting this as more like a resume style format, I plan on keeping this updated as I go.

Thanks for stopping by and letting me brag a little!

If you are recruiter, then this might be useful: Recruiters

Check out these google analytic metrics if you want to see a pretty chart. Who doesn’t love pretty graphs.

 Metrics

  • 💯 Emotional Intelligence & Soft Skills
  • A sense of ownership and drive to deliver, from “cradle to grave” mentality.
  • Adaptability, willingness to learn and change.
    • I’m a big advocate on continual learning, which hopefully my blog shows!
    • Repeating the same n years of experience over and over is something to be avoided.
    • I tend to embrace change and want to continue to improve.
  • Pairing up with strong engineers. I’m not a fan of lone wolf. A strong engineering team of “good developers” will out perform the so called “10x” developer and be better for the company both logistically and culturally.
  • Generalist experience valued, while allowing for expertise and deeper knowledge.
  • Remote-First environments that value asynchronous communication and strong writing abilities.
    • I’m a big fan of Gitlabs Handbook First approach, and have advocated for and done documentation as code, architectural decision records, and other written forms of decision making in most of my career.
  • Go! I’m a Gopher, and have been investing in excellence and quality in Go for the last season in my career. I care about delivery value quickly, while I also care about the “craft” of well-designed and maintainable code.
How I Tend To Think Through Systems

Someone might look at deploying a webservice and spin up an EC2 linux webserver and call it done.

What would go through my head:

  • Can I host this using a managed service such as ECS Fargate to avoid the operational toil of managing my own instance?
  • Can I benefit from a service like this with autoscaling to ensure a failed task can automatically recover or allocate work to a new node?
  • Did the web service add the instrumentation libraries for opentracing or the appropriate library?
  • Are structured logs being used to ensure automatic parsing by the logging provider?
  • Is the service being deployed via a CICD provider instead of manually?
  • Are unit tests being run on developer machines with hooks and also by CI system?
  • Are integration tests being run prior to deployment?
  • Are service level objectives defined and tracked if required to ensure service isn’t over-engineered, but also allocated appropriate time for new work if problems occur that would impact customer satisfaction?
  • Is the core infrastructure defined via code?
  • Is the application configured to pull its configuration from environment variables or cloud configuration provider rather than requiring manual changes?

Primary Technologies

Exposure/Have Used

Things I'd Love to Work More On

 Go
 Containerization/Docker/Kubernetes
 AWS
 PowerShell (CrossPlatform), .NET Framework
 Infrastructure As Code
 GitHub/Actions/CI/Azure Pipelines
 Technical Docs
 CI/CD/Automation
 Observability
 SQL (Dev, Design & Operations)
 Windows
 Azure
 C#/.NET
 Serverless
 Python
 Go
 Linux
 Serverless
 Microservices
 Distributed Systems & Data
 Developer Tooling
 Containerization
Current // Senior Developer

 March 2021 - Current   Thycotic   Senior Software Engineer (AWS/Go)

⚡ Built Helm and Pulumi stack for Kubernetes to provide continuous deployment, resulting in < 15 mins from PR merge to app live in Kubernetes.
⚡ Wrote Go task automation for team automating developer tooling setup (1 command to bootstrap), automatic updates of dependencies, security checks, configuration, go builds, container publishing and more.
⚡ Improved SLDC applying DevOps practices towards trunk based development and infra-as-code.
⚡ Did the majority of monorepo migration work and tooling to support single repository workflow for Angular & Go developers to simplify collaboration and development work.
⚡ Supported PR Reviews and oversight of code from offshore team programming primarily in Go.
⚡ Go: added structured logging, APM integration to support observability, and codified health monitors and synthethic checks with Pulumi Datadog SDK
⚡ AWS Architecture redesign for ECS Fargate container driven support of Go services, as well as supporting Docker configuration.
⚡ Go & Task tooling to support developer workflow improvements for pre-commit, building, and other tooling.
⚡ Investigative work for Kubernetes and usage of microservices using Dapr.

Things I Used

Go, AWS/Azure, Pulumi, Kubernetes, Terraform, Terragrunt, Bash, Kubernetes, Dapr (Distributed Application Runtime) for Microservices. Datadog

Public Artifacts

Work under NDA. Public related blog posts on general technology topics where posted on blog as well as some general studies on applying Go with TDD and algorithm studies are listed here.

 Magetools
 100DaysOfCode for Go
 Learn Go With Tests - Applied

2014 - 2021 Senior Developer

 2014 - 2021   Altus Group   Senior Developer (Database & Dev Operations)

 Senior Individual Contributor with cross-team impact functioning as Database/Site Reliability Engineer

 Started with focus on SQL Server development, architecture, and performance tuning. Migrated to Development operations team during tenure and operated on development through operations. Heavy focus on production reliability for data tier. Additional focus on automation for non-release tasks, such as Terraform deployments, AWS SSM management, automated runbook creation and more. Functioned in part as Site Reliability Engineer with mixed cross-functional impact.

⚡ Part of transformation of on-premise to Cloud based product
⚡ Designed AWS Lambda serverless solution for providing KPI insight
⚡ Improved velocity of infrastructure deployments by using Terraform Cloud, deployed a PaaS based AWS RDS product.
⚡ Built very detailed runbook and documentation library supporting detailed insight on databases, team processes, incident response, and more. Inspired by GitLab’s concept of “handbook first”, I promoted collaborative codification of knowledge among my team
⚡ Designed and built the primary systems management and configuration used to rapidly bootstrap hundreds of instances and allow quickly pushing updates out. solutions.
⚡ Built robust AMI pipelines combining Azure Pipelines & Packer, including automated tests, matrix builds, and detailed documentation.
⚡ Promoted stronger code based pull request driven workflows with “Gitops” focus, code reviews, and mentoring of other junior team members.
⚡ Database Performance tuning, architectural design, and development. ⚡ Initial observability tooling advocate.

Things I Used

MSSQL Server, PowerShell, AWS, AWS SDK, Terraform, Lambda, S3, Athena, Chatops w/Slack, ECS, Docker, Datadog, Grafana, InfluxDB, Telegraf. Python, C#, Excel when I absolutely no other choice, …and a lot more.

Public Artifacts

 Product related work under NDA

 Blog posts on various general concepts related to Databases, DevOps, PowerShell, AWS, and technology

 Implementation Guide This was a major effort in migrating content from an outdated large word doc to static generated website with analytics. Load testing, sizing guides, and more were improved. All docs for SQL Server and load test summaries were due to my efforts. CI driven via markdown file updates made this a quick process to keep things up to date. 👍

2011–2014 SQL Server Developer

 2011-2014   Selene Finance   SQL Developer

 Initially rehired for Asset Analyst work, was recruited into development team after learning SQL. Continued with full SQL Server development

⚡ Relational database design performance, development, and production support
⚡ Performed work on business analyst, qa, and developer for the work assigned.

Other Boring Stuff

In case you are bored, I’ve done this as well:

 Freddie Mac: Loss Mitigation during mortgage crisis
 Litton Loan Servicing: Loss Mitigation during mortgage crisis
 Greentree Servicing: Mortgage Collections
 Synergetic Communications: Mortgage Collections
 Vanderbilt Mortgage: Mortgage Collections
 Worked at a private school teaching
 Worked at a Library & Migrated an entire small military base library from one building the other. The darn dewy decimal system is what I blame for my eyes now. 😁

I’m really glad I’m not working in the mortgage industry & collections oriented roles anymore.

It did teach me to handle high stress situations and do pretty decent at negotation and grow stronger in my communication skills, so there’s some positive to that part of the journey! 😉

 First Programming Language: vba 😆
 Dark Or Light: join the dark side
 Preferred OS: any. Right now using macOS for development, and working in Docker containers when possible
 Terminal: Iterm2 & I ❤️ pwsh

I’m a big believer in #LearnInPublic approach, and have written for years on my blog on a variety of topics, demonstrating my ability to learn new technology and investment in continued excellence in my craft. This should help demonstrate my strengths in written communication.

A few highlights:

Open Source Contributions:

While the majority of my work is NDA, I try to contribute when possible upstream as well as publish when possible.

A few projects on GitHub:

I also contribute back to various projects I use when possible: PR’s I’ve Authored on GitHub As always, any posts on this site are not a reflection of my past or present employer.


Webmentions

(No webmentions yet.)