Reed Harston

let post: Story? = doSomethingInteresting()?.writeAboutIt()

General

Has it really been two years?

Well, not exactly. It will be two years sometime next month. At least I think so, I’d have to look it up. (Fine, give me a minute to look it up…)

Well, I was wrong. It was two years ago last month.

Two years of what? That this site has been live of course! Yep, it only took me two whole years (and a month…) to post something. And this is that something. Exciting, huh? Thing is, it is almost 11:00 PM and I really should be asleep, so I think I’m going to keep this short.

Turns out I didn’t keep this that short, nor did I get this done before bed.

First off I want to say that I do have plans for this site, I just haven’t gotten around to it yet. Like the other 200 things on my project list (I’m probably not exaggerating that number by much to be honest…).

I started writing about some of the plans for this site, but that made this post too long and is what kept me from finishing, so I split that part off to be a followup to this one. Keep an eye out for that post soon.

So why haven’t I kept up with the site? Well, I’ll give you a quick run down of some of the things that have kept me busy in the last two years:

Finish my BS in Software Engineering
Actually, that was a month before I bought the domain for this site! I guess I thought being out of school would give me more time to blog…

Start my first official Software Engineer role
It was a great feeling to finally have Software in my title, but it turns out I’d write less code than when I was a Test Engineer (which was immediately prior).

I traded Test for Software in my title when I moved to the Protection Systems Forensics group at SEL. The Forensics groups mainly helps get to the root cause of customer problems. If the root cause was a bug in the firmware usually we’d log the bug to the product team’s backlog, and occasionally the group would write the code to fix the problem. We’d also find a workaround for the customer until the bug could be fixed. (And sometimes we’d find the version of the firmware already was fixed and politely ask the customer to just update…) The group was meant to start on some actual development work as well, but that didn’t get started while I was still there.

As I mentioned above, before becoming a Software Engineer I was a Test Engineer, where I ran tests on some of our products to validate changes and new features in firmware, and I actually wrote more code in my time in that position. Most tests involved using Python scripts (and some existing Perl scripts), and because I used Python most on the team I also got asked to help with some build scripts too. Previously I had hardly used Python, so that was a good learning experience for automating and scripting simple tasks. And I came to really appreciate static types and compilers when writing production code…

I was hoping to also work on some of the firmware for a project our team was going to start working on since there wouldn’t be much testing in the beginning, but instead I was mostly asked to run some tests for other projects. I’d take a peek at the C and C++ firmware code whenever I got a chance though, and that helped me understand a lot more about how firmware is loaded and what happens before main is called.

As a Test Engineer I also got to help review an update to a vendor provided HTTP/TCP library. I had used C++ in almost all my university classes, but I didn’t know just how different C is from C++ before that review. I now think that referring to them together as C/C++ does a huge disservice to both of them. Especially C. They are two separate languages, and should be treated as such. But that is a topic for a different post… I also hadn’t been part of an organized code review before. It was a great learning experience.

For some vendor code SEL reviews all the changes in the code from a previous already reviewed version to the new version to be adopted. In doing so it became apparent that some vendors don’t properly review their own code before releasing it…

What I learned in my time as Test Engineer really came in handy later as a Software Engineer (see, there was a reason I brought it up…). The Forensics groups had actually been a training group for a while before I joined and all new firmware engineers would start there and spend a year before ‘graduating’ to one of the development groups. I was the first engineer to join the group with previous experience working on a product team, and I really enjoyed being able to share my previous experience and help other on the team learn more about the company’s products and firmware development practices.

Our daughter started school!
Well, if you can call joining Zoom calls from a school issued Chromebook ‘school’… It was unfortunate that she didn’t get to properly go to school for the first half of her very first year of school, but at least by the end of the year she got to go in person (wearing a mask, of course) and get to know her teacher and school properly. She loved her teacher, so we are really happy she had that experience.

Bought our first real house!
We had been living in a manufactured home on a rented lot for just over two years (seems like a pattern here…) and we were very ready to move somewhere where we could have family over for more than a few days at a time, paint our house whatever color we wanted, and generally feel more free to live as we wanted (with respect for our neighbors, of course).

It really was a miracle that everything lined up just the way it did to buy our current home, and I won’t forgot the role prayer, faith, and my wife’s determination played in making it happen. She is the true answer to prayer, and she knows how to listen when the still small voice is telling when it is time for something to change, or to prepare for the next big thing. (More on the blessing this house has been in our lives later!)

Started my Master of Computer Science at ASU
(Well, technically the MasterTrack Certificate. My actual Master degree starts next January…) There were areas I didn’t get to study during my undergrad that I wanted to understand better, and I wanted to prepare myself for future career opportunities as soon as possible, including possibly teaching someday. I’m still not sure if I want to pursue a career in teaching, but my mom still teaches and my grandfather was a professor at the university here in town, so maybe I will follow in their footsteps.

Asked to spend a few months helping another group at work
Earlier at SEL during my time as a technician a friend and I worked on some software to help automate tests, so when a certain group needed help he asked if I could step away from Forensics for a time and help out. During that time I built a Windows application to run validation testing on parts before they are sent to the factory (not sure how much I’m allowed to say here…). My application replaced a number of Python scripts that a few hardware technicians and engineers had cobbled together, and was praised by the technicians running the tests my software controlled. This is the only real software development experience I had as a Software Engineer at SEL, and it wasn’t even as part of my actual job.

Probably the biggest challenge for me was learning how to interface with each of the pieces of hardware used for the test. I reused some code from the previous software I had worked on with my friend, and he helped me with a few tricky bits, but after setting up a near duplicate of the test setup to test the software without interrupting the tests I was able to learn a lot more on my own. I didn’t have time to handle all the error cases I wanted, but I am happy with where things ended up by the time I left.

I enjoyed those months. Time flew by faster than I can believe, but I enjoyed delighting the technicians running the test with new features that made the test easier for them to run. I even was able to refactor the original logic so separate steps could be run on their own instead of being all or nothing. That came in handy a few times to rerun just part of the test that hadn’t worked the first time. It was all very gratifying, and reminded me that what I really wanted to do was develop software for people, not just debug 10 year old firmware that was never going to get updated…

I wish I could got back and keep working on adding the features we wanted to add so the test, but I realized the time had come to look for something new. It would have been easy to move to SEL’s software group since several of my previous coworkers were in the group, but if I was looking for something new then I might as well look around for something I would really enjoy.

One of the features that wasn’t quite finished involved lighting up LED to guide the test operator to place parts in the right order, and I was really looking forward to getting that working!

Started working from home on a native macOS application (woo!!)
This is it. This is the beginning of a long time dream. My dad worked from home (as a lawyer) nearly my whole life. He was always at every church activity, scouting event (even ones I didn’t go to), basketball game, and track meet. He was always there when I needed him, and he is the reason I know everything I do about life, nature, and my faith in our Father in heaven.1 Woodworking, plumbing, electrical, electronics, car repair, computers, scriptures. Everything was due to him and is endless hobbies and projects, and constant loving presence. I want to provide the best of what my dad gave me to my kids, and working from home is a large part of that plan, so I can be home more and more present in their day to day lives.

I also have been looking forward to working on macOS software since macOS is my OS of choice and I don’t believe the desktop is dead quite yet. (Another topic for another post.) I almost didn’t believe I could find a company that would have me since native macOS software is such a small market segment, but when I found Remotion I knew it was where I wanted to be, and they were just as excited to find someone who wanted to work on a native macOS application. It was a great match. I’m not sure if developing macOS software is what I want to do the rest of my life, but for now I am really enjoying it.

I really wonder if macOS will even be around the rest of my life… the way things are going it looks like phones and websites are going to kill desktop software before long.

My wonderful experience at Remotion so far really deserves a blog post (or several) of its own so I’ll have to leave this part of my life at that for now. Hopefully it won’t take two more years to write more about it!


More has happened in those two years of course, but this ‘little’ update has already taken a lot longer to write than I had initially planned, and I think is a fair summary of the highlights of the highlights (I haven’t even touched on the joys of potty training and preschool!).

I have a lot I’d like to write about, in all areas of life. Some areas of interest include cars (viva Subaru!), electronics, computers (hardware and software), and building things, but that will have to wait for another post so this doesn’t get any longer than it already is.

I’ve already started my next post, so hopefully it won’t be too long before I get that posted. I plan on talking a little bit about what to expect from this blog, and what I expect from you the reader! (Yes, you! I want to learn about you as well!)

See you then!

  1. Another thing I learned from my dad is how to talk too much, but I am getting better, I promise!

Related Posts