HNHacker News
TopNewBestAskShowJobs

Townley

1,676 karma · joined June 18, 2015

Web/mobile developer (mostly python/javascript). NYC -> Montreal -> Washington, DC
submissionscomments
Townley··on Ask HN: How to learn best practices when you have no one to teach you?
It's hard to get "better" at something because it can mean so many things. Describing the attributes that makes you better with MongoDB, APIs, or software development gets you a lot of the way towards learning how to do it.

Take Mongo for example: is the issue that your database keeps going down? If you frame it that way, it doesn't take long to discover clustering, replicasets, and monitoring. Is the issue that your queries are hammering the server? If so, googling that leads you down a months-long rabbit hole that ends in indexing, caching, and denormalizing strategies. Are you frustrated with the amount of boilerplate needed to get mongo data to the frontend? That's a good hint that you're in the market for a library/framework that might help with that.

Much in the same way that one of the hardest parts of solving a bug is knowing what to Google, specifically defining what "better" looks like is the first step towards getting there.

Townley··on Pricing Experiments You Can Learn From (2011)
I sense an upcoming reckoning against these techniques.

Big "SALE!" signs and prices ending in 9 aren't benign: they're malevolent attempts at psychological manipulation, and they degrade consumer trust the minute customers recognize them as such. While it's likely impossible to fully counter the bias, I've started clutching my purse strings more tightly since those big glowing signs became less of a declaration of value, and more of a warning that "We don't have your best interests at heart"

These techniques work, but only because people view this manipulation as acceptable and commonplace. It would do wonders for consumer confidence (and therefore sales) if stores could give a credible and transparent promise that they make every attempt to inform consumers about the value of their products. Shoppers like myself (busy, uninformed about most categories of things they buy, and unconfident that they can navigate the "DEALS" landscape and come out ahead) would not only shop there: they'd pay a premium to do so.

Townley··on Don't hold users hostage, facilitate their exit
I think GP's point was that "social justice warrior" is a loaded term with a political agenda behind it, and that using it detracts from your overall point (both in the article, and in your explanation for using it in the above comment)
Townley··on HTML, CSS and our vanishing industry entry points
I love the wheat analogy on a few levels

An excellent chef may know that midwestern wheat makes tougher bread than southern wheat, and that White Lily flower is a great brand for softer wheat with less proteins. But that's useless knowledge--and added complexity--for a total newbie who's never thought about what "rising dough" means.

One of my friends got into programming recently by building netlify-hosted react websites. Yes, his need to learn JSX and the strange capitalization of reactifiedHtmlAttributes is additional mental overhead, but because some onramps have gone away entirely, he won't have to worry about FTPing files up to a server, or Linux file permissions, or configuring Nginx, until he's established.

So whether it's cooking or programming, the "on ramps" have definitely changed, but it's never been easier for anyone to get started building high-quality products.

Townley··on Ask HN: What books changed the way you think about almost everything?
My go-to vote as well. Some of my favorite passages pertain to the awareness of-and management of- one's internal motivation and thought process when attempting to do good work.

"So the thing to do when working on a motorcycle, as in any other task, is to cultivate the peace of mind which does not separate one’s self from one's surroundings. When that is done successfully then everything else follows naturally. Peace of mind produces right values, right values produce right thoughts. Right thoughts produce right actions and right actions produce work which will be a material reflection for others to see of the serenity at the center of it all."

Townley··on What It’s Like to Be a Diagnosed Narcissist
The author's comments about the "positive vs negative aspects of narcissism" are interesting.

I remember reading[0] about how one of the most effective ways to determine if someone is a narcissistic is to ask them... "are you a narcissistic?". That surprised me at first because self-diagnosis is almost always a bad idea, but on second glance it makes sense that people who think about themselves all day could be more introspective than normal (or sometimes not: they could waste their day thinking about how great they are).

But if part of success is understanding your own thought process and working around your strengths/weaknesses, these are useful insights for anyone on the narcissism spectrum (see: everyone)

Ref: [0] https://www.psychologytoday.com/us/blog/socially-relevant/20...

Townley··on Roadmap to becoming a web developer in 2019
In case anyone is as acronym-deficient as I am, and was confused by the supposedly-essential skills of "SOLID/KISS/YAGNI":

SOLID (https://en.wikipedia.org/wiki/SOLID):

- Single Repository Principle

- Open/Closed Principle

- Liskov Substitution Principle

- Interface Segregation Principle

- Dependency Inversion Principle

KISS (https://en.wikipedia.org/wiki/KISS_principle):

- Keep

- It

- Simple

- Stupid

YAGNI (https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it):

- You

- Aren't

- Gonna

- Need

- It

Townley··on After losing half its value, Nvidia faces reckoning
As a non-crypto-mining consumer, I've been frustrated by the price increase for video cards, and perhaps that frustration impacts Nvidia in the long run.

But really, when crypto was booming, what was Nvidia supposed to do? They were the guys selling shovels and pickaxes when the gold rush was in full swing. They rode the bubble and reaped the benefits when they could. So the price drop doesn't necessarily reflect a failure of strategy on their part.

What I'll be curious to see going forward is what Nvidia does with the cash from their bumper year. If the end result of this saga is that Nvidia lined their coffers and invested in R&D for the next generation of of video cards, that bodes extremely well for the company.

Townley··on Compiz: Ubuntu Desktop's little known best friend
How did I not know about this keyboard shortcut until now?!? Being able to move a window between different monitors is such a great feature.

Thank you so much. Life will never be the same.

Townley··on Ask HN: Switching from application development to games development?
Unity is an excellent place to start.

I took this Udemy course on Unity to get started, and enjoyed it quite a bit. https://www.udemy.com/unitycourse2/learn/v4/overview. The coding parts go by a bit too slowly if you can stare at a C# function and get the gist despite not knowing C#, but the graphical portions are exciting. Meanwhile, if videos or paid courseware aren't your thing, I've seen several great free tutorials online.

I was also helped out by a casual background in Blender (from 3D printing and modeling) so messing around with Blender is a great to wrap your head around asset creation, rigging for animation, and scene design. If you end up liking Blender a lot, there's a python scripting engine you can use for designing the entire game with Blender (personally I prefer the whole-package experience within Unity more, despite being a Python developer by day).

Once you're decent in Unity, it's a pretty employable skill and you could get a job working in game development or with something else (interactives for museums, flight training module design, and web interactives are all examples of fields where friends use Unity). That could be a good way to get paid to learn.

Finally, consider the non-technical skills necessary to create a game (particularly in a small studio). Music, artwork, storyboarding, UI design, etc are all important parts of the process, particularly at a smaller studio that may not have teams of teams to handle every little task. Picking up a few of those can't hurt, and will be necessary if you'd like to make games for yourself.

Townley··on Pipenv: promises a lot, delivers very little
Curious about one criticism in particular:

  I can run pipenv shell to get a new shell which runs the activate script by default, giving you the worst of both worlds when it comes to virtualenv activation: the unwieldiness of a new shell, and the activate script, which the proponents of the shell spawning dislike.
In a project that just uses pip + a virtual environment, I'm used to activating the virtual environment when I want to run a command.

Why is `pipenv shell` any worse than that? What do "proponents of shell spawning" dislike about the activate command?

Townley··on At 22 years old, Postgres might just be the most advanced database yet
One of the things I liked about Mongo (compared to Postgres) was the ability to configure a list of connected servers, an election pattern for deciding the master, and... that's it. With that, servers on multiple hosts were load-balancing read-only queries, propagating writes, and failing over in a way that worked for us (a few seconds of write failures of the master ever died was fine for the application we were making).

Meanwhile, postgres has this replication scheme available ("Trigger-Based Standby Master Replication") but the steps to implement it were much harder, and required an evaluation of possible replication/failover needs that we didn't know enough to do. It also requires a dive through pages of the documentation at https://www.postgresql.org/docs/10/different-replication-sol... to understand how to implement any of the above strategies.

Postgresql's availability of different replication methods, and the resources available for each, are impressive for sure. But there's something to be said for having Mongo's easily-understandable list of steps to get multiple servers talking to each other right away.

Townley··on On avoiding boredom
I think we wildly undervalue two similar but distinct skills: the ability to cope with boredom (the focus of this article) and the ability to be entertained by boring things. If you can build up your tolerance for doing boring things, and also trick yourself into thinking "coding this boring feature is going to be AWESOME because it's going to make people's lives so much easier" you've got two extremely useful tools in your belt.

Of course, the third tool of "being extremely irritated by boring things and feeling a strong impulse to automate them" is also an excellent one to have.

Townley··on Portable Text – JSON rich text specification for content editing platforms
For anyone who wants to see a similar, JSON-based, node-generating implementation looks like, this is a cool demo showing the structure of a Prosemirror WYSIWYG example. https://react-prosemirror-example.now.sh/
Townley··on I Quit Google Over Its Censored Chinese Search Engine
That's the whole point behind Title II. No, it's not their service: it's a common carrier providing a public utility. With that comes responsibilities towards consistency and neutrality of service.
Townley··on I Quit Google Over Its Censored Chinese Search Engine
Maybe so, but I don't agree with them. What they're doing is using their state monopoly on force to squash dissent. That's reprehensible, and entirely separate from companies deciding what content they want to endorse through re-broadcast.

I'd be genuinely curious to hear what people think is the difference between "deplatforming" a screaming racist in my living room by telling them to leave, and removing someone's account from a website I built. It seems to me like both are not only well within my rights, but the correct thing to do.

Townley··on I Quit Google Over Its Censored Chinese Search Engine
If you're referring to the removal of hate speech from online platforms, it's misleading to characterize that as censorship. I have every right to (and should) kick people out of my house for spewing vitriol, and companies have every right to (and should) do the same.
Townley··on Ask HN: Over 60 = no engineering jobs?
I wonder if this is less a problem with your skills not keeping up with the industry, and more with your job search practices not keeping up.

I recently helped a friend through a job search, and was shocked by how much the process has changed in the past 3-4 years. Recruiters are inundated with thousands of resumes. So traditional job application practices ("Write a cover letter and email in the resume") or semi-recent practices ("Cast a wide net on Monster, Indeed, LinkedIn...) perhaps no longer have the rate of return that you're expecting.

I read through the book, "What Color is your Parachute: 2018 Edition" to better help my friend, and the book offers full sections on how to do better than just "putting your resume out there." Working personal connections, announcing employment intentions during coding meetups, writing specific emails to companies you respect (independent from whether they're currently hiring for your position) or getting even more creative with getting your info out there... all of the above are practices that might not have been necessary during your last search (they certainly weren't during mine).

Maybe I'm underestimating the massive extent of blatant ageism in the software industry, but I'm quite surprised that someone with your skill set can't yell from a crowded street corner and have six recruiters materialize. That leads me to think it's not a matter of what you're offering, but rather how you're selling.

Townley··on I’m Peter Roberts, immigration attorney who does work for YC and startups. AMA
In your opinion, are there other countries that have a significantly better process for handling skilled immigration applications. And, if so, what lessons from them would you like to see brought over to the US?
Townley··on Django Newbie Mistakes
Smarter developers than me have spent much time and effort hammering into my thick skull the following idea: one of the most important aspects of a senior developer is the ability to choose the correct tool for the job.

Flask is indeed much simpler, and serves the needs of smaller apps very well. The reason I've stopped using it is because I'm now familiar enough with Django's substantial, problematic learning curve that building a Django project is now just as easy for me as spinning up a Flask app (django-cookie-cutter and wagtail's project init help with this, but they're no replacement for several years of smashing your head against bad Django code). While I love Django, and have derived much utility from the tools it gives me, it's not the solution to all problems, and there are times when Flask makes total sense.

But once Flask's simplicity advantage is removed by experience, I find that it's immensely useful to have (largely correct) opinions on ORM<->DB interactions, templating, settings/config management, form validation, and user authentication baked into the project. For my projects, having these has never cost me anything even if they go unused, and more than once I've gotten myself into the situation of "You either use Django or build Django"

All of the above applies even more so to the specific task of producing a rest API. DRF is, by a large margin, my favorite tool for producing robust, understandable APIs, and I've been lucky enough to never encounter the scaling issues that I've been told (and believe to) exist.

Townley··on Ask HN: Who is hiring? (June 2018)
Atlantic Media | Web Developer | Washington, DC | Onsite, Full-Time

Hey all, looking for a web developer to join my team. We're currently 3 devs and a PM reporting to the VP Digital Strategy.

National Journal is a brand owned by Atlantic Media. We build tools for analyzing DC politics, as well as platforms for journalists, marketers, network scientists, and researchers to get their insights out to a pool of members.

Most of our days are spent working in python/django on the backend, javascript on the frontend (we're in the process of building out a more capable FE stack with gulp, react, and a suite of other tools). Other things we work with on a weekly/semi-weekly basis include: PostgreSQL, MongoDB, ElasticSearch, Neo4j, CentOS, Nginx, CDNs, and Selenium.

Some of my favorite things about being part of this team: - Interesting problems to solve - Work-life balance is great (no late nights, and a manageable number of fires at any given time) - Reasonably generous education budget (~1 conference/year, and any tools you need at any time) - Good relationship with the systems team - Lunch outings and board game nights - Smart people who like each other

We're currently looking to fill a more senior role, but also open to the right mid-level candidates. Apply and find out more here: http://atlanticmedia.theresumator.com/apply/ZJ9Csc?

Townley··on Ask HN: Who is hiring? (May 2018)
Atlantic Media | Senior Web Developer, National Journal | Washington, DC | Onsite | Full-Time

Hey all, my team is looking to add another senior developer into the mix. We work with journalists, data scientists, and political researchers to build membership-based tools that make sense of DC politics (political analysis, election tracking, events going on around DC, and other curated/custom-created resources).

Our team is relatively small (4 devs). We're all pretty full-stack with varying competencies, but we spend most of our days in Python/Django, building APIs and ingesting/delivering data. A nowhere-near-exhaustive list of other stuff we work in includes PostgreSQL, ElasticSearch, Neo4j, MongoDB, Gulp, jQuery, Jenkins, Selenium, Nginx, and Redis.

Main things I like about this team: - Work-life balance is pretty great - Full autonomy over our tech stack - Interesting problems to solve - Team members are a lot of fun

Application link: http://atlanticmedia.theresumator.com/apply/ZJ9Csc

Townley··on It's Time for a DevTools for Designers
Honestly, Mozilla could just shove a DreamWeaver clone into Firefox and make a lot of designers and developers happy.

The challenges for developing software that would let someone who doesn't know HTML/CSS produce HTML/CSS seem high. In the "drag and drop interface" did that drag mean that the column should be 60px smaller? 10% smaller? 1.21rem smaller? Should the font get smaller when a username is longer than 15 characters, should the column get bigger, or should it overflow to the next line? Is there custom menu interactivity at different breakpoints, or can I just let Bootstrap do its magic?

That said, Sketch or Figma plus an exporter gets wonderfully close to what the author is talking about. And as a developer, I appreciate being handed imperfect HTML and CSS over being handed a picture of a website. At least with the former, I can copy and paste into the appropriate location, or throw out that which my judgement decides is counterproductive or unnecessary.

So I don't believe that this DesignTools utility needs to be perfect from the get-go, or address most/all of the edge cases that will come up during development. It just needs to decrease the cognitive workload that developers take on during the "PSD >> application/website" process.

Townley··on Ask HN: Who is hiring? (March 2018)
Atlantic Media | Washington, DC | Junior UI/UX Designer | Fulltime | ONSITE

Hey all, my company is looking for an entry-level designer to help redesign one of the organization's B2B media sites (http://www.govexec.com/). We don't have nap rooms or catered lunches, but it's a great place to work, benefits are solid, the people are nice, and the project will have some unique and interesting challenges (some good, some bad).

The role isn't on my team directly, but I personally think this is a cool opportunity for a more junior person looking to break into web design and development. I also love that we're opening some positions to more junior people (taking to heart an article from a few weeks back about The Death of Junior Positions)

If any of you know someone with a good creative eye (if not a ton of experience), or someone who loves the idea of designing for media, feel free to pass on the link! http://atlanticmedia.theresumator.com/apply/RWKxWJB7b9

Townley··on Ask HN: Who is hiring? (February 2018)
National Journal (A property of Atlantic Media) | Senior Web Developer | Washington DC | Full-time ONSITE

My team is looking to add another senior dev. Our stack includes Django, Postgres, Nginx, Git, Jenkins, ElasticSearch, Mongo, and splatterings of much more.

It's a fun, chill place to work. Great work-life balance, lots of chances to try out whatever you'd like technology-wise, and good coworkers (3 devs, 1 PM, and a 5-foot tall stuffed banana).

Job description and application are posted at http://atlanticmedia.theresumator.com/apply/jobs/details/ZJ9...?

National Journal, the premium provider of insightful reporting, essential research and intelligence tools for those operating in Washington’s policy and government arenas, seeks a Senior Web Developer to be jointly responsible for the successful delivery of digital products. The Senior Web Developer will be a key member of our team of developers and act as the architect of major digital projects while helping to ensure that the work completed by the development team is stable and efficient. This is not a management position, but responsibilities will include mentorship of junior colleagues.

Townley··on Ask HN: Who is hiring? (April 2017)
Atlantic Media / National Journal -- Washington, DC -- onsite but with optional WFH days

My company is looking for another Django developer (~2 years experience preferred) to join our team of 4. We're a fun bunch, do cool things at the intersection of tech/journalism/politics, and have a small-but-respectable collection of snacks in the office. Our main product is www.NationalJournal.com (NOT to be confused with the National Review)

Interview Process: We don't do whiteboard interviews. We put you in a room with all of our devs, and talk about the things you've worked on/things you'd like to work on. That's... pretty much it?

http://atlanticmedia.theresumator.com/apply/jobs/details/i42...?

Townley··on Stack Overflow comment congratulates dev on wedding
Saw this while reminding myself about regex in python: One dev congratulates the other on their wedding in a SO comment. I found that just a little adorable.
← PreviousPage 5 of 5