惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
GRAHAM CLULEY
S
Security @ Cisco Blogs
P
Proofpoint News Feed
Cisco Talos Blog
Cisco Talos Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
WordPress大学
WordPress大学
Project Zero
Project Zero
S
Schneier on Security
P
Proofpoint News Feed
小众软件
小众软件
P
Privacy International News Feed
美团技术团队
L
LangChain Blog
Know Your Adversary
Know Your Adversary
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
Microsoft Security Blog
Microsoft Security Blog
Engineering at Meta
Engineering at Meta
I
InfoQ
量子位
Vercel News
Vercel News
博客园 - 三生石上(FineUI控件)
Spread Privacy
Spread Privacy
D
DataBreaches.Net
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
U
Unit 42
P
Privacy & Cybersecurity Law Blog
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Blog of Author Tim Ferriss
Latest news
Latest news
K
Kaspersky official blog
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
Simon Willison's Weblog
Simon Willison's Weblog
云风的 BLOG
云风的 BLOG
S
Securelist
AWS News Blog
AWS News Blog
F
Fortinet All Blogs
T
Threat Research - Cisco Blogs
Stack Overflow Blog
Stack Overflow Blog
Scott Helme
Scott Helme
Help Net Security
Help Net Security
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Tenable Blog

Chip Cullen

The need for importance, and AI: Chip Cullen An updated Colorosetta: Chip Cullen The Return of the Font Combinator!: Chip Cullen Changing the number of an item in an ordered list: Chip Cullen My pizza dough recipe as of May 2025: Chip Cullen Gonna try to be a bit more personal: Chip Cullen How I built dynamic social media images in Eleventy using Cloudinary: Chip Cullen My current approach to AI : Chip Cullen Lessons Learned Surviving a Major Product Launch: Chip Cullen How to Build a Drop Down Menu with Modern CSS: Chip Cullen How to stop page scrolling when you have an open dialog element: Chip Cullen Distraction Driven Development: Chip Cullen In praise of the switch statement: Chip Cullen Project stuck? Think about how you’re breaking it down & question everything: Chip Cullen So how did the onboarding experiment go?: Chip Cullen Ideas for an Onboarding Checklist: Chip Cullen I really like Post Mortems: Chip Cullen Raise Red Flags Early: Chip Cullen How to mock fetch requests in React Testing Librarty tests: Chip Cullen Running a Structured Meeting: Chip Cullen Adding the View Transitions API to my personal site: Chip Cullen A Lightweight Way to Read GraphQL Data: Chip Cullen How to make a color changing favicon: Chip Cullen Using a Pros/Cons list to help navigate technical discussions: Chip Cullen How to use variable fonts from Google Fonts: Chip Cullen A new website: now on Eleventy!: Chip Cullen How to Truncate Type at More Than One Line with Just CSS: Chip Cullen Colorosetta: the VS Code Extension!: Chip Cullen Using CSS Custom Properties and Logical Properties Together: Chip Cullen Browser Dev Tools: Element Inspector Popover: Chip Cullen The Link with rel=preload is a Seperate Thing: Chip Cullen How to have Dark & Light Mode Images that also works with User Choice: Chip Cullen Don’t use Viewport Units for Font Size on their own: Chip Cullen A little known Media Query: Aspect Ratio: Chip Cullen Meta thinking: Managing Decisions: Chip Cullen Give Your To-Do's Context: Chip Cullen Say What the Impact is when Reporting Issues: Chip Cullen Firefighting 101: How to Manage Breakages: Chip Cullen How to Deal With Large Pieces of Technical Debt: Chip Cullen Make Your Request Clear: Chip Cullen Analytics events, HTML classes, and protecting against refactoring: Chip Cullen How We Removed jQuery from a large app: Chip Cullen New tool: ColoRosetta: Chip Cullen What width and height attributes should you use with responsive images?: Chip Cullen Django 3.1 gotcha: Referrer Policy has a new default, and it might break iframes and links: Chip Cullen A Javascript Component Pattern: Chip Cullen CSS min(), max() and clamp() Functions: Chip Cullen Pointer Events and Inline Elements in Chrome: Chip Cullen Resolving a github repo and a new Create React App: Chip Cullen How to POST *Data* with the Fetch API: Chip Cullen The Contrast Triangle: Chip Cullen Advice on interviewing for Junior Developers: Chip Cullen Life Lessons Learned From Running a Marathon: How to do something really hard: Chip Cullen A (Brief) intro to Search Engine Structured Data: Chip Cullen Javascript Fallback Values on Variables and Booleans - a hard lesson: Chip Cullen Alfred Tip: Quickly Access Common URLs: Chip Cullen Responsive Images in Hugo - by Laura Kalbag: Chip Cullen Making a Gatsby Site with Multiple Content Types: Chip Cullen How to Create and Use Fixtures in Cypress Tests: Chip Cullen Fixing the 'Bad Interpreter' Error from AWS and Python 3.7: Chip Cullen Creating a Canonical Tag in a Django Template: Chip Cullen Responsive spacing with viewport and ch units: Chip Cullen Welcome to my New Design - 2019: Chip Cullen Django Templates: Block and If statements don’t work like you might expect: Chip Cullen Books I Read in 2018: Chip Cullen Lifehack: 4 ways to help tame common email noise: Chip Cullen How to make better Pull Requests: Adding Steps to Test: Chip Cullen The unsung develpment tool: Spreadsheets: Chip Cullen Troubleshooting Adding and Removing EventListeners: with Arguments, Debounced, and in a React Class: Chip Cullen How to Fake the Window Object in Jest and Enzyme: Chip Cullen Migrating From Wordpress to Hugo: Chip Cullen Background Repeat and its Possibilities: Chip Cullen Getting Started With Front End Tests: a Mindset: Chip Cullen Migrating a Blog - An Opportunity for a Content Inventory: Chip Cullen Moving to Hugo: Chip Cullen JavaScript events: .target vs .currentTarget: Chip Cullen Things I wish I knew when starting with Python: Chip Cullen Leading Ampersands for modifiers in Sass: An anti-pattern: Chip Cullen How to get rid of the "You have mail" message in your terminal: Chip Cullen Why three typefaces rule the web, and what you can do about it: Chip Cullen You shouldn't worry about Section 508 - it's Section 504: Chip Cullen Looping Video Backgrounds: pointers and pitfalls: Chip Cullen How to “preview” a click event tag in the Google Tag Manager console: Chip Cullen Moving on from a technology, or: life after Drupal: Chip Cullen Don’t be a dumb developer: Chip Cullen Two level breadcrumbs with CSS :only-child: Chip Cullen Simplicity comes with experience: Chip Cullen Do the least amount possible: Chip Cullen SVGs vs. Icon Fonts: Two points in favor of Icon Fonts: Chip Cullen Accessible links without underlines: Chip Cullen The Strategic Job Hunt: Chip Cullen Surviving Getting Laid Off: Chip Cullen How to structure your typography in Sass: Chip Cullen Layer Cake: A Responsive Design Layout Pattern: Chip Cullen Creativity is yet to come in Web Design: Chip Cullen Front End Testing with Wraith: A Step by Step Recipe: Chip Cullen Where to begin? How I start a visual design for the web: Chip Cullen If you could only have five Google Fonts: Chip Cullen Why SVG is so cool (or: what happens when you're late to the party on something): Chip Cullen How to apply classes to elements with CKEditor 4, in Drupal 7: Chip Cullen
How I learned to code: the art of letting go: Chip Cullen
2024-04-12 · via Chip Cullen

This post was inspried by Chris Macdonald's post - which in turn was inspried by others.

Origin story

I was not an engineer type growing up. If anything, I was ... artsy. I used computers for school, and learned how to touch type, but other than that, I had no interest in anything technical. I drew a lot, and wanted to go to art school.

In college I majored in graphic design, but even then I focused on print design. There were web design classes at that point (read: how to use dreamweaver) but I found them frustrating. I didn't like the feeling that everything you did had to be just so in order for it to work.

First jobs

I got a job out of school designing billboards. That was ... actually pretty cool. Then I moved to the middle of nowhere to follow my girlfriend (now wife) and found a job at a newspaper designing ads.

At this point I could already see where the world was going. I knew that I would have to make the transition to the web. I picked up a book on HTML and started to learn on my own.

Now, get this - as an exercise, I would actually write out html with pen and paper. I did this deliberately to slow down, and make sure I was thinking through what I was doing. As wacky as that sounds, I think it helped.

Embracing Web Design

At this point my wife and I moved again and I found a job at a small graphic design agency. This was when I started working on web design in earnest. These were small sites. And I didn't do the programming - we hired that out to someone else.

However, I discovered the books of Andy Clarke at this point, and started to fall in love with CSS. It felt like doing design work, but with code as the medium.

We moved again (this time overseas), and while my new job didn't have anything to do with the web, I tried to learn JavaScript at that point. I'll be honest - it didn't take at that point. I'm not sure what my blocker was. But I was moonlighting and working on web designs, and even starting to do some actually web development.

We moved back to the states, and this time I got a job with the title "Web Designer". I worked on some large government websites at that point - I would work on the design, as well as the coding. I designed and built sites for a couple years there.

Identity conflict

I found that I enjoyed the development end of things. I felt like it came easily to me. Much more so than design had. Design was always a struggle for me, mentally. To be brutally honest, I think I'm a far better web developer than I ever was as a designer. That was a hard thing for me to learn to let go of - it had been my identity for all this time. I was a creative, not an engineer.

But I found a new identity that was sort of both: a front end developer.

First development job

I was hired by an agency at that point to work mostly on Drupal sites. I started the job not even thinking about my level or anything. I was just happy that I was going to be able to write code all day.

I remember one day, I had a concern about another developer on the team and a choice they had made. I talked to my boss, and she said "Oh, you're much more senior than him." It never occurred to me that I would even be considered senior in ability to someone else.

I learned some basic jQuery, and a lot of Drupal. I considered myself a Drupal Front End Developer. And this was in Drupal's heyday - that was a thing.

Letting go, again

I moved on from that role to another agency, one that was not focused on Drupal. I had to learn to let go of that part of my identity again. I was then simply a "web devloper". That was a difficult but healthy thing for me to do.

While the job was fantastic, it was a victim of the great agency implosion of 2015. I was lucky, and landed a new gig four weeks later.

PBS

I landed a senior front end developer role at my current employer, PBS. At this point, I was very confident in my CSS, HTML and jQuery abilities. PBS is a python shop, so that was something I needed to start to pick up.

We hired an awesome JavaScript engineer who very patiently, taught me so much about JavaScript - both vanilla JavaScript generally and React. I would not be who I am today as an engineer if it weren't for her. (Thank you Sally!!)

I tried to absorb what python I could from the engineers around me (like Chris). I would say I'm still an intermediate Python developer at best. But that tends to not be my focus.

It was in this job I learned to write tests - unit, integration and end to end tests.

Letting go a third time

I was promoted to tech lead, and did that for a couple years. But then we formed a "Web" team, with me as the manager. I've been in that position since (as of this writing). This was perhaps the hardest transition of all - I went from being a doer/maker to a manager.

That is hard. There is no roadmap to follow - no checklist. And I'll be honest, I'm still making that shift. I still write a lot of code. But I have to think through planning work, and helping my team be able to do their work. I have to think through how can the most work get done by all of us together. If that means I spend a whole week writing tickets so that the other engineers on my team have clear tasks to work on - so be it.

My most enjoyable days are still the ones where I get to code all day. Those are much more rare, but they happen. I'm not sure what the future will hold, but it will likely be less and less of those. But I'm much more okay with that idea than I was even a few years ago.

Conclusion

So that was a bit of an autobiography on how I got to where I am today. Engineer, manager, evolving being.