Posts

Showing posts from 2020

The Death of Flash

Image
Today is the death of Flash. While it's largely been irrelevant over the last decade (other than being a security concern) - from 1999-2010, it was my life. Over those 11 years I managed to create 446 flash projects (that number seemed insanely high. I tripled checked it.) Coding was my hobby in high school. It's how I paid bills in college. 446 SWF files made up of menus, navs, widgets, experiments, physics simulators, and so so many games. Many sadly unfinished projects. And a handful of projects I can proudly claim were played over a million times. I know of two instances where 2 different Flash projects helped academics with their PhDs. Maybe one day digital archeologists will come across these files once more. They'll decompile my SWFs. They'll undoubtedly critique my early works. Hopefully, they'll note the progression I made over the years. But most importantly, I hope they'll have fun playing FishClaw Extreme 3001...

Reading

In June I decided to read more. I signed up on Goodreads.com so I could track progress and get recommendations. I didn't know I could also set a yearly goal. Given it was mid-year, I arbitrarily set my goal for 10 books. Pretty happy to say I'll hit 16, maybe 17 before year's end. For 2021, I'm going for 30 books. I already have 8 on my "To Read" list and need 22 more. My preference right now is to read books on business, agile and lean strategies, leadership. Just finished a really good book on Systems Theory - and it's given me a lot to consider. I'd always read fiction, but ever since reading more books on business, strategy, frameworks, I've realized that so many of our problems as technologists don't need to be solved "the hard way" (i.e. experiencing them first hand.) Actively reading prepares you for problems, and keeps you from reinventing the wheel.

The Three Things I Wish I’d Known When I Began My Career in Software

Image
Progressing in a tech career is straightforward — but that lingering sense of self doubt, the impostor syndrome, can be tough to shake even as you grow. 1. If you’re not reading, you’re falling behind. This isn’t about reading fiction, and it’s not about reading technical manuals. This is all about proactively reading about your career, the evolving practices and methodologies. If your path is leadership, you should be reading about management, growth and leadership strategies, culture building, project management, conflict management. If your path is to become more specialized and technical you should become very familiar with Uncle Bob . Whatever your direction or path, there’s a book for it all. A great one to start with, one that I wish had been written when I first got started is The Manager’s Path . (It covers a career arc from Jr Engineer to CTO and is important regardless of whether your path includes management.) Beyond that, you should read about your industry: whether it’s e

Turbo-Boosted

Image
There's a paradox about family: you hear cautions about working with family while simultaneously hearing teams describing themselves as being "like a family." Next week marks 2 years of the passing of my older brother. My older brother, but also my employer for 8 years. An employer to many, but also their older brother. It would be wrong to call him a workaholic. There was no work/life balance in his mind. Just life . Just as you'd be his employee, coworker, colleague, you'd also be his friend - and being his friend meant you were his family. He'd laugh at my (finally!) reluctant admission that having an older brother makes you lazy - especially an older brother as vibrant, energetic, and full of life as he. It makes you lazy because not only do you know you could never keep up , but because you also know with him around, you don't need to keep up. When I was 6, my cool 17 year old brother would pick me up from my babysitter's to take me to the mall.

Bad Goals are Indistinguishable from Numbers

When it comes to S.M.A.R.T goals, the best thing I've read was: "Bad goals are indistinguishable from numbers." The writer goes on to explain how goals should state where you are today, your current rate/velocity, your target and when you will hit it. Bad goals: "Get backlog below 20 items by the end of the month." / "Decrease backlog by 50% by end of month," / "Get velocity up to 6 items per week by month end" Good goal: "Current backlog is at 52, with velocity of 7 items items per week. By month end, we will get the backlog under 20 items, by increasing velocity to 9 items per week." Personally, I think it's even better to briefly cover how you will get there : "Current backlog is at 52, with velocity of 7 items items per week. By month end, we will get the backlog under 20 items, by increasing velocity to 9 items per week. We'll achieve this by reducing unnecessary meetings and setting up office hours to reduce dist

I'm about to write even more...

Image
 Do you write much? I do, and I'm about to write more! The challenge I've been having is ignoring all the distractions that come with a computer/tablet. I toyed with getting a typewriter, or just turning off my screen, but then I landed on a device that is just a keyboard and E-ink text editor. So far, I'm really enjoying it...("I'm distraction free!" He claimed, as he put down his distraction-avoidance device and turned to computer to share.) I think it's important for anyone in technology to have a creative hobby. It not only helps your ability to problem solve, but I also believe expressing yourself is important in learning to become a better communicator. My question to you is: if you're a coder or in tech, what's your creative outlet?

Emerging Leaders in Tech

Image
At the beginning of the year, before Covid19 quarantines went into full effect, I'd started the Greater Nashville Technology Council 's Emerging Leaders in Technology training program. Me and some 30 other individuals met for the first time... Then, like so much else, the whole program was put on pause. We resumed in August, doing the training program completely virtual. Despite the challenges, it was one of my favorite experiences during Covid-19. What better way to hone those leadership skills than by having to adapt to (what I hope to be) a once in a lifetime occurrence. I'm so thankful to all the connections I made, the mentors, and the NTC for organizing. Amazon is so thankful too, since you all quadrupled my reading list! If you're not familiar with the program I recommend checking it out and signing up to join the next cohort . Thanks to Suzi Earhart, CCXP John Anderson Meg Chamblee, Joanne Eckton and all my class of 2020.

Imposter Syndrome & Passion

Image
Imposter Syndrome. When you first hear that term, it shines a light on what you've always been feeling. You To paraphrase the video: Following your passion doesn't lead to success. Find something you're good at, spend thousands of hours - apply grit, perseverance, sacrifice to become great at it. The problem with following your passion is that work is hard, when you run into obstacles you'll start thinking 'I'm not loving this, this upsetting, this is hard, this isn't my passion. In other words - next time you feel that Imposter Syndrome trigger in you, use it as a reminder that it's time to apply that grit and perseverance. It's your brain's way of telling you that you've hit your current limit of what you comfortably know, and you're going to need an extra push to learn your way out of the situation.

A Management Decision

Image
Summarizing a post from Reddit about decisions of Managers vs. Engineers: The night before the space shuttle Challenger disaster on Jan28, 1986, a 3-way conference was held between Morton-Thiokol, Inc (MTI), the Marshall Space Flight Center (MSFC) and the Kennedy Space Center (KSC). This conference was organized at the last minute to address temperature concerns raised by engineers who had learned that temperatures were dropping below 20°F. Decades of data and the specs showed the rocket boosters  should never be operated below 40°F. Launch go / no-go votes had to be unanimous. MTI recommended not launching based off the engineer's data. MSFC personnel rejected and pushed back, insisting MTI managers to go back and “reevaluate the data.” The MTI general manager told the VP of Engineering: “Take off your engineering hat and put on your management hat.” With that pressure, the VP changed his vote to “go.” On the MTI side there were 4 managers and 4 engineers. All 8 initially voted ag

Burning Calories

Image
Between working and being the best dad I can be, I've always had a hard time finding a way to regularly burn calories. Lately I've hated how convenient that excuse has become - so I'm finding a way to make it work (and fully embracing that I may look silly while doing it.) Sharing to encourage others to do the same - but also looking for suggestions, if you've found something that works for you, let me know about it! šŸ–„️šŸš“

NashForward

Image
I'd launched NashForward.com (now closed) to help those who'd lost their jobs due to Covid19. And while I was overwhelmed with volunteers, participants were a slower and steady build. For all the negative news about the virus, the economy, furloughed employees, unemployment rates - this comment by a recent participant (who just landed a job!) was really encouraging. I wasn't the mentor in this case - I had just connected them through NashForward, and let the Nashville spirit work it's magic.

My Love

Image
Today, I want to brag about my wife Stephanie Novin and how incredibly inspired I am by her. Beyond being the amazing and wonderful mother that she is, she's been an elementary school kids for 7 years. I never knew how hard it was to be a teacher until I'd seen all the energy, passion and care she put in every year. Now, amidst a global pandemic, she's made a significant career move: She's left the world of education to join an Ed-Tech company as a Product Manager (it makes a ton of sense when you realize kids and parents make the toughest clients!) It takes a lot of grit, guts and determination to make such a large move. One of the silver linings from having to work at home is seeing how quickly she's adapted to her new world, and seeing all those qualities I've always admired in her come to light in new ways. Now that we're both in the same space, one of my new favorite things is being able to bounce ideas off her. So while it's tough for someone like

Personality Spectrum

Image
I've never big on personality tests, but a few years ago I took one for a leadership course that had me PEGGED. It contextualized the various communication styles, and motivations to help better navigate working and leading groups. The tests can be expensive, so I decided to make a free and open source one by combining multiple free sources. It's not as thorough as the paid ones but still does a good job I think. I call it  Personality Spectrum Give it a shot - it doesn't take very long. Let me know if you think it's accurate for you! You can also get the code from my GitHub . (Importantly: it doesn't collect any personal data.)

Working with Legacy Code

Image
You should read: Working with Legacy Code by Michael Feathers At some point (or at many points) we have to work with legacy code. It's always a brutal struggle, but it doesn't need to be. If you were to ask me what books have impacted my life as a Software Engineer, I may mention a handful I've enjoyed but this one has had me floored. Many books teach you languages, algorithms, structures, patterns. This book teaches you how to *think* (and if you read it early in your career, you won't have to learn it all through painful experiences like I had to.) Two paraphrased quotes I love: - "When a class has too many responsibilities, chances are, you'll have an incredible number of reasons to change it." - "If you have the urge to unit test a private method, that method should be public. If it feels weird for that method to be public, it should probably be in its own class."

Learning Math

Image
When I was 6, my dad wrote me a math program in BASIC to help me learn arithmetic (and it eventually taught me to code.) Now that I have a 6 year old, I decided to make her a similar game. Hers has better graphics - and I'm hoping it sparks the same love of coding too. ❤️šŸƒ‍♀️šŸ‘©‍šŸ’»

Moving On

Image
10 years may feel short, but when you count all the ups and downs, the happy memories, the relationships, the growth, it's a lifetime's worth of experience. Today's my bittersweet last day at HPA. It's always tough leaving a place you love, but happy to leave on a high note. HPA is set to do great things. And of course, my new chapter begins Monday. Who knows what the next 10 years brings (other than more gray hairs...)

Perfection is Procrastination

Heard something the other day that really stuck with me, especially when it comes to writing code: The pursuit of perfection is procrastination. That floored me. I'm generally not a procrastinator, but earlier in my career I definitely made the mistake of wanting my work to be perfect. How many times had 3 hours just slipped by trying to get something "just right" when it was " good enough " all along? Working software always beats beautiful software that is incomplete. The pursuit of perfection delays your MVP, delays customer feedback, and delays realizing the thing you tortured yourself to get right is now obsolete. I recently posted about my brother always saying to "sign your work with excellence," and I think that's an entirely different pursuit. Excellence is a measure, not an ideal, focused on outcomes, the customer, and feedback. Excellence is how you respond to knowing perfection is impossible.

"Stuck at Home" Code Camp

Image
Sharing for those who missed it: Last week I used my lunch hour to run a live-stream "Stuck at Home" code camp for any kids who were stuck at home due to Covid19 school closures. While there are many great resources out there for kids to learn how to code, I thought having a live setting where they could ask questions would be more engaging and helpful. The camp's over now but I'm sharing the series of videos in case you have a kiddo that's interested. It won't be live, but they're still more than welcome to send me their questions.

BattleSnake Competition

Image
I recently posted about my BattleSnake coding challenge for my developers. Each developer had to write an algorithm to control a snake in the classic video game. Jasmin Baniya's algorithm came out on top for being both aggressive and analytical. She was up against some really strong contenders like Daniel Mendek's snake which had strong object detection, favored open spaces, and otherwise moved in semi-random directions. It was exciting watching the strategies play out. You can watch it below: When I told my almost-5 year old daughter about how Jasmin won she was ecstatic and drew a picture for Jasmin to say congratulations. If you follow Girls Who Code , Microsoft's Girls in STEM program, or seen Cognizant's recent milestone of employing more than 100k women, you'll understand why I'm excited that my daughter is not growing up thinking computers or science is "just for boys" and that she has so many amazing every day role models to look to.

BattleSnake

Image
This isn't a DOS game I wrote 30 years ago, but a console engine I made this past weekend. It's the classic game of Snake that many had on their Nokias (eat the apples, don't bump into yourself or the walls) but this version is "Battle Snake" with 4 snakes playing simultaneously against one another. Rather than control the snake directly, my dev team will be coding their own strategy and Friday we'll be having a battle-royal to see whose strategy gets the most apples. While it's a fun exercise it also captures some key concepts and challenges Software Engineers, especially RPA Engineers, often run into: iteratively anticipating and predicting state, simultaneously acting towards a goal while reacting to changing variables. It's also a great analog to coding - with the trade off of complex but hard to maintain algorithms against simple but potentially incomplete approaches. Can't wait to see how well they do. The code is also available on GitHub if

Green & Brown Fields

I've been reading more about "green fields" and "brown fields." I think it's a perfect analogue to coding. If you're not familiar with the terms, green fields are undeveloped landscapes - they are for you to shape as you like. Conversely, brown fields are lands that have already been developed. Perhaps there is construction that needs to be torn down, perhaps the ground has absorbed years of chemicals, perhaps it will take more concrete to build a strong foundation. Brown fields are, in this sense, challenges. When we're new coders, the temptation is to throw out the old and build new. "It'll be faster if I start from scratch." (I don't think it only applies to coders either. If you've ever needed a plumber, or some handy work done, you'll find most are critical of the work that preceded them.) The truth is often you can't scrap everything. And even if you could, tossing it all away creates a lot of risk and pressure on

Popular

Let's Clear Up The Ambiguity!

FAQs for a Software Engineering Hiring Manager

7 Steps to Writing an Amazing Resume

7 Steps to Building your Portfolio MVP

On Systems Debt