I worked on software that runs in an IoT gateway on bucket trucks used in the power industry, that raises audible and visual alarms if a worker doesn't have their harness clipped onto the bucket while they're operating it. In particular, I wrote a Finite State Machine library in Python that supports what tracks what's happening with the bucket, and helped develop the (MQTT) protocol to communicate with the backend. It was a lot of fun, and very satisfying.
Having said this, some of my more cynical friends have told me: "You weren't saving lives. You were just helping these companies reduce their insurance premiums."
Actively looking for a new role, after a year-long break.
Location: Seattle area (USA)
Remote: Yes, though prefer hybrid, or meeting up every few weeks
Willing to relocate: No
Technologies: Python, Linux admin, PostgreSQL, MariaDB, Terraform, SaltStack, Docker, AWS, Lambda, Git
LinkedIn: https://www.linkedin.com/in/tobych/
Résumé/CV: https://www.dropbox.com/scl/fi/7szydmprdyturaigbxmcn/Toby_Champion_Resume_1Mar24.pdf
GitHub: https://github.com/tobych/
Email: toby(at)tobychampion.com
Generalist software engineer with 30 years experience consulting, contracting, and as an employee, in academia in the UK and commercial organizations in the US. Most comfortable in well-funded start-ups. Strong Computer Science background. I've primarily been using Python for 20 years, but it's time to learn Go and Rust, so I'm doing that.
Home lab includes Proxmox, OPNsense, VLANs, gitea, PostgreSQL, MariaDB, a Docker registry, openwrt, Home Assistant, Mediawiki.
Location: Greater Seattle area, WA, USA
Remote: I prefer remote or hybrid roles. Something that's worked well has been spending a few days with team members every couple months, or two or three days a week together.
Willing to relocate: No
Technologies: Python (Pandas, Numpy, Django, FastAPI, GraphQL, Celery), Rust (learning), C (long ago), AWS (IAM, EC2, ECS, S3, DynamoDB, Lambda, Kinesis, CloudWatch), IoT (MQTT, CAN bus, Embedded), DevOps (Vagrant, SaltStack, Terraform), Jupyter, Consul, Jenkins, Docker, JavaScript, Domain Driven Design, SQL (PostgreSQL), HTML and CSS (reluctantly these days), Linux (very familiar), JIRA (I don't hate it), GIS (QGis).
Résumé/CV: https://www.dropbox.com/s/xw92bna8wfhp72w/Toby_Champion_Resume_2Feb23.pdf
LinkedIn: https://www.linkedin.com/in/tobych/
GitHub: https://github.com/tobych
Email: toby [at] tobychampion.com
Well-rounded Software Engineer (Solutions Architect?) with 30 years' experience built on a strong Computer Science background. I've solved difficult problems and built successful products for ambitious enterprises, big-thinking start-ups, and international academic research projects.
Amongst other things, I've worked with a lot of scientists, data scientists and machine learning folks, helping get their code into production, and building libraries and automating things so they can concentrate on doing math and science stuff instead of trying to do something they weren't trained to do.
Contributed to a few open source projects, including WordPress (I helped get the REST API built).
I've kept up with modern development practices enough that I've ended up working with a couple teams recently where I kept wondering when the rest of the industry is going to catch up. I'm currently reading Dave "Continuous Delivery" Farley's "Modern Software Engineering", and Woody Zuill's new book about mob programming, "Software Teaming". I'm keen to not end up in this situation again but I'm not quite sure how to do that.
I try hard to avoid Microsoft Teams, Scaled Agile Framework, and PHP.
Outside of work: I'm a musician, composer, and do community theater stuff. Currently taking an improv class.
My CS course at the University of Sussex, UK did this (in 1988) with ML, the functional programming language. Plenty of us had already been coding in C or Pascal before starting at college. None of us had done any functional programming. I loved ML: it seemed all elegant and beautiful and magical.
When I hear people starting their CS degree with C++ or Java, it makes me cringe.
Perhaps "API" could be added to this list. I've been jobhunting this week, and first I heard recruiters use "API" to refer to what I'd call a "service", then heard other quite senior developers do the same thing.
APIs, frameworks & libraries are so often being used interchangeably & its getting confusing for us too, specially if planning for a new feature to integrate
"is it a framework? is it a library? is it a API" whenever I have a cursory glance at a product on HN/Github or likewise
APIs are simply a property of any system you want a program to interact with. The confusion comes from the synecdoche of referring to web applications that are only interacted with via their API as APIs.
The more interesting one is frameworks and libraries. There's a gradient between them based, IMO, on how opinionated they are. Working with a framework means filling in the blanks, e.g. "When we recieve an http request to this endpoint, this application code should run" in contrast to a library which is just a barrel of functions to call. But that's a fuzzy line.
I mean, a library has an API (the public facing stuff you're supposed to use), a framework probably also has an API (or rather, a bunch of them), and a service also probably has a Web API (assuming you're programming against said service).
Having said this, some of my more cynical friends have told me: "You weren't saving lives. You were just helping these companies reduce their insurance premiums."