What Tech Did I Learn in 2018?- 3 mins
2018 in review - what technologies did I learn/improve on?
Inspired by this HackerNews post, I’ve decided to reflect on the technologies I’ve learned or improved on this year.
2018 has been a great year for learning: I finished my degrees at WashU and St. Mary’s College and started my full-time career as a Site Reliability Engineer at Atlassian. My job enables (and requires) me to keep learning at all times as the infrastructure engineering landscape can be a scary place full of monsters for a new grad. Here’s a bit of what I’ve studied from Jan - Dec.
- Process Management
- I/O multiplexing
- Forensics (Memory, Processes, Timing)
I ended my time at WashU with a deeper dive into Linux internals after finishing up our three-class systems software and operating systems track. As an SRE these skills are invaluable: much of our alerting revolves around monitoring processes, load on hosts, I/O errors, etc. There’s not a day at work where I don’t interact with Linux systems in some way.
One of my goals for 2019 is to pass the Offensive Security Certified Professional (OSCP) exam. From the Offensive Security site:
Earning this designation indicates that you can conduct a penetration test from start to finish within a target-rich, diverse, and vulnerable network environment, a skill set that is highly valued and in increasing demand within the industry.
I’ve studied networking and security, and have started getting into CTFs and exploiting vulnerable machines (in a lab environment). I’m currently at at:
- Scripting attacks with Python
- Buffer Overflows
- XSS, SQL Injection, CSRF, other exploits from the OWASP Top 10.
- WebDriver (Python)
- Fabric (Python)
- Celery (Python)
- AWS + provisioning resources with Terraform
- Caching (Redis)
- Message Brokers/Queues: Redis, RabbitMQ, SQS
- Databases (and Postgres):
- Load Balancing
In building scalable, resilient systems, I’ve had the ability to learn about cloud infrastructure, caching in order to improve application performance, utilizing async tasks and messaging systems in order to defer work and queue up jobs. I took the Database Mangement Systems Course at WashU taught by Doug Shook and learned the inner workings of databases then at work I’ve had the opportunity to work with and study a large Postgres instance and pgbouncer for connection balancing
I look at a ton of dashboards while at work. This is an interesting one - at school I was never really exposed to monitoring applications and this definitely took me by surprise. Crafting excellent (yet concise enough) monitoring dashboards and alerts (and choosing the right metrics!) is an art I’m consistently amazed at. The Google SRE Book does a great job at explaining how you can pick metrics that are meaningful and expose potential problems.
Feel free to leave a comment if you’d like some resources on any of these areas or want to share what you’ve studied